From 4bb29894bd65999e1f22c6540ac81be664da9f37 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 6 Mar 2016 16:29:12 +0800 Subject: [PATCH] Add 'offhand' for setting the NPC's offhand item --- .../citizensnpcs/editor/EquipmentEditor.java | 52 +++++++++++++------ 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/citizensnpcs/editor/EquipmentEditor.java b/src/main/java/net/citizensnpcs/editor/EquipmentEditor.java index bff41c37e..656ab8c5f 100644 --- a/src/main/java/net/citizensnpcs/editor/EquipmentEditor.java +++ b/src/main/java/net/citizensnpcs/editor/EquipmentEditor.java @@ -44,24 +44,42 @@ public class EquipmentEditor extends Editor { @EventHandler(ignoreCancelled = true) public void onPlayerChat(final AsyncPlayerChatEvent event) { - if (!event.getMessage().equals("helmet") - || !event.getPlayer().hasPermission("citizens.npc.edit.equip.any-helmet")) - return; - Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() { - @Override - public void run() { - if (!event.getPlayer().isValid()) - return; - ItemStack hand = event.getPlayer().getItemInHand(); - if (hand.getType() == Material.AIR || hand.getAmount() <= 0) { - return; + if (event.getMessage().equals("helmet") + && !event.getPlayer().hasPermission("citizens.npc.edit.equip.any-helmet")) { + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() { + @Override + public void run() { + if (!event.getPlayer().isValid()) + return; + ItemStack hand = event.getPlayer().getInventory().getItemInMainHand(); + if (hand.getType() == Material.AIR || hand.getAmount() <= 0) { + return; + } + npc.getTrait(Equipment.class).set(EquipmentSlot.HELMET, + new ItemStack(event.getPlayer().getInventory().getItemInMainHand().getType(), 1)); + hand.setAmount(hand.getAmount() - 1); + event.getPlayer().getInventory().setItemInMainHand(hand); } - npc.getTrait(Equipment.class).set(EquipmentSlot.HELMET, - new ItemStack(event.getPlayer().getItemInHand().getType(), 1)); - hand.setAmount(hand.getAmount() - 1); - event.getPlayer().setItemInHand(hand); - } - }); + }); + } + if (event.getMessage().equals("offhand") + && !event.getPlayer().hasPermission("citizens.npc.edit.equip.offhand")) { + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() { + @Override + public void run() { + if (!event.getPlayer().isValid()) + return; + ItemStack hand = event.getPlayer().getInventory().getItemInMainHand(); + if (hand.getType() == Material.AIR || hand.getAmount() <= 0) { + return; + } + npc.getTrait(Equipment.class).set(EquipmentSlot.OFF_HAND, + new ItemStack(event.getPlayer().getInventory().getItemInMainHand().getType(), 1)); + hand.setAmount(hand.getAmount() - 1); + event.getPlayer().getInventory().setItemInMainHand(hand); + } + }); + } } @EventHandler