From 598fa65e0be58c628854725978fb2a9d25e48a81 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 11 Aug 2013 17:41:16 +0800 Subject: [PATCH] Allow --id in non-selected requirements --- .../api/command/RequirementsProcessor.java | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/citizensnpcs/api/command/RequirementsProcessor.java b/src/main/java/net/citizensnpcs/api/command/RequirementsProcessor.java index 1c810c53..fb20cd85 100644 --- a/src/main/java/net/citizensnpcs/api/command/RequirementsProcessor.java +++ b/src/main/java/net/citizensnpcs/api/command/RequirementsProcessor.java @@ -31,24 +31,23 @@ public void process(CommandSender sender, CommandContext context, Annotation ins Requirements requirements = (Requirements) instance; NPC npc = (methodArgs.length >= 3 && methodArgs[2] instanceof NPC) ? (NPC) methodArgs[2] : null; - // Requirements - if (requirements.selected()) { - boolean canRedefineSelected = context.hasValueFlag("id") && sender.hasPermission("npc.select"); - String error = Messaging.tr(CommandMessages.MUST_HAVE_SELECTED); - if (canRedefineSelected) { - npc = CitizensAPI.getNPCRegistry().getById(context.getFlagInteger("id")); - if (methodArgs.length >= 3) - methodArgs[2] = npc; - if (npc == null) - error += ' ' + Messaging.tr(CommandMessages.ID_NOT_FOUND, context.getFlagInteger("id")); - } + boolean canRedefineSelected = context.hasValueFlag("id") && sender.hasPermission("npc.select"); + String error = Messaging.tr(CommandMessages.MUST_HAVE_SELECTED); + if (canRedefineSelected) { + npc = CitizensAPI.getNPCRegistry().getById(context.getFlagInteger("id")); + if (methodArgs.length >= 3) + methodArgs[2] = npc; if (npc == null) - throw new RequirementMissingException(error); + error += ' ' + Messaging.tr(CommandMessages.ID_NOT_FOUND, context.getFlagInteger("id")); + } + if (requirements.selected() && npc == null) { + throw new RequirementMissingException(error); } if (requirements.ownership() && npc != null && !sender.hasPermission("citizens.admin") - && !npc.getTrait(Owner.class).isOwnedBy(sender)) + && !npc.getTrait(Owner.class).isOwnedBy(sender)) { throw new RequirementMissingException(Messaging.tr(CommandMessages.MUST_BE_OWNER)); + } if (npc == null) return;