diff --git a/README.md b/README.md
index ead50ce2..0b1f8bd1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
-
+
![MassiveCore Logotype](https://raw.github.com/MassiveCraft/MassiveCore/master/media/logo300.png)
-http://massivecraft.com/massivecore
+https://www.massivecraft.com/massivecore
diff --git a/plugin.yml b/plugin.yml
index 4fabbb30..006b52e9 100644
--- a/plugin.yml
+++ b/plugin.yml
@@ -1,9 +1,9 @@
main: com.massivecraft.massivecore.MassiveCore
name: MassiveCore
version: 2.8.2
-website: http://massivecraft.com/massivecore
+website: https://www.massivecraft.com/massivecore
authors: [Cayorion]
-description: §eMassiveCore is a plugin that contains libraries and features that other plugins make use of. §aCayorion §efrom the minecraft server §aMassiveCraft §eis the lead programmer. Feel free to visit us at §bhttp://massivecraft.com
+description: §eMassiveCore is a plugin that contains libraries and features that other plugins make use of. §aCayorion §efrom the minecraft server §aMassiveCraft §eis the lead programmer. Feel free to visit us at §bhttps://www.massivecraft.com
load: startup
permissions:
# -------------------------------------------- #
diff --git a/src/com/massivecraft/massivecore/MassiveCore.java b/src/com/massivecraft/massivecore/MassiveCore.java
index 3c52cc00..48ee5006 100644
--- a/src/com/massivecraft/massivecore/MassiveCore.java
+++ b/src/com/massivecraft/massivecore/MassiveCore.java
@@ -28,11 +28,6 @@ import com.massivecraft.massivecore.adapter.MsonEventAdapter;
import com.massivecraft.massivecore.adapter.PlayerInventoryAdapter;
import com.massivecraft.massivecore.adapter.UUIDAdapter;
import com.massivecraft.massivecore.chestgui.EngineChestGui;
-import com.massivecraft.massivecore.cmd.massivecore.CmdMassiveCore;
-import com.massivecraft.massivecore.cmd.massivecore.CmdMassiveCoreBuffer;
-import com.massivecraft.massivecore.cmd.massivecore.CmdMassiveCoreCmdurl;
-import com.massivecraft.massivecore.cmd.massivecore.CmdMassiveCoreStore;
-import com.massivecraft.massivecore.cmd.massivecore.CmdMassiveCoreUsys;
import com.massivecraft.massivecore.collections.BackstringEnumSet;
import com.massivecraft.massivecore.collections.MassiveList;
import com.massivecraft.massivecore.collections.MassiveListDef;
@@ -44,6 +39,11 @@ import com.massivecraft.massivecore.collections.MassiveTreeMap;
import com.massivecraft.massivecore.collections.MassiveTreeMapDef;
import com.massivecraft.massivecore.collections.MassiveTreeSet;
import com.massivecraft.massivecore.collections.MassiveTreeSetDef;
+import com.massivecraft.massivecore.command.massivecore.CmdMassiveCore;
+import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreBuffer;
+import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreCmdurl;
+import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreStore;
+import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreUsys;
import com.massivecraft.massivecore.integration.vault.IntegrationVault;
import com.massivecraft.massivecore.mixin.EngineTeleportMixinCause;
import com.massivecraft.massivecore.mson.Mson;
diff --git a/src/com/massivecraft/massivecore/MassiveCoreEngineCommandRegistration.java b/src/com/massivecraft/massivecore/MassiveCoreEngineCommandRegistration.java
index ee3a7fe5..08e570dd 100644
--- a/src/com/massivecraft/massivecore/MassiveCoreEngineCommandRegistration.java
+++ b/src/com/massivecraft/massivecore/MassiveCoreEngineCommandRegistration.java
@@ -12,8 +12,8 @@ import org.bukkit.command.Command;
import org.bukkit.command.SimpleCommandMap;
import org.bukkit.plugin.Plugin;
-import com.massivecraft.massivecore.cmd.MassiveCommand;
-import com.massivecraft.massivecore.cmd.MassiveCoreBukkitCommand;
+import com.massivecraft.massivecore.command.MassiveCommand;
+import com.massivecraft.massivecore.command.MassiveCoreBukkitCommand;
import com.massivecraft.massivecore.util.ReflectionUtil;
public class MassiveCoreEngineCommandRegistration extends EngineAbstract
diff --git a/src/com/massivecraft/massivecore/MassiveCoreEngineDestination.java b/src/com/massivecraft/massivecore/MassiveCoreEngineDestination.java
index 543c1fb0..646f9bcc 100644
--- a/src/com/massivecraft/massivecore/MassiveCoreEngineDestination.java
+++ b/src/com/massivecraft/massivecore/MassiveCoreEngineDestination.java
@@ -11,10 +11,10 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.plugin.Plugin;
-import com.massivecraft.massivecore.cmd.type.TypePS;
-import com.massivecraft.massivecore.cmd.type.TypeSenderId;
-import com.massivecraft.massivecore.cmd.type.TypeWorldId;
import com.massivecraft.massivecore.collections.MassiveSet;
+import com.massivecraft.massivecore.command.type.TypePS;
+import com.massivecraft.massivecore.command.type.TypeWorldId;
+import com.massivecraft.massivecore.command.type.sender.TypeSenderId;
import com.massivecraft.massivecore.event.EventMassiveCoreDestination;
import com.massivecraft.massivecore.ps.PS;
import com.massivecraft.massivecore.teleport.Destination;
diff --git a/src/com/massivecraft/massivecore/MassivePlugin.java b/src/com/massivecraft/massivecore/MassivePlugin.java
index a1c72968..3a8ab37b 100644
--- a/src/com/massivecraft/massivecore/MassivePlugin.java
+++ b/src/com/massivecraft/massivecore/MassivePlugin.java
@@ -10,7 +10,7 @@ import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
-import com.massivecraft.massivecore.cmd.MassiveCommand;
+import com.massivecraft.massivecore.command.MassiveCommand;
import com.massivecraft.massivecore.integration.IntegrationGlue;
import com.massivecraft.massivecore.integration.Integration;
import com.massivecraft.massivecore.store.Coll;
diff --git a/src/com/massivecraft/massivecore/Multiverse.java b/src/com/massivecraft/massivecore/Multiverse.java
index 1fcd6c61..e85afe96 100644
--- a/src/com/massivecraft/massivecore/Multiverse.java
+++ b/src/com/massivecraft/massivecore/Multiverse.java
@@ -8,7 +8,7 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;
-import com.massivecraft.massivecore.cmd.type.TypeUniverse;
+import com.massivecraft.massivecore.command.type.TypeUniverse;
import com.massivecraft.massivecore.store.Entity;
import com.massivecraft.massivecore.util.MUtil;
diff --git a/src/com/massivecraft/massivecore/Named.java b/src/com/massivecraft/massivecore/Named.java
new file mode 100644
index 00000000..cd635eab
--- /dev/null
+++ b/src/com/massivecraft/massivecore/Named.java
@@ -0,0 +1,6 @@
+package com.massivecraft.massivecore;
+
+public interface Named
+{
+ public String getName();
+}
diff --git a/src/com/massivecraft/massivecore/SoundEffect.java b/src/com/massivecraft/massivecore/SoundEffect.java
index 833dae6c..d24716ec 100644
--- a/src/com/massivecraft/massivecore/SoundEffect.java
+++ b/src/com/massivecraft/massivecore/SoundEffect.java
@@ -7,9 +7,6 @@ import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
-import com.massivecraft.massivecore.cmd.type.TypeFloat;
-import com.massivecraft.massivecore.cmd.type.TypeSound;
-
public final class SoundEffect implements Cloneable, Serializable
{
private static final transient long serialVersionUID = 1L;
@@ -61,29 +58,6 @@ public final class SoundEffect implements Cloneable, Serializable
return new SoundEffect(sound, volume, pitch);
}
- public static SoundEffect valueOf(String soundString) throws Exception
- {
- if (soundString == null) throw new NullPointerException("soundString was null");
- soundString = soundString.trim();
-
- String[] parts = soundString.split("[^a-zA-Z0-9_.]+");
- Sound sound = TypeSound.get().read(parts[0]);
-
- float volume = 1.0f;
- if (parts.length >= 2)
- {
- volume = TypeFloat.get().read(parts[1]);
- }
-
- float pitch = 1.0f;
- if (parts.length >= 3)
- {
- pitch = TypeFloat.get().read(parts[2]);
- }
-
- return SoundEffect.valueOf(sound, volume, pitch);
- }
-
// -------------------------------------------- //
// RUN
// -------------------------------------------- //
diff --git a/src/com/massivecraft/massivecore/cmd/req/ReqAnd.java b/src/com/massivecraft/massivecore/cmd/req/ReqAnd.java
deleted file mode 100644
index c9ceadc6..00000000
--- a/src/com/massivecraft/massivecore/cmd/req/ReqAnd.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.massivecraft.massivecore.cmd.req;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.cmd.MassiveCommand;
-
-public class ReqAnd extends ReqAbstract
-{
- private static final long serialVersionUID = 1L;
-
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- public static ReqAnd get(Req... reqs) { return new ReqAnd(reqs); }
- public ReqAnd(Req... reqs)
- {
- this(Arrays.asList(reqs));
- }
-
- public static ReqAnd get(Collection reqs) { return new ReqAnd(reqs); }
- public ReqAnd(Collection reqs)
- {
- this.reqs = Collections.unmodifiableList(new ArrayList(reqs));
- }
-
- // -------------------------------------------- //
- // FIELDS
- // -------------------------------------------- //
-
- private final List reqs;
- public List getReqs() { return this.reqs; }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public boolean apply(CommandSender sender, MassiveCommand command)
- {
- return this.getFirstFailedSubreq(sender, command) == null;
- }
-
- @Override
- public String createErrorMessage(CommandSender sender, MassiveCommand command)
- {
- return this.getFirstFailedSubreq(sender, command).createErrorMessage(sender, command);
- }
-
- public Req getFirstFailedSubreq(CommandSender sender, MassiveCommand command)
- {
- for (Req req : this.getReqs())
- {
- if (!req.apply(sender, command)) return req;
- }
- return null;
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/Type.java b/src/com/massivecraft/massivecore/cmd/type/Type.java
deleted file mode 100644
index 02b03c9d..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/Type.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.MassiveException;
-
-public interface Type
-{
- // Human friendly name
- public String getTypeName();
-
- // Read
- public T read(String arg, CommandSender sender) throws MassiveException;
- public T read(CommandSender sender) throws MassiveException;
- public T read(String arg) throws MassiveException;
- public T read() throws MassiveException;
-
- // Valid (used for arbitary argument order)
- public boolean isValid(String arg, CommandSender sender);
-
- // Tab list
- // The sender is the one that tried to tab complete.
- // The arg is beginning the word they are trying to tab complete.
- public Collection getTabList(CommandSender sender, String arg);
- public List getTabListFiltered(CommandSender sender, String arg);
-
- // Sometimes we put a space after a tab completion.
- // That would however not make sense with all Types.
- // Default is true;
- public boolean allowSpaceAfterTab();
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeAll.java b/src/com/massivecraft/massivecore/cmd/type/TypeAll.java
deleted file mode 100644
index d56fd5b2..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeAll.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.MassiveException;
-
-public final class TypeAll
-{
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- @SuppressWarnings("unchecked")
- public static Type> get(Type> inner)
- {
- if (inner instanceof TypeCollection) return new TypeAllCollection((TypeCollection extends Collection>) inner);
- if (inner instanceof TypeAllAble) return new TypeAllDefault((TypeAllAble) inner);
- throw new IllegalArgumentException("innerType must be an instance of either TypeCollection or TypeAllAble");
- }
-
- // -------------------------------------------- //
- // AR ALL DEFAULT
- // -------------------------------------------- //
-
- private static class TypeAllDefault extends TypeWrapper>
- {
- // -------------------------------------------- //
- // FIELDS
- // -------------------------------------------- //
-
- protected TypeAllAble innerType;
- @Override public TypeAllAble getInnerType() { return this.innerType; }
-
- // -------------------------------------------- //
- // CONSTRUCT
- // -------------------------------------------- //
-
- public TypeAllDefault(TypeAllAble inner)
- {
- if (inner == null) throw new IllegalArgumentException("innerType musn't be null");
- this.innerType = inner;
- }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public Collection read(String arg, CommandSender sender) throws MassiveException
- {
- if ("all".equalsIgnoreCase(arg)) return getInnerType().getAll(sender);
-
- T innerRet = getInnerType().read(arg, sender);
- return Collections.singletonList(innerRet);
- }
-
- @Override
- public boolean isValid(String arg, CommandSender sender)
- {
- return "all".equalsIgnoreCase(arg) || this.getInnerType().isValid(arg, sender);
- }
-
- }
-
- // -------------------------------------------- //
- // AR ALL COLLECTION
- // -------------------------------------------- //
-
- private static class TypeAllCollection extends TypeWrapper>
- {
- // -------------------------------------------- //
- // FIELDS
- // -------------------------------------------- //
-
- protected TypeCollection extends Collection> innerType;
- @Override public TypeCollection extends Collection> getInnerType() { return this.innerType; }
-
- // -------------------------------------------- //
- // CONSTRUCT
- // -------------------------------------------- //
-
- public TypeAllCollection(TypeCollection extends Collection> inner)
- {
- if (inner == null) throw new IllegalArgumentException("innerType musn't be null");
- if ( !(inner.getInnerType() instanceof TypeAllAble)) throw new IllegalArgumentException("innerType must implement ARAllAble");
- this.innerType = inner;
- }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public Collection read(String arg, CommandSender sender) throws MassiveException
- {
- if ("all".equalsIgnoreCase(arg))
- {
- @SuppressWarnings("unchecked")
- TypeAllAble innersInner = (TypeAllAble) getInnerType().getInnerType();
- return innersInner.getAll(sender);
- }
-
- return getInnerType().read(arg, sender);
- }
-
- @Override
- public boolean isValid(String arg, CommandSender sender)
- {
- return "all".equalsIgnoreCase(arg) || this.getInnerType().isValid(arg, sender);
- }
-
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeBiome.java b/src/com/massivecraft/massivecore/cmd/type/TypeBiome.java
deleted file mode 100644
index b5612d82..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeBiome.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.block.Biome;
-import org.bukkit.command.CommandSender;
-
-public class TypeBiome extends TypeAbstractSelect implements TypeAllAble
-{
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- private static TypeBiome i = new TypeBiome();
- public static TypeBiome get() { return i; }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public Biome select(String arg, CommandSender sender)
- {
- arg = getComparable(arg);
-
- for (Biome biome : Biome.values())
- {
- String biomestr = getComparable(biome);
- if (biomestr.equals(arg)) return biome;
-
- biomestr = String.valueOf(biome.ordinal());
- if (biomestr.equals(arg)) return biome;
- }
-
- return null;
- }
-
- @Override
- public Collection altNames(CommandSender sender)
- {
- List ret = new ArrayList();
-
- for (Biome biome : Biome.values())
- {
- ret.add(String.valueOf(biome.ordinal()));
- ret.add(biome.toString());
- }
-
- return ret;
- }
-
- @Override
- public Collection getTabList(CommandSender sender, String arg)
- {
- List ret = new ArrayList();
-
- for (Biome biome : Biome.values())
- {
- ret.add(getComparable(biome.name()));
- }
-
- return ret;
- }
-
-
- @Override
- public Collection getAll(CommandSender sender)
- {
- return Arrays.asList(Biome.values());
- }
-
- // -------------------------------------------- //
- // UTIL
- // -------------------------------------------- //
-
- public static String getComparable(Biome biome)
- {
- if (biome == null) return null;
- return getComparable(biome.name());
- }
-
- public static String getComparable(String string)
- {
- if (string == null) return null;
- string = string.toLowerCase();
- string = string.replace("_", "");
- string = string.replace(" ", "");
- return string;
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeBoolean.java b/src/com/massivecraft/massivecore/cmd/type/TypeBoolean.java
deleted file mode 100644
index 8d7644ec..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeBoolean.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.util.MUtil;
-
-public class TypeBoolean extends TypeAbstractPrimitive
-{
- // -------------------------------------------- //
- // CONSTANTS
- // -------------------------------------------- //
-
- public static final Set TRUE_OPTIONS = MUtil.set(
- "y", "ye", "yes",
- "on",
- "t", "tr", "tru", "true");
-
- public static final Set FALSE_OPTIONS = MUtil.set(
- "n", "no",
- "of", "off",
- "f", "fa", "fal", "fals", "false");
-
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- private static TypeBoolean i = new TypeBoolean();
- public static TypeBoolean get() { return i; }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public String getTypeName()
- {
- return "toggle";
- }
-
- @Override
- public Boolean valueOf(String arg, CommandSender sender) throws Exception
- {
- arg = arg.toLowerCase();
-
- if (TRUE_OPTIONS.contains(arg)) return Boolean.TRUE;
- if (FALSE_OPTIONS.contains(arg)) return Boolean.FALSE;
-
- throw new Exception();
- }
-
- @Override
- public Collection getTabList(CommandSender sender, String arg)
- {
- List ret = new ArrayList();
-
- // Default yes and no.
- ret.add("yes");
- ret.add("no");
-
- // If it is empty we just want to show yes and no
- // else we might want to show other things.
- // We can safely add them because it is filtered.
- if ( ! arg.isEmpty())
- {
- ret.add("true");
- ret.add("false");
- ret.add("on");
- ret.add("off");
- }
-
- return ret;
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeChatColor.java b/src/com/massivecraft/massivecore/cmd/type/TypeChatColor.java
deleted file mode 100644
index e7f5aa6e..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeChatColor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-public class TypeChatColor extends TypeAbstractSelect implements TypeAllAble
-{
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- private static TypeChatColor i = new TypeChatColor();
- public static TypeChatColor get() { return i; }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public ChatColor select(String arg, CommandSender sender)
- {
- arg = getComparable(arg);
-
- for (ChatColor cc : ChatColor.values())
- {
- String ccstr = getComparable(cc);
- if (ccstr.equals(arg)) return cc;
- }
-
- return null;
- }
-
- @Override
- public Collection altNames(CommandSender sender)
- {
- List ret = new ArrayList();
-
- for (ChatColor cc : ChatColor.values())
- {
- ret.add(cc.toString() + getComparable(cc));
- }
-
- return ret;
- }
-
- @Override
- public Collection getTabList(CommandSender sender, String arg)
- {
- List ret = new ArrayList();
-
- for (ChatColor cc : ChatColor.values())
- {
- ret.add(getComparable(cc));
- }
-
- return ret;
- }
-
- @Override
- public Collection getAll(CommandSender sender)
- {
- return Arrays.asList(ChatColor.values());
- }
-
- // -------------------------------------------- //
- // UTIL
- // -------------------------------------------- //
-
- public static String getComparable(ChatColor color)
- {
- if (color == null) return null;
- return getComparable(color.name());
- }
-
- // "DARK_RED" --> "darkred"
- // "DARK RED" --> "darkred"
- public static String getComparable(String string)
- {
- string = string.toLowerCase();
- string = string.replace("_", "");
- string = string.replace(" ", "");
- return string;
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeColl.java b/src/com/massivecraft/massivecore/cmd/type/TypeColl.java
deleted file mode 100644
index 288970a8..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeColl.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.Collection;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.store.Coll;
-
-public class TypeColl extends TypeAbstractSelect> implements TypeAllAble>
-{
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- private static TypeColl i = new TypeColl();
- public static TypeColl get() { return i; }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public Coll> select(String arg, CommandSender sender)
- {
- return Coll.getMap().get(arg);
- }
-
- @Override
- public Collection altNames(CommandSender sender)
- {
- return Coll.getNames();
- }
-
- @Override
- public Collection getTabList(CommandSender sender, String arg)
- {
- return this.altNames(sender);
- }
-
- @Override
- public Collection> getAll(CommandSender sender)
- {
- return Coll.getMap().values();
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeCollection.java b/src/com/massivecraft/massivecore/cmd/type/TypeCollection.java
deleted file mode 100644
index 2510c121..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeCollection.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.util.Txt;
-
-public abstract class TypeCollection> extends TypeWrapper
-{
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
- @Override
- public Collection getTabList(CommandSender sender, String arg)
- {
- // Because we accept multiple arguments of the same type.
- // The passed arg might be more than one. We only want the latest.
- return this.getInnerType().getTabList(sender, getLastArg(arg));
- }
-
- @Override
- public List getTabListFiltered(CommandSender sender, String arg)
- {
- // Because we accept multiple arguments of the same type.
- // The passed arg might be more than one. We only want the latest.
- return this.getInnerType().getTabListFiltered(sender, getLastArg(arg));
- }
-
- public static String getLastArg(String str)
- {
- String[] innerArgs = Txt.REGEX_WHITESPACE.split(str, -1);
- return innerArgs[innerArgs.length - 1];
- }
-
-}
diff --git a/src/com/massivecraft/massivecore/cmd/type/TypeCombined.java b/src/com/massivecraft/massivecore/cmd/type/TypeCombined.java
deleted file mode 100644
index 189b2d94..00000000
--- a/src/com/massivecraft/massivecore/cmd/type/TypeCombined.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.massivecraft.massivecore.cmd.type;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.command.CommandSender;
-
-import com.massivecraft.massivecore.MassiveException;
-import com.massivecraft.massivecore.collections.MassiveList;
-
-public class TypeCombined extends TypeAbstract>
-{
- // -------------------------------------------- //
- // FIELDS
- // -------------------------------------------- //
-
- protected List> inners;
- public List> getInners() { return this.inners; }
-
- // -------------------------------------------- //
- // INSTANCE & CONSTRUCT
- // -------------------------------------------- //
-
- public static TypeCombined get(Collection> inners) { return new TypeCombined(inners); }
- public static TypeCombined get(Type>... inners) { return new TypeCombined(inners); }
-
- public TypeCombined(Collection> inners)
- {
- this.inners = new MassiveList>(inners);
- }
- public TypeCombined(Type>... inners)
- {
- this(Arrays.asList(inners));
- }
-
- // -------------------------------------------- //
- // OVERRIDE
- // -------------------------------------------- //
-
-
- //TODO: How to do this?
- /*@Override
- public String getTypeName()
- {
-
- }*/
-
- @Override
- public List> read(String arg, CommandSender sender) throws MassiveException
- {
- // Create Ret
- List