Package com.gamingmesh.jobs.listeners

Source Code of com.gamingmesh.jobs.listeners.JobsListener

/**
* Jobs Plugin for Bukkit
* Copyright (C) 2011 Zak Ford <zak.j.ford@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.gamingmesh.jobs.listeners;

import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.world.WorldLoadEvent;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;

import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.JobsPlugin;
import com.gamingmesh.jobs.config.ConfigManager;
import com.gamingmesh.jobs.container.JobsPlayer;

public class JobsListener implements Listener {
    // hook to the main plugin
    private JobsPlugin plugin;
   
    public JobsListener(JobsPlugin plugin) {
        this.plugin = plugin;
    }

    @EventHandler(priority=EventPriority.LOWEST)
    public void onPlayerJoin(PlayerJoinEvent event) {
        // make sure plugin is enabled
        if(!plugin.isEnabled()) return;
        Jobs.getPlayerManager().playerJoin(event.getPlayer());
    }

    @EventHandler(priority=EventPriority.MONITOR)
    public void onPlayerJoinMonitor(PlayerJoinEvent event) {
        // make sure plugin is enabled
        if(!plugin.isEnabled()) return;
       
        /*
         * We need to recalculate again to check for world permission and revoke permissions
         * if we don't have world permission (from some other permission manager).  It's
         * necessary to call this twice in case somebody is relying on permissions from this
         * plugin on entry to the world.
         */
       
        JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(event.getPlayer());
        Jobs.getPermissionHandler().recalculatePermissions(jPlayer);
    }

    @EventHandler(priority=EventPriority.MONITOR)
    public void onPlayerQuit(PlayerQuitEvent event) {
        // make sure plugin is enabled
        if(!plugin.isEnabled()) return;
        Jobs.getPlayerManager().playerQuit(event.getPlayer());
    }
   
    @EventHandler(priority=EventPriority.MONITOR)
    public void onPlayerWorldChange(PlayerChangedWorldEvent event) {
        if(!plugin.isEnabled()) return;
       
        JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(event.getPlayer());
        Jobs.getPermissionHandler().recalculatePermissions(jPlayer);
    }
   
    @EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=true)
    public void onPlayerChat(AsyncPlayerChatEvent event) {
        if (!plugin.isEnabled()) return;
       
        if (!ConfigManager.getJobsConfiguration().getModifyChat())
            return;
       
        String format = event.getFormat();
        format = format.replace("%1$s", "{jobs} %1$s");
        event.setFormat(format);
    }
   
    @EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
    public void onPlayerChatHighest(AsyncPlayerChatEvent event) {
        if (!plugin.isEnabled()) return;
       
        Player player = event.getPlayer();
        JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
        String honorific = "";
        if (jPlayer != null)
            honorific = jPlayer.getDisplayHonorific();
       
        String format = event.getFormat();
        format = format.replace("{jobs}", honorific);
        event.setFormat(format);
    }
   
    @EventHandler(priority=EventPriority.MONITOR)
    public void onWorldLoad(WorldLoadEvent event) {
        World world = event.getWorld();
        PluginManager pm = plugin.getServer().getPluginManager();
        if (pm.getPermission("jobs.world."+world.getName().toLowerCase()) == null)
            pm.addPermission(new Permission("jobs.world."+world.getName().toLowerCase(), PermissionDefault.TRUE));
    }
}
TOP

Related Classes of com.gamingmesh.jobs.listeners.JobsListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.