diff --git a/src/main/java/net/citizensnpcs/EventListen.java b/src/main/java/net/citizensnpcs/EventListen.java index 06ec02fe9..16262d3f6 100644 --- a/src/main/java/net/citizensnpcs/EventListen.java +++ b/src/main/java/net/citizensnpcs/EventListen.java @@ -112,7 +112,6 @@ public class EventListen implements Listener { return; } } - player.openInventory(npc.getInventory()); if (npc.getCharacter() != null) npc.getCharacter().onRightClick(npc, player); } diff --git a/src/main/java/net/citizensnpcs/command/command/NPCCommands.java b/src/main/java/net/citizensnpcs/command/command/NPCCommands.java index 5f93a1d5c..315077278 100644 --- a/src/main/java/net/citizensnpcs/command/command/NPCCommands.java +++ b/src/main/java/net/citizensnpcs/command/command/NPCCommands.java @@ -240,6 +240,7 @@ public class NPCCommands { modifiers = { "remove" }, min = 1, max = 2) + @Requirements public void remove(CommandContext args, Player player, NPC npc) throws CommandException { if (args.argsLength() == 2) { if (!args.getString(1).equals("all")) diff --git a/src/main/java/net/citizensnpcs/npc/CitizensNPCManager.java b/src/main/java/net/citizensnpcs/npc/CitizensNPCManager.java index 71e3d4461..919e370c7 100644 --- a/src/main/java/net/citizensnpcs/npc/CitizensNPCManager.java +++ b/src/main/java/net/citizensnpcs/npc/CitizensNPCManager.java @@ -98,42 +98,21 @@ public class CitizensNPCManager implements NPCManager { } public void remove(NPC npc) { - if (npc.isSpawned()) - npc.getBukkitEntity().remove(); npcs.remove(npc.getId()); saves.getKey("npc").removeKey(String.valueOf(npc.getId())); // Remove metadata from selectors - if (npc.hasMetadata("selectors")) + if (npc.hasMetadata("selectors")) { for (MetadataValue value : npc.getMetadata("selectors")) if (Bukkit.getPlayer(value.asString()) != null) Bukkit.getPlayer(value.asString()).removeMetadata("selected", plugin); - npc.removeMetadata("selectors", plugin); - // TODO: merge this and removeAll(); + npc.removeMetadata("selectors", plugin); + } } public void removeAll() { - Iterator itr = iterator(); - while (itr.hasNext()) { - NPC npc = itr.next(); - saves.getKey("npc").removeKey(String.valueOf(npc.getId())); - - // Remove metadata from selectors - if (npc.hasMetadata("selectors")) { - for (MetadataValue value : npc.getMetadata("selectors")) { - if (Bukkit.getPlayer(value.asString()) != null) { - Bukkit.getPlayer(value.asString()).removeMetadata("selected", plugin); - } - } - npc.removeMetadata("selectors", plugin); - } - - if (npc.isSpawned()) { - npc.getBukkitEntity().remove(); - } - - itr.remove(); - } + while (iterator().hasNext()) + iterator().next().remove(); } public void selectNPC(Player player, NPC npc) {