From 8a7f4d1718d84cef888853f987f4981ddd930264 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Thu, 31 Jul 2014 16:43:17 +0200 Subject: [PATCH] MassiveCore - Performance improvement for command argument readers. --- .../massivecore/cmd/arg/ARPlayer.java | 26 ++--- .../massivecore/cmd/arg/ARSender.java | 26 ++--- .../massivecore/cmd/arg/ARSenderEntity.java | 56 ++++------- .../massivecore/cmd/arg/ARSenderId.java | 42 ++++----- .../cmd/arg/ARSenderIdAbstract.java | 94 ++++++++++++------- .../cmd/arg/ARSenderIdAbstractPredsource.java | 80 ---------------- .../massivecore/cmd/arg/ArgPredictate.java | 8 -- .../massivecore/cmd/arg/ArgPredictateAnd.java | 35 ------- .../cmd/arg/ArgPredictateStringEqualsLC.java | 24 ----- .../ArgPredictateStringIsOnlineSenderId.java | 26 ----- .../cmd/arg/ArgPredictateStringStartsLC.java | 24 ----- .../massivecore/store/SenderColl.java | 61 ++++++------ .../store/SenderIdSourceCombined.java | 45 --------- .../SenderIdSourceMixinAllSenderIds.java | 1 - 14 files changed, 140 insertions(+), 408 deletions(-) delete mode 100644 src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstractPredsource.java delete mode 100644 src/com/massivecraft/massivecore/cmd/arg/ArgPredictate.java delete mode 100644 src/com/massivecraft/massivecore/cmd/arg/ArgPredictateAnd.java delete mode 100644 src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringEqualsLC.java delete mode 100644 src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringIsOnlineSenderId.java delete mode 100644 src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringStartsLC.java delete mode 100644 src/com/massivecraft/massivecore/store/SenderIdSourceCombined.java diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARPlayer.java b/src/com/massivecraft/massivecore/cmd/arg/ARPlayer.java index 528eaf34..6f1d6409 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARPlayer.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARPlayer.java @@ -2,35 +2,20 @@ package com.massivecraft.massivecore.cmd.arg; import org.bukkit.entity.Player; -import com.massivecraft.massivecore.store.SenderIdSource; import com.massivecraft.massivecore.store.SenderIdSourceMixinAllSenderIds; import com.massivecraft.massivecore.util.IdUtil; -public class ARPlayer extends ARSenderIdAbstractPredsource +public class ARPlayer extends ARSenderIdAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - private static final ARPlayer full = getFull(SenderIdSourceMixinAllSenderIds.get()); - public static ARPlayer getFull() { return full; } - - private static final ARPlayer start = getStart(SenderIdSourceMixinAllSenderIds.get()); - public static ARPlayer getStart() { return start; } - - public static ARPlayer getFull(SenderIdSource source) + private static final ARPlayer i = new ARPlayer(); + public static ARPlayer get() { return i; } + private ARPlayer() { - return new ARPlayer(source, "player", ArgPredictateStringEqualsLC.get()); - } - - public static ARPlayer getStart(SenderIdSource source) - { - return new ARPlayer(source, "player", ArgPredictateStringStartsLC.get()); - } - - private ARPlayer(SenderIdSource source, String typename, ArgPredictate argPredictate) - { - super(source, typename, argPredictate); + super(SenderIdSourceMixinAllSenderIds.get()); } // -------------------------------------------- // @@ -40,6 +25,7 @@ public class ARPlayer extends ARSenderIdAbstractPredsource @Override public Player getResultForSenderId(String senderId) { + if (senderId == null) return null; return IdUtil.getPlayer(senderId); } diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSender.java b/src/com/massivecraft/massivecore/cmd/arg/ARSender.java index 70599945..e6c4523d 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSender.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARSender.java @@ -2,35 +2,20 @@ package com.massivecraft.massivecore.cmd.arg; import org.bukkit.command.CommandSender; -import com.massivecraft.massivecore.store.SenderIdSource; import com.massivecraft.massivecore.store.SenderIdSourceMixinAllSenderIds; import com.massivecraft.massivecore.util.IdUtil; -public class ARSender extends ARSenderIdAbstractPredsource +public class ARSender extends ARSenderIdAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - private static final ARSender full = getFull(SenderIdSourceMixinAllSenderIds.get()); - public static ARSender getFull() { return full; } - - private static final ARSender start = getStart(SenderIdSourceMixinAllSenderIds.get()); - public static ARSender getStart() { return start; } - - public static ARSender getFull(SenderIdSource source) + private static final ARSender i = new ARSender(); + public static ARSender get() { return i; } + private ARSender() { - return new ARSender(source, "player", ArgPredictateStringEqualsLC.get()); - } - - public static ARSender getStart(SenderIdSource source) - { - return new ARSender(source, "player", ArgPredictateStringStartsLC.get()); - } - - private ARSender(SenderIdSource source, String typename, ArgPredictate argPredictate) - { - super(source, typename, argPredictate); + super(SenderIdSourceMixinAllSenderIds.get()); } // -------------------------------------------- // @@ -40,6 +25,7 @@ public class ARSender extends ARSenderIdAbstractPredsource @Override public CommandSender getResultForSenderId(String senderId) { + if (senderId == null) return null; return IdUtil.getSender(senderId); } diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSenderEntity.java b/src/com/massivecraft/massivecore/cmd/arg/ARSenderEntity.java index 905d5ba6..b6ac435a 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSenderEntity.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARSenderEntity.java @@ -2,10 +2,8 @@ package com.massivecraft.massivecore.cmd.arg; import com.massivecraft.massivecore.store.SenderColl; import com.massivecraft.massivecore.store.SenderEntity; -import com.massivecraft.massivecore.store.SenderIdSource; -import com.massivecraft.massivecore.util.IdUtil; -public class ARSenderEntity> extends ARSenderIdAbstractPredsource +public class ARSenderEntity> extends ARSenderIdAbstract { // -------------------------------------------- // // FIELDS @@ -14,43 +12,28 @@ public class ARSenderEntity> extends ARSenderIdAbstrac private final SenderColl coll; // -------------------------------------------- // - // INSTANCE & CONSTRUCT + // CONSTRUCT // -------------------------------------------- // - public static > ARSenderEntity getFullAny(SenderColl coll) { return getFullAny(coll, coll.isCreative() ? coll.getMixinedIdSource() : coll); } - - public static > ARSenderEntity getStartAny(SenderColl coll) { return getStartAny(coll, coll.isCreative() ? coll.getMixinedIdSource() : coll); } - - public static > ARSenderEntity getFullOnline(SenderColl coll) { return getFullOnline(coll, coll.isCreative() ? coll.getMixinedIdSource() : coll); } - - public static > ARSenderEntity getStartOnline(SenderColl coll) { return getStartOnline(coll, coll.isCreative() ? coll.getMixinedIdSource() : coll); } - - public static > ARSenderEntity getFullOnline(SenderColl coll, SenderIdSource source) + private ARSenderEntity(SenderColl coll, boolean online) { - return new ARSenderEntity(coll, source, "player", new ArgPredictateAnd(ArgPredictateStringEqualsLC.get(), ArgPredictateStringIsOnlineSenderId.get())); - } - - public static > ARSenderEntity getStartOnline(SenderColl coll, SenderIdSource source) - { - return new ARSenderEntity(coll, source, "player", new ArgPredictateAnd(ArgPredictateStringStartsLC.get(), ArgPredictateStringIsOnlineSenderId.get())); - } - - public static > ARSenderEntity getFullAny(SenderColl coll, SenderIdSource source) - { - return new ARSenderEntity(coll, source, "player", ArgPredictateStringEqualsLC.get()); - } - - public static > ARSenderEntity getStartAny(SenderColl coll, SenderIdSource source) - { - return new ARSenderEntity(coll, source, "player", ArgPredictateStringStartsLC.get()); - } - - private ARSenderEntity(SenderColl coll, SenderIdSource source, String typename, ArgPredictate argPredictate) - { - super(source, typename, argPredictate); + super(coll, online); this.coll = coll; } + private ARSenderEntity(SenderColl coll) + { + super(coll); + this.coll = coll; + } + + // -------------------------------------------- // + // GET + // -------------------------------------------- // + + public static > ARSenderEntity get(SenderColl coll, boolean online) { return new ARSenderEntity(coll, online); } + public static > ARSenderEntity get(SenderColl coll) { return new ARSenderEntity(coll); } + // -------------------------------------------- // // OVERRIDE // -------------------------------------------- // @@ -59,11 +42,6 @@ public class ARSenderEntity> extends ARSenderIdAbstrac public T getResultForSenderId(String senderId) { if (senderId == null) return null; - - // Convert names to ids so we can handle both - String betterId = IdUtil.getId(senderId); - if (betterId != null) return this.coll.get(betterId); - return this.coll.get(senderId); } diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSenderId.java b/src/com/massivecraft/massivecore/cmd/arg/ARSenderId.java index 6becfae3..6a6ca61b 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSenderId.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARSenderId.java @@ -2,34 +2,36 @@ package com.massivecraft.massivecore.cmd.arg; import com.massivecraft.massivecore.store.SenderIdSource; import com.massivecraft.massivecore.store.SenderIdSourceMixinAllSenderIds; -import com.massivecraft.massivecore.util.IdUtil; -public class ARSenderId extends ARSenderIdAbstractPredsource +public class ARSenderId extends ARSenderIdAbstract { // -------------------------------------------- // - // INSTANCE & CONSTRUCT + // CONSTRUCT // -------------------------------------------- // - private static final ARSenderId full = getFull(SenderIdSourceMixinAllSenderIds.get()); - public static ARSenderId getFull() { return full; } - - private static final ARSenderId start = getStart(SenderIdSourceMixinAllSenderIds.get()); - public static ARSenderId getStart() { return start; } - - public static ARSenderId getFull(SenderIdSource source) + private ARSenderId(SenderIdSource source, boolean online) { - return new ARSenderId(source, "player", ArgPredictateStringEqualsLC.get()); + super(source, online); } - public static ARSenderId getStart(SenderIdSource source) + private ARSenderId(SenderIdSource source) { - return new ARSenderId(source, "player", ArgPredictateStringStartsLC.get()); + super(source); } - private ARSenderId(SenderIdSource source, String typename, ArgPredictate argPredictate) - { - super(source, typename, argPredictate); - } + // -------------------------------------------- // + // INSTANCE + // -------------------------------------------- // + + private static final ARSenderId i = new ARSenderId(SenderIdSourceMixinAllSenderIds.get()); + public static ARSenderId get() { return i; } + + // -------------------------------------------- // + // GET + // -------------------------------------------- // + + public static ARSenderId get(SenderIdSource source, boolean online) { return new ARSenderId(source, online); } + public static ARSenderId get(SenderIdSource source) { return new ARSenderId(source); } // -------------------------------------------- // // OVERRIDE @@ -38,12 +40,6 @@ public class ARSenderId extends ARSenderIdAbstractPredsource @Override public String getResultForSenderId(String senderId) { - if (senderId == null) return null; - - // Convert names to ids so we can handle both - String betterId = IdUtil.getId(senderId); - if (betterId != null) return betterId; - return senderId; } diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java b/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java index 3e16cfc7..0bdfd2e4 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstract.java @@ -4,27 +4,40 @@ import java.util.Collection; import org.bukkit.command.CommandSender; +import com.massivecraft.massivecore.mixin.Mixin; +import com.massivecraft.massivecore.store.SenderIdSource; import com.massivecraft.massivecore.util.IdUtil; -import com.massivecraft.massivecore.util.Txt; public abstract class ARSenderIdAbstract extends ArgReaderAbstract { // -------------------------------------------- // - // CONSTANTS + // FIELDS // -------------------------------------------- // - public final static int MAX_COUNT = 10; + private final SenderIdSource source; + private final boolean online; + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public ARSenderIdAbstract(SenderIdSource source, boolean online) + { + this.source = source; + this.online = online; + } + + public ARSenderIdAbstract(SenderIdSource source) + { + this(source, false); + } // -------------------------------------------- // // ABSTRACT // -------------------------------------------- // - public abstract String getTypename(); - public abstract T getResultForSenderId(String senderId); - public abstract Collection getSenderIdsFor(String arg, CommandSender sender); - // -------------------------------------------- // // OVERRIDE // -------------------------------------------- // @@ -32,44 +45,57 @@ public abstract class ARSenderIdAbstract extends ArgReaderAbstract @Override public ArgResult read(String arg, CommandSender sender) { + // Create Ret ArgResult ret = new ArgResult(); - Collection senderIds = this.getSenderIdsFor(arg, sender); + // arg --> senderId + String senderId = this.getSenderIdFor(arg); - if (senderIds.size() == 0) + // Populate Ret + if (senderId == null) { // No alternatives found - ret.setErrors("No "+this.getTypename()+" matches \""+arg+"\"."); - } - else if (senderIds.size() == 1) - { - // Only one alternative found - String senderId = senderIds.iterator().next(); - ret.setResult(this.getResultForSenderId(senderId)); - } - else if (senderIds.contains(arg)) - { - // Exact match - String senderId = IdUtil.getName(arg); - ret.setResult(this.getResultForSenderId(senderId)); + ret.setErrors("No player matches \""+arg+"\"."); } else { - // Ambigious! - ret.getErrors().add(""+this.getTypename()+" matching \""+arg+"\" is ambigious."); - if (senderIds.size() >= MAX_COUNT) - { - // To many to list - ret.getErrors().add("More than "+MAX_COUNT+" possible alternatives."); - } - else - { - // List the alternatives - ret.getErrors().add("Did you mean "+Txt.implodeCommaAndDot(senderIds, "%s", ", ", " or ", "?")); - } + ret.setResult(this.getResultForSenderId(senderId)); } + // Return Ret return ret; } + + // -------------------------------------------- // + // UTIL + // -------------------------------------------- // + + public String getSenderIdFor(String arg) + { + // Get senderId from the arg. + // Usually it's just the lowercase form. + // It might also be a name resolution. + String senderId = arg.toLowerCase(); + String betterId = IdUtil.getId(senderId); + if (betterId != null) senderId = betterId; + + for (Collection coll : this.source.getSenderIdCollections()) + { + // If the senderId exists ... + if (!coll.contains(senderId)) continue; + + // ... and the online check passes ... + if (this.online && !Mixin.isOnline(senderId)) continue; + + // ... and the result is non null ... + T result = this.getResultForSenderId(senderId); + if (result == null) continue; + + // ... then we are go! + return senderId; + } + + return null; + } } diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstractPredsource.java b/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstractPredsource.java deleted file mode 100644 index 7fc14a1d..00000000 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSenderIdAbstractPredsource.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.massivecraft.massivecore.cmd.arg; - -import java.util.Collection; -import java.util.TreeSet; - -import org.bukkit.command.CommandSender; - -import com.massivecraft.massivecore.store.SenderIdSource; - -public abstract class ARSenderIdAbstractPredsource extends ARSenderIdAbstract -{ - // -------------------------------------------- // - // FIELDS - // -------------------------------------------- // - - private final SenderIdSource source; - private final String typename; - private final ArgPredictate argPredictate; - - // -------------------------------------------- // - // CONSTRUCT - // -------------------------------------------- // - - public ARSenderIdAbstractPredsource(SenderIdSource source, String typename, ArgPredictate argPredictate) - { - this.source = source; - this.typename = typename; - this.argPredictate = argPredictate; - } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public String getTypename() - { - return this.typename; - } - - @Override - public Collection getSenderIdsFor(String arg, CommandSender sender) - { - arg = arg.toLowerCase(); - - TreeSet ret = new TreeSet(String.CASE_INSENSITIVE_ORDER); - - for (Collection coll : this.source.getSenderIdCollections()) - { - for (String senderId : coll) - { - if (this.isSenderIdOk(senderId, arg, sender)) - { - ret.add(senderId); - if (ret.size() >= MAX_COUNT) - { - return ret; - } - } - } - } - - return ret; - } - - protected boolean isSenderIdOk(String senderId, String arg, CommandSender sender) - { - // If the predictate applies ... - if (!this.argPredictate.apply(senderId, arg, sender)) return false; - - // ... and the result is non null ... - T result = this.getResultForSenderId(senderId); - if (result == null) return false; - - // ... then the senderId is ok. - return true; - } - - -} diff --git a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictate.java b/src/com/massivecraft/massivecore/cmd/arg/ArgPredictate.java deleted file mode 100644 index d8633413..00000000 --- a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictate.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.massivecraft.massivecore.cmd.arg; - -import org.bukkit.command.CommandSender; - -public interface ArgPredictate -{ - public boolean apply(T type, String arg, CommandSender sender); -} diff --git a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateAnd.java b/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateAnd.java deleted file mode 100644 index 15612740..00000000 --- a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateAnd.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.massivecraft.massivecore.cmd.arg; - -import org.bukkit.command.CommandSender; - -public class ArgPredictateAnd implements ArgPredictate -{ - // -------------------------------------------- // - // FIELDS - // -------------------------------------------- // - - private final ArgPredictate one; - private final ArgPredictate two; - - // -------------------------------------------- // - // CONSTRUCT - // -------------------------------------------- // - - public ArgPredictateAnd(ArgPredictate one, ArgPredictatetwo) - { - this.one = one; - this.two = two; - } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public boolean apply(T type, String arg, CommandSender sender) - { - if (!this.one.apply(type, arg, sender)) return false; - return this.two.apply(type, arg, sender); - } - -} diff --git a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringEqualsLC.java b/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringEqualsLC.java deleted file mode 100644 index 0d8f8725..00000000 --- a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringEqualsLC.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.massivecraft.massivecore.cmd.arg; - -import org.bukkit.command.CommandSender; - -public class ArgPredictateStringEqualsLC implements ArgPredictate -{ - // -------------------------------------------- // - // INSTANCE & CONSTRUCT - // -------------------------------------------- // - - private static ArgPredictateStringEqualsLC i = new ArgPredictateStringEqualsLC(); - public static ArgPredictateStringEqualsLC get() { return i; } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public boolean apply(String string, String arg, CommandSender sender) - { - return string.toLowerCase().equals(arg); - } - -} diff --git a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringIsOnlineSenderId.java b/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringIsOnlineSenderId.java deleted file mode 100644 index c5e2b337..00000000 --- a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringIsOnlineSenderId.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.massivecraft.massivecore.cmd.arg; - -import org.bukkit.command.CommandSender; - -import com.massivecraft.massivecore.mixin.Mixin; - -public class ArgPredictateStringIsOnlineSenderId implements ArgPredictate -{ - // -------------------------------------------- // - // INSTANCE & CONSTRUCT - // -------------------------------------------- // - - private static ArgPredictateStringIsOnlineSenderId i = new ArgPredictateStringIsOnlineSenderId(); - public static ArgPredictateStringIsOnlineSenderId get() { return i; } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public boolean apply(String string, String arg, CommandSender sender) - { - return Mixin.isOnline(string); - } - -} diff --git a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringStartsLC.java b/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringStartsLC.java deleted file mode 100644 index 4bb28cc4..00000000 --- a/src/com/massivecraft/massivecore/cmd/arg/ArgPredictateStringStartsLC.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.massivecraft.massivecore.cmd.arg; - -import org.bukkit.command.CommandSender; - -public class ArgPredictateStringStartsLC implements ArgPredictate -{ - // -------------------------------------------- // - // INSTANCE & CONSTRUCT - // -------------------------------------------- // - - private static ArgPredictateStringStartsLC i = new ArgPredictateStringStartsLC(); - public static ArgPredictateStringStartsLC get() { return i; } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public boolean apply(String string, String arg, CommandSender sender) - { - return string.toLowerCase().startsWith(arg); - } - -} diff --git a/src/com/massivecraft/massivecore/store/SenderColl.java b/src/com/massivecraft/massivecore/store/SenderColl.java index 633babed..40fa87ee 100644 --- a/src/com/massivecraft/massivecore/store/SenderColl.java +++ b/src/com/massivecraft/massivecore/store/SenderColl.java @@ -9,17 +9,12 @@ import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import com.massivecraft.massivecore.Predictate; +import com.massivecraft.massivecore.cmd.arg.ARSenderEntity; +import com.massivecraft.massivecore.cmd.arg.ARSenderId; import com.massivecraft.massivecore.util.IdUtil; public class SenderColl> extends Coll implements SenderIdSource { - // -------------------------------------------- // - // FIELDS - // -------------------------------------------- // - - protected final SenderIdSource mixinedIdSource = new SenderIdSourceCombined(this, SenderIdSourceMixinAllSenderIds.get()); - public SenderIdSource getMixinedIdSource() { return this.mixinedIdSource; } - // -------------------------------------------- // // CONSTRUCT // -------------------------------------------- // @@ -70,22 +65,45 @@ public class SenderColl> extends Coll implements Se public Collection> getSenderIdCollections() { List> ret = new ArrayList>(); + ret.add(this.getIds()); - List names = new ArrayList(); - for (String id : this.getIds()) + // For creative collections we must add all known ids. + // You could say the corresponding entities latently exist in the collection because it's creative. + if (this.isCreative()) { - String name = IdUtil.getName(id); - if (name == null) continue; - names.add(name); + ret.add(IdUtil.getAllIds()); } - ret.add(names); return ret; } // -------------------------------------------- // - // EXTRAS + // ARGUMENT READERS + // -------------------------------------------- // + + public ARSenderEntity getAREntity() + { + return ARSenderEntity.get(this); + } + + public ARSenderEntity getAREntity(boolean online) + { + return ARSenderEntity.get(this, online); + } + + public ARSenderId getARId() + { + return ARSenderId.get(this); + } + + public ARSenderId getARId(boolean online) + { + return ARSenderId.get(this, online); + } + + // -------------------------------------------- // + // GET ALL ONLINE / OFFLINE // -------------------------------------------- // public Collection getAllOnline() @@ -131,20 +149,5 @@ public class SenderColl> extends Coll implements Se senderColl.setSenderReference(senderId, sender); } } - - // -------------------------------------------- // - // ARGUMENT READERS - // -------------------------------------------- // - // TODO: Why were these removed? - - /*public ArgReader getARFullAny() - { - return ARSenderEntity.getFullAny(this); - } - - public ArgReader getARStartAny() - { - return ARSenderEntity.getStartAny(this); - }*/ } diff --git a/src/com/massivecraft/massivecore/store/SenderIdSourceCombined.java b/src/com/massivecraft/massivecore/store/SenderIdSourceCombined.java deleted file mode 100644 index 88e89e76..00000000 --- a/src/com/massivecraft/massivecore/store/SenderIdSourceCombined.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.massivecraft.massivecore.store; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -public class SenderIdSourceCombined implements SenderIdSource -{ - // -------------------------------------------- // - // FIELDS - // -------------------------------------------- // - - private final List sources; - - // -------------------------------------------- // - // CONSTRUCT - // -------------------------------------------- // - - public SenderIdSourceCombined(SenderIdSource... sources) - { - this.sources = new ArrayList(Arrays.asList(sources)); - } - - public SenderIdSourceCombined(Collection sources) - { - this.sources = new ArrayList(sources); - } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public Collection> getSenderIdCollections() - { - List> ret = new ArrayList>(); - for (SenderIdSource source : this.sources) - { - ret.addAll(source.getSenderIdCollections()); - } - return ret; - } - -} diff --git a/src/com/massivecraft/massivecore/store/SenderIdSourceMixinAllSenderIds.java b/src/com/massivecraft/massivecore/store/SenderIdSourceMixinAllSenderIds.java index ca917b8b..630accef 100644 --- a/src/com/massivecraft/massivecore/store/SenderIdSourceMixinAllSenderIds.java +++ b/src/com/massivecraft/massivecore/store/SenderIdSourceMixinAllSenderIds.java @@ -23,7 +23,6 @@ public class SenderIdSourceMixinAllSenderIds implements SenderIdSource public Collection> getSenderIdCollections() { List> ret = new ArrayList>(); - ret.add(IdUtil.getAllNames()); ret.add(IdUtil.getAllIds()); return ret; }