From d42c36308634a6fa3a59c4671893f599d8170051 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Mon, 11 May 2015 22:10:37 +0200 Subject: [PATCH] Fix arbitrary command order for ARSenderIdAbstract. --- .../cmd/arg/ARSenderIdAbstract.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java b/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java index f3b36670..93b8b0e5 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java @@ -8,6 +8,7 @@ import com.massivecraft.massivecore.MassiveException; import com.massivecraft.massivecore.mixin.Mixin; import com.massivecraft.massivecore.store.SenderIdSource; import com.massivecraft.massivecore.util.IdUtil; +import com.massivecraft.massivecore.util.MUtil; public abstract class ARSenderIdAbstract extends ARAbstract { @@ -71,6 +72,23 @@ public abstract class ARSenderIdAbstract extends ARAbstract return ret; } + // This is used for arbitrary command order. + // There might be no matching sender at this time, but that does not matter. + // As long as the format is correct the arg is valid. + @Override + public boolean isValid(String arg, CommandSender sender) + { + // Allow names and uuid by format. + if (MUtil.isValidPlayerName(arg)) return true; + if (MUtil.isValidUUID(arg)) return true; + + // Check data presence. This handles specials like "@console". + if (IdUtil.getIdToData().containsKey(arg)) return true; + if (IdUtil.getNameToData().containsKey(arg)) return true; + + return false; + } + // -------------------------------------------- // // UTIL // -------------------------------------------- //