Package net.citizensnpcs.listeners

Source Code of net.citizensnpcs.listeners.PlayerListen

package net.citizensnpcs.listeners;

import net.citizensnpcs.Citizens;
import net.citizensnpcs.TickTask;
import net.citizensnpcs.api.event.NPCTargetEvent;
import net.citizensnpcs.npcdata.NPCDataManager;
import net.citizensnpcs.resources.npclib.HumanNPC;
import net.citizensnpcs.resources.npclib.NPCManager;
import net.citizensnpcs.resources.npclib.creatures.CreatureTask;
import net.citizensnpcs.utils.ConversationUtils;

import org.bukkit.Bukkit;
import org.bukkit.event.Event.Result;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class PlayerListen implements Listener {
    @EventHandler(ignoreCancelled = true)
    public void onPlayerChat(final AsyncPlayerChatEvent event) {
        if (!event.isAsynchronous())
            ConversationUtils.onChat(event);
        else
            Bukkit.getScheduler().scheduleSyncDelayedTask(Citizens.plugin, new Runnable() {
                @Override
                public void run() {
                    ConversationUtils.onChat(event);
                }
            });
    }

    @EventHandler(ignoreCancelled = true)
    public void onPlayerInteract(PlayerInteractEvent event) {
        if (event.isCancelled())
            return;
        NPCDataManager.handlePathEditor(event);
        if (NPCDataManager.equipmentEditors.containsKey(event.getPlayer())
                && event.getAction() == Action.RIGHT_CLICK_AIR) {
            event.setUseItemInHand(Result.DENY);
        }
    }

    @EventHandler(ignoreCancelled = true)
    public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
        if (event.isCancelled())
            return;
        HumanNPC npc = NPCManager.get(event.getRightClicked());
        if (npc != null) {
            EntityTargetEvent rightClickEvent = new NPCTargetEvent(npc.getPlayer(), event.getPlayer());
            Bukkit.getServer().getPluginManager().callEvent(rightClickEvent);
        }
    }

    @EventHandler(ignoreCancelled = true)
    public void onPlayerLogin(PlayerLoginEvent event) {
        CreatureTask.setDirty();
    }

    @EventHandler(ignoreCancelled = true)
    public void onPlayerQuit(PlayerQuitEvent event) {
        NPCDataManager.pathEditors.remove(event.getPlayer());
        TickTask.clearActions(event.getPlayer());
        CreatureTask.setDirty();
        ConversationUtils.verify();
    }
}
TOP

Related Classes of net.citizensnpcs.listeners.PlayerListen

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.