diff --git a/src/com/massivecraft/mcore1/cmd/Cmd.java b/src/com/massivecraft/mcore1/cmd/Cmd.java index 5bc7cd2c..977e4b8b 100644 --- a/src/com/massivecraft/mcore1/cmd/Cmd.java +++ b/src/com/massivecraft/mcore1/cmd/Cmd.java @@ -9,6 +9,13 @@ import java.util.Set; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import com.massivecraft.mcore1.cmd.arg.AHBoolean; +import com.massivecraft.mcore1.cmd.arg.AHDouble; +import com.massivecraft.mcore1.cmd.arg.AHFloat; +import com.massivecraft.mcore1.cmd.arg.AHInteger; +import com.massivecraft.mcore1.cmd.arg.AHPlayer; +import com.massivecraft.mcore1.cmd.arg.IArgHandler; + public class Cmd { protected Map, IArgHandler> argHandlers = new HashMap, IArgHandler>(); diff --git a/src/com/massivecraft/mcore1/cmd/MCommand.java b/src/com/massivecraft/mcore1/cmd/MCommand.java index df1ae008..9c99a294 100644 --- a/src/com/massivecraft/mcore1/cmd/MCommand.java +++ b/src/com/massivecraft/mcore1/cmd/MCommand.java @@ -8,6 +8,7 @@ import org.bukkit.entity.Player; import com.massivecraft.mcore1.Lang; import com.massivecraft.mcore1.MCore; +import com.massivecraft.mcore1.cmd.arg.IArgHandler; import com.massivecraft.mcore1.persist.IClassManager; import com.massivecraft.mcore1.persist.Persist; import com.massivecraft.mcore1.plugin.MPlugin; diff --git a/src/com/massivecraft/mcore1/cmd/AHBase.java b/src/com/massivecraft/mcore1/cmd/arg/AHBase.java similarity index 85% rename from src/com/massivecraft/mcore1/cmd/AHBase.java rename to src/com/massivecraft/mcore1/cmd/arg/AHBase.java index fbeb3185..95eecf56 100644 --- a/src/com/massivecraft/mcore1/cmd/AHBase.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHBase.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; import org.bukkit.command.CommandSender; diff --git a/src/com/massivecraft/mcore1/cmd/AHBoolean.java b/src/com/massivecraft/mcore1/cmd/arg/AHBoolean.java similarity index 86% rename from src/com/massivecraft/mcore1/cmd/AHBoolean.java rename to src/com/massivecraft/mcore1/cmd/arg/AHBoolean.java index 565e2157..23dff2e4 100644 --- a/src/com/massivecraft/mcore1/cmd/AHBoolean.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHBoolean.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; public class AHBoolean extends AHPrimitive { diff --git a/src/com/massivecraft/mcore1/cmd/AHDouble.java b/src/com/massivecraft/mcore1/cmd/arg/AHDouble.java similarity index 81% rename from src/com/massivecraft/mcore1/cmd/AHDouble.java rename to src/com/massivecraft/mcore1/cmd/arg/AHDouble.java index a1e008ce..5f7a7405 100644 --- a/src/com/massivecraft/mcore1/cmd/AHDouble.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHDouble.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; public class AHDouble extends AHPrimitive { diff --git a/src/com/massivecraft/mcore1/cmd/AHFloat.java b/src/com/massivecraft/mcore1/cmd/arg/AHFloat.java similarity index 80% rename from src/com/massivecraft/mcore1/cmd/AHFloat.java rename to src/com/massivecraft/mcore1/cmd/arg/AHFloat.java index 7e88d027..da5b3213 100644 --- a/src/com/massivecraft/mcore1/cmd/AHFloat.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHFloat.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; public class AHFloat extends AHPrimitive { diff --git a/src/com/massivecraft/mcore1/cmd/AHInteger.java b/src/com/massivecraft/mcore1/cmd/arg/AHInteger.java similarity index 81% rename from src/com/massivecraft/mcore1/cmd/AHInteger.java rename to src/com/massivecraft/mcore1/cmd/arg/AHInteger.java index 992bf747..af9f26e9 100644 --- a/src/com/massivecraft/mcore1/cmd/AHInteger.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHInteger.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; public class AHInteger extends AHPrimitive { diff --git a/src/com/massivecraft/mcore1/cmd/AHPlayer.java b/src/com/massivecraft/mcore1/cmd/arg/AHPlayer.java similarity index 68% rename from src/com/massivecraft/mcore1/cmd/AHPlayer.java rename to src/com/massivecraft/mcore1/cmd/arg/AHPlayer.java index c1bed5fe..afc52e51 100644 --- a/src/com/massivecraft/mcore1/cmd/AHPlayer.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHPlayer.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; import java.util.List; @@ -23,14 +23,17 @@ public class AHPlayer extends AHBase { return players.get(0); } - this.error = "\"

"+str+"\" did not match any online player."; + this.error = "No online player's name begins with \"

"+str+"\"."; } - - Player player = Bukkit.getServer().getPlayer(str); - if (player == null) + else { + Player player = Bukkit.getServer().getPlayer(str); + if (player != null) + { + return player; + } this.error = "No player online with the exact name \"

"+str+"\"."; } - return player; + return null; } } diff --git a/src/com/massivecraft/mcore1/cmd/arg/AHPlayerWrapper.java b/src/com/massivecraft/mcore1/cmd/arg/AHPlayerWrapper.java new file mode 100644 index 00000000..e0b89482 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/arg/AHPlayerWrapper.java @@ -0,0 +1,47 @@ +package com.massivecraft.mcore1.cmd.arg; + +import org.bukkit.command.CommandSender; + +import com.massivecraft.mcore1.persist.IClassManager; +import com.massivecraft.mcore1.plugin.MPlugin; + +public abstract class AHPlayerWrapper extends AHBase +{ + public abstract Class getClazz(); + + public IClassManager getManager(MPlugin p) + { + return p.persist.getManager(getClazz()); + } + + @Override + public T parse(String str, String style, CommandSender sender, MPlugin p) + { + this.error = null; + if (str == null) return null; + + IClassManager manager = this.getManager(p); + T ret; + + if (style.equals("match")) + { + ret = manager.getBestMatch(str); + if (ret != null) + { + return ret; + } + this.error = "No player name begins with \"

"+str+"\"."; + } + else + { + ret = manager.get(str); + if (ret != null) + { + return ret; + + } + this.error = "No player with the exact name \"

"+str+"\"."; + } + return null; + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHPrimitive.java b/src/com/massivecraft/mcore1/cmd/arg/AHPrimitive.java similarity index 89% rename from src/com/massivecraft/mcore1/cmd/AHPrimitive.java rename to src/com/massivecraft/mcore1/cmd/arg/AHPrimitive.java index 1bfb1544..04db6211 100644 --- a/src/com/massivecraft/mcore1/cmd/AHPrimitive.java +++ b/src/com/massivecraft/mcore1/cmd/arg/AHPrimitive.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; import org.bukkit.command.CommandSender; diff --git a/src/com/massivecraft/mcore1/cmd/IArgHandler.java b/src/com/massivecraft/mcore1/cmd/arg/IArgHandler.java similarity index 85% rename from src/com/massivecraft/mcore1/cmd/IArgHandler.java rename to src/com/massivecraft/mcore1/cmd/arg/IArgHandler.java index 74306663..42ca0a00 100644 --- a/src/com/massivecraft/mcore1/cmd/IArgHandler.java +++ b/src/com/massivecraft/mcore1/cmd/arg/IArgHandler.java @@ -1,4 +1,4 @@ -package com.massivecraft.mcore1.cmd; +package com.massivecraft.mcore1.cmd.arg; import org.bukkit.command.CommandSender;