Skip to content

Commit

Permalink
Add 'offhand' for setting the NPC's offhand item
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Mar 6, 2016
1 parent 3b3f477 commit 49986de
Showing 1 changed file with 35 additions and 17 deletions.
52 changes: 35 additions & 17 deletions src/main/java/net/citizensnpcs/editor/EquipmentEditor.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,24 +44,42 @@ public void end() {

@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);
}
});
}
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);
}
npc.getTrait(Equipment.class).set(EquipmentSlot.HELMET,
new ItemStack(event.getPlayer().getItemInHand().getType(), 1));
hand.setAmount(hand.getAmount() - 1);
event.getPlayer().setItemInHand(hand);
}
});
});
}
}

@EventHandler
Expand Down

0 comments on commit 49986de

Please sign in to comment.