From 155344a7adde39cd4dcf404f35b76f7a02d61df4 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Fri, 30 Dec 2011 19:55:44 +0100 Subject: [PATCH] Now using a sender fixer method to set vars instead of functions with consolecommands. And added commaAndDot. --- plugin.yml | 2 +- src/com/massivecraft/mcore1/cmd/MCommand.java | 37 ++++++++++++++++--- src/com/massivecraft/mcore1/util/Txt.java | 22 ++++++++--- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/plugin.yml b/plugin.yml index 4aa9350f..282ee6d6 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,8 +1,8 @@ name: mcore1 version: 1 +depend: [Spout] main: com.massivecraft.mcore1.MCore authors: [Olof Larsson] -softdepend: [Spout] commands: mcoresilenteater: description: ignore me. \ No newline at end of file diff --git a/src/com/massivecraft/mcore1/cmd/MCommand.java b/src/com/massivecraft/mcore1/cmd/MCommand.java index c8f3fdbe..739f8041 100644 --- a/src/com/massivecraft/mcore1/cmd/MCommand.java +++ b/src/com/massivecraft/mcore1/cmd/MCommand.java @@ -12,8 +12,6 @@ import com.massivecraft.mcore1.MCore; import com.massivecraft.mcore1.MPlugin; import com.massivecraft.mcore1.cmd.arg.IArgHandler; import com.massivecraft.mcore1.cmd.req.IReq; -import com.massivecraft.mcore1.persist.IClassManager; -import com.massivecraft.mcore1.persist.Persist; import com.massivecraft.mcore1.util.Perm; import com.massivecraft.mcore1.util.Txt; @@ -125,9 +123,12 @@ public abstract class MCommand public List getCommandChain() { return this.commandChain; } public void setCommandChain(List val) { this.commandChain = val; } - // FIELD: sender - protected CommandSender sender; - public CommandSender getSender() { return this.sender; } + // FIELDS: sender, me, senderIsConsole + public CommandSender sender; + public Player me; + public boolean senderIsConsole; + + /* public boolean getSenderIsConsole() { return ! (this.sender instanceof Player); } public Player me() { @@ -137,6 +138,9 @@ public abstract class MCommand } return null; } + */ + + /* @SuppressWarnings("unchecked") public T getSenderAs(Class clazz) { @@ -152,7 +156,7 @@ public abstract class MCommand } } return null; - } + }*/ public MCommand() { @@ -178,6 +182,16 @@ public abstract class MCommand { // Set the execution-time specific variables this.sender = sender; + this.senderIsConsole = true; + this.me = null; + if (sender instanceof Player) + { + this.me = (Player) sender; + this.senderIsConsole = false; + } + + this.fixSenderVars(); + this.args = args; this.commandChain = commandChain; @@ -201,6 +215,8 @@ public abstract class MCommand perform(); } + public void fixSenderVars() {}; + public void execute(CommandSender sender, List args) { execute(sender, args, new ArrayList()); @@ -443,4 +459,13 @@ public abstract class MCommand { return this.argAs(idx, clazz, null, null); } + + public String argConcatFrom(int idx) + { + if ( ! this.argIsSet(idx)) return null; + int from = idx; + int to = args.size(); + if (to <= from) return ""; + return Txt.implode(args.subList(from, to), " "); + } } diff --git a/src/com/massivecraft/mcore1/util/Txt.java b/src/com/massivecraft/mcore1/util/Txt.java index 34500fc0..da2cb8f2 100644 --- a/src/com/massivecraft/mcore1/util/Txt.java +++ b/src/com/massivecraft/mcore1/util/Txt.java @@ -210,7 +210,7 @@ public class Txt return ret.toString(); } - public static String implodeCommaAnd(List list, String comma, String and) + public static String implodeCommaAndDot(List list, String comma, String and, String dot) { if (list.size() == 0) return ""; if (list.size() == 1) return list.get(0); @@ -221,14 +221,24 @@ public class Txt list.set(list.size()-2, merge); list.remove(list.size()-1); - return implode(list, comma); + return implode(list, comma)+dot; + } + public static String implodeCommaAnd(List list, String comma, String and) + { + return implodeCommaAndDot(list, comma, and, ""); + } + public static String implodeCommaAndDot(List list, String color) + { + return implodeCommaAndDot(list, color+", ", color+" and ", color+"."); } - public static String implodeCommaAnd(List list, String color) { - return implodeCommaAnd(list, color+", ", color+" and "); + return implodeCommaAndDot(list, color+", ", color+" and ", ""); + } + public static String implodeCommaAndDot(List list) + { + return implodeCommaAndDot(list, ""); } - public static String implodeCommaAnd(List list) { return implodeCommaAnd(list, ""); @@ -324,7 +334,7 @@ public class Txt if (unitCountParts.size() == 0) return "just now"; - ret += implodeCommaAnd(unitCountParts); + ret += implodeCommaAndDot(unitCountParts); ret += " "; if (millis <= 0) {