diff --git a/plugin.yml b/plugin.yml index 8f95ef11..b29a27dd 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,8 +1,8 @@ -name: mcore -version: 1.0.0 -main: com.massivecraft.core.plugin.MCore +name: mcore1 +version: 1 +main: com.massivecraft.core1.MCore authors: [Olof Larsson] softdepend: [Vault, Spout] commands: - mcore: - description: Reference command for mcore. \ No newline at end of file + mcoresilenteater: + description: ignore me. \ No newline at end of file diff --git a/src/com/massivecraft/core/lib/gson2/package-info.java b/src/com/massivecraft/core/lib/gson2/package-info.java deleted file mode 100644 index 2d134b09..00000000 --- a/src/com/massivecraft/core/lib/gson2/package-info.java +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This package provides the {@link com.massivecraft.core.lib.gson2.Gson} class to convert Json to Java and - * vice-versa. - * - *

The primary class to use is {@link com.massivecraft.core.lib.gson2.Gson} which can be constructed with - * {@code new Gson()} (using default settings) or by using {@link com.massivecraft.core.lib.gson2.GsonBuilder} - * (to configure various options such as using versioning and so on).

- * - * @author Inderjeet Singh, Joel Leitch - */ -package com.massivecraft.core.lib.gson2; \ No newline at end of file diff --git a/src/com/massivecraft/core/persist/Persist.java b/src/com/massivecraft/core/persist/Persist.java deleted file mode 100644 index 122bf5e1..00000000 --- a/src/com/massivecraft/core/persist/Persist.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.massivecraft.core.persist; - -import java.util.HashMap; -import java.util.Map; - -public class Persist -{ - private static Map realms = new HashMap(); - public static Map getRealms() { return realms; } - public static PersistRealm getRealm(Object realmOwner) { return realms.get(realmOwner); } - public static void createRealm(Object realmOwner) - { - if (realms.containsKey(realmOwner)) return; - realms.put(realmOwner, new PersistRealm()); - } - public static void removeRealm(Object realmOwner) { realms.remove(realmOwner); } -} diff --git a/src/com/massivecraft/core/plugin/MCore.java b/src/com/massivecraft/core/plugin/MCore.java deleted file mode 100644 index 6d333bf3..00000000 --- a/src/com/massivecraft/core/plugin/MCore.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.massivecraft.core.plugin; - -import org.bukkit.Bukkit; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; -import org.bukkit.plugin.java.JavaPlugin; - -import com.massivecraft.core.persist.Persist; -import com.massivecraft.core.persist.PersistRealm; -import com.massivecraft.core.plugin.listener.PluginPlayerListener; -import com.massivecraft.core.plugin.listener.PluginServerListener; -import com.massivecraft.core.plugin.listener.PluginServerListenerMonitor; -import com.massivecraft.core.text.TextUtil; - -public class MCore extends JavaPlugin -{ - PluginServerListener serverListener; - PluginServerListenerMonitor serverListenerMonitor; - PluginPlayerListener playerListener; - - public static MCore p; - //public static PersistRealm persist; - public static TextUtil text = new TextUtil(); - - public MCore() - { - p = this; - Persist.createRealm(this); - //persist = Persist.getRealm(this); - this.serverListener = new PluginServerListener(this); - this.serverListenerMonitor = new PluginServerListenerMonitor(this); - this.playerListener = new PluginPlayerListener(this); - } - - public static PersistRealm getPersist() - { - return Persist.getRealm(p); - } - - @Override - public void onDisable() - { - // Avoid memleak by clearing ??? - // Or will this trigger errors??? - //Persist.getRealms().clear(); - } - - @Override - public void onEnable() - { - // This is safe since all plugins using Persist should bukkit-depend this plugin. - Persist.getRealms().clear(); - - // Register events - //Bukkit.getPluginManager().registerEvent(Type.PLUGIN_ENABLE, this.serverListener, Priority.Lowest, this); // Dangerous!?!?! - //Bukkit.getPluginManager().registerEvent(Type.PLUGIN_DISABLE, this.serverListenerMonitor, Priority.Monitor, this); // Dangerous!?!?! - Bukkit.getPluginManager().registerEvent(Type.PLAYER_JOIN, this.playerListener, Priority.Lowest, this); - } - -} diff --git a/src/com/massivecraft/core/plugin/listener/PluginPlayerListener.java b/src/com/massivecraft/core/plugin/listener/PluginPlayerListener.java deleted file mode 100644 index 61416e9c..00000000 --- a/src/com/massivecraft/core/plugin/listener/PluginPlayerListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.massivecraft.core.plugin.listener; - -import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerListener; -import org.bukkit.event.player.PlayerLoginEvent; - -import com.massivecraft.core.persist.IClassManager; -import com.massivecraft.core.persist.Persist; -import com.massivecraft.core.persist.PersistRealm; -import com.massivecraft.core.plugin.MCore; - -public class PluginPlayerListener extends PlayerListener -{ - MCore p; - - public PluginPlayerListener(MCore p) - { - this.p = p; - } - - @Override - public void onPlayerLogin(PlayerLoginEvent event) - { - Player player = event.getPlayer(); - - for (PersistRealm realm : Persist.getRealms().values()) - { - for (IClassManager manager : realm.getClassManagers().values()) - { - if (manager.idFix(player) == null) continue; - if (manager.containsId(player)) continue; - manager.create(player); - } - } - } -} diff --git a/src/com/massivecraft/core/plugin/listener/PluginServerListener.java b/src/com/massivecraft/core/plugin/listener/PluginServerListener.java deleted file mode 100644 index 18b62b76..00000000 --- a/src/com/massivecraft/core/plugin/listener/PluginServerListener.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.massivecraft.core.plugin.listener; - -import org.bukkit.event.server.PluginEnableEvent; -import org.bukkit.event.server.ServerListener; - -import com.massivecraft.core.persist.Persist; -import com.massivecraft.core.plugin.MCore; - -public class PluginServerListener extends ServerListener -{ - MCore p; - - public PluginServerListener(MCore p) - { - this.p = p; - } - - @Override - public void onPluginEnable(PluginEnableEvent event) - { - // TODO: Is this run after or before??? - Persist.createRealm(event.getPlugin()); - } -} diff --git a/src/com/massivecraft/core/plugin/listener/PluginServerListenerMonitor.java b/src/com/massivecraft/core/plugin/listener/PluginServerListenerMonitor.java deleted file mode 100644 index 7e155079..00000000 --- a/src/com/massivecraft/core/plugin/listener/PluginServerListenerMonitor.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.massivecraft.core.plugin.listener; - -import org.bukkit.event.server.PluginDisableEvent; -import org.bukkit.event.server.PluginEnableEvent; -import org.bukkit.event.server.ServerListener; - -import com.massivecraft.core.persist.Persist; -import com.massivecraft.core.plugin.MCore; - -public class PluginServerListenerMonitor extends ServerListener -{ - MCore p; - - public PluginServerListenerMonitor(MCore p) - { - this.p = p; - } - - @Override - public void onPluginDisable(PluginDisableEvent event) - { - Persist.removeRealm(event.getPlugin()); - } - - @Override - public void onPluginEnable(PluginEnableEvent event) - { - // TODO: Is this run after or before??? - Persist.createRealm(event.getPlugin()); - } -} diff --git a/src/com/massivecraft/core/Lang.java b/src/com/massivecraft/mcore1/Lang.java similarity index 91% rename from src/com/massivecraft/core/Lang.java rename to src/com/massivecraft/mcore1/Lang.java index 0fa2b2c8..8f64a339 100644 --- a/src/com/massivecraft/core/Lang.java +++ b/src/com/massivecraft/mcore1/Lang.java @@ -1,4 +1,4 @@ -package com.massivecraft.core; +package com.massivecraft.mcore1; public class Lang { diff --git a/src/com/massivecraft/mcore1/MCore.java b/src/com/massivecraft/mcore1/MCore.java new file mode 100644 index 00000000..8b744a95 --- /dev/null +++ b/src/com/massivecraft/mcore1/MCore.java @@ -0,0 +1,133 @@ +package com.massivecraft.mcore1; + +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.Event.Type; +import org.bukkit.plugin.java.JavaPlugin; + + +import com.massivecraft.mcore1.cmd.Cmd; +import com.massivecraft.mcore1.lib.gson.GsonBuilder; +import com.massivecraft.mcore1.perm.Perm; +import com.massivecraft.mcore1.persist.Persist; +import com.massivecraft.mcore1.text.Txt; + +public class MCore extends JavaPlugin +{ + MCoreServerListener serverListener; + MCoreServerListenerMonitor serverListenerMonitor; + MCorePlayerListener playerListener; + + // -------------------------------------------- // + // PERSIST + // -------------------------------------------- // + private static Map persistInstances = new HashMap(); + public static Map getPersistInstances() { return persistInstances; } + public static Persist getPersist(Object owner) { return persistInstances.get(owner); } + public static void removePersist(Object owner) { persistInstances.remove(owner); } + public static void createPersist(Object owner) + { + if (persistInstances.containsKey(owner)) return; + persistInstances.put(owner, new Persist()); + } + + // -------------------------------------------- // + // CMD + // -------------------------------------------- // + private static Map cmdInstances = new HashMap(); + public static Map getCmdInstances() { return cmdInstances; } + public static Cmd getCmd(Object owner) { return cmdInstances.get(owner); } + public static void removeCmd(Object owner) { cmdInstances.remove(owner); } + public static void createCmd(Object owner) + { + if (cmdInstances.containsKey(owner)) return; + cmdInstances.put(owner, new Cmd()); + } + public static boolean handleCommand(CommandSender sender, String commandString, boolean testOnly) + { + List args = new ArrayList(Arrays.asList(commandString.split("\\s+"))); + if (args.size() == 0) return false; + String alias = args.get(0); + args.remove(0); + for (Cmd cmd : cmdInstances.values()) + { + if (cmd.handleCommand(sender, alias, args, testOnly)) return true; + } + return false; + } + + // -------------------------------------------- // + // TXT + // -------------------------------------------- // + private static Map txtInstances = new HashMap(); + public static Map getTxtInstances() { return txtInstances; } + public static Txt getTxt(Object owner) { return txtInstances.get(owner); } + public static void removeTxt(Object owner) { txtInstances.remove(owner); } + public static void createTxt(Object owner) + { + if (txtInstances.containsKey(owner)) return; + txtInstances.put(owner, new Txt()); + } + + // -------------------------------------------- // + // PERM + // -------------------------------------------- // + private static Map permInstances = new HashMap(); + public static Map getPermInstances() { return permInstances; } + public static Perm getPerm(Object owner) { return permInstances.get(owner); } + public static void removePerm(Object owner) { permInstances.remove(owner); } + public static void createPerm(Object owner) + { + if (permInstances.containsKey(owner)) return; + createTxt(owner); + permInstances.put(owner, new Perm(getTxt(owner))); + } + + // -------------------------------------------- // + // DERP + // -------------------------------------------- // + + public MCore() + { + this.serverListener = new MCoreServerListener(this); + this.serverListenerMonitor = new MCoreServerListenerMonitor(this); + this.playerListener = new MCorePlayerListener(this); + } + + @Override + public void onDisable() + { + // Avoid memleak by clearing ??? + // Or will this trigger errors??? + //Persist.getRealms().clear(); + } + + @Override + public void onEnable() + { + // This is safe since all plugins using Persist should bukkit-depend this plugin. + getPersistInstances().clear(); + + // Register events + Bukkit.getPluginManager().registerEvent(Type.PLAYER_PRELOGIN, this.playerListener, Priority.Lowest, this); + Bukkit.getPluginManager().registerEvent(Type.PLAYER_COMMAND_PREPROCESS, this.playerListener, Event.Priority.Lowest, this); + Bukkit.getPluginManager().registerEvent(Type.SERVER_COMMAND, this.serverListener, Event.Priority.Lowest, this); + } + + public GsonBuilder getGsonBuilder() + { + return new GsonBuilder() + .setPrettyPrinting() + .disableHtmlEscaping() + .excludeFieldsWithModifiers(Modifier.TRANSIENT); + } +} diff --git a/src/com/massivecraft/mcore1/MCorePlayerListener.java b/src/com/massivecraft/mcore1/MCorePlayerListener.java new file mode 100644 index 00000000..66532957 --- /dev/null +++ b/src/com/massivecraft/mcore1/MCorePlayerListener.java @@ -0,0 +1,45 @@ +package com.massivecraft.mcore1; + +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerListener; +import org.bukkit.event.player.PlayerPreLoginEvent; + +import com.massivecraft.mcore1.persist.IClassManager; +import com.massivecraft.mcore1.persist.Persist; + +public class MCorePlayerListener extends PlayerListener +{ + MCore p; + + public MCorePlayerListener(MCore p) + { + this.p = p; + } + + @Override + public void onPlayerPreLogin(PlayerPreLoginEvent event) + { + String id = event.getName(); + + for (Persist realm : MCore.getPersistInstances().values()) + { + for (IClassManager manager : realm.getClassManagers().values()) + { + if (manager.idCanFix(Player.class) == false) continue; + if (manager.containsId(id)) continue; + manager.create(id); + } + } + } + + @Override + public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) + { + if (event.isCancelled()) return; + if (MCore.handleCommand(event.getPlayer(), event.getMessage().substring(1), false)) + { + event.setCancelled(true); + } + } +} diff --git a/src/com/massivecraft/mcore1/MCoreServerListener.java b/src/com/massivecraft/mcore1/MCoreServerListener.java new file mode 100644 index 00000000..203e401f --- /dev/null +++ b/src/com/massivecraft/mcore1/MCoreServerListener.java @@ -0,0 +1,27 @@ +package com.massivecraft.mcore1; + +import org.bukkit.event.server.ServerCommandEvent; +import org.bukkit.event.server.ServerListener; + + +public class MCoreServerListener extends ServerListener +{ + MCore p; + + private final static String refCommand = "mcoresilenteater"; + + public MCoreServerListener(MCore p) + { + this.p = p; + } + + @Override + public void onServerCommand(ServerCommandEvent event) + { + if (event.getCommand().length() == 0) return; + if (MCore.handleCommand(event.getSender(), event.getCommand(), false)) + { + event.setCommand(refCommand); + } + } +} diff --git a/src/com/massivecraft/mcore1/MCoreServerListenerMonitor.java b/src/com/massivecraft/mcore1/MCoreServerListenerMonitor.java new file mode 100644 index 00000000..f9df74e6 --- /dev/null +++ b/src/com/massivecraft/mcore1/MCoreServerListenerMonitor.java @@ -0,0 +1,14 @@ +package com.massivecraft.mcore1; + +import org.bukkit.event.server.ServerListener; + + +public class MCoreServerListenerMonitor extends ServerListener +{ + MCore p; + + public MCoreServerListenerMonitor(MCore p) + { + this.p = p; + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHBase.java b/src/com/massivecraft/mcore1/cmd/AHBase.java new file mode 100644 index 00000000..d65e1092 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHBase.java @@ -0,0 +1,19 @@ +package com.massivecraft.mcore1.cmd; + +import org.bukkit.command.CommandSender; + +import com.massivecraft.mcore1.plugin.MPlugin; + +public abstract class AHBase implements IArgHandler +{ + protected String error = null; + + @Override + public abstract T parse(String str, String style, CommandSender sender, MPlugin p); + + @Override + public String error() + { + return this.error; + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHBoolean.java b/src/com/massivecraft/mcore1/cmd/AHBoolean.java new file mode 100644 index 00000000..565e2157 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHBoolean.java @@ -0,0 +1,21 @@ +package com.massivecraft.mcore1.cmd; + +public class AHBoolean extends AHPrimitive +{ + @Override + protected String getPrimitiveName() + { + return "boolean"; + } + + @Override + protected Boolean unsafeConvert(String str) throws Exception + { + str = str.toLowerCase(); + if (str.startsWith("y") || str.startsWith("t") || str.startsWith("on") || str.startsWith("+") || str.startsWith("1")) + { + return true; + } + return false; + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHDouble.java b/src/com/massivecraft/mcore1/cmd/AHDouble.java new file mode 100644 index 00000000..a1e008ce --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHDouble.java @@ -0,0 +1,16 @@ +package com.massivecraft.mcore1.cmd; + +public class AHDouble extends AHPrimitive +{ + @Override + protected String getPrimitiveName() + { + return "double"; + } + + @Override + protected Double unsafeConvert(String str) throws Exception + { + return Double.parseDouble(str); + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHFloat.java b/src/com/massivecraft/mcore1/cmd/AHFloat.java new file mode 100644 index 00000000..7e88d027 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHFloat.java @@ -0,0 +1,16 @@ +package com.massivecraft.mcore1.cmd; + +public class AHFloat extends AHPrimitive +{ + @Override + protected String getPrimitiveName() + { + return "integer"; + } + + @Override + protected Float unsafeConvert(String str) throws Exception + { + return Float.parseFloat(str); + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHInteger.java b/src/com/massivecraft/mcore1/cmd/AHInteger.java new file mode 100644 index 00000000..992bf747 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHInteger.java @@ -0,0 +1,16 @@ +package com.massivecraft.mcore1.cmd; + +public class AHInteger extends AHPrimitive +{ + @Override + protected String getPrimitiveName() + { + return "integer"; + } + + @Override + protected Integer unsafeConvert(String str) throws Exception + { + return Integer.parseInt(str); + } +} \ No newline at end of file diff --git a/src/com/massivecraft/mcore1/cmd/AHPlayer.java b/src/com/massivecraft/mcore1/cmd/AHPlayer.java new file mode 100644 index 00000000..c1bed5fe --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHPlayer.java @@ -0,0 +1,36 @@ +package com.massivecraft.mcore1.cmd; + +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.massivecraft.mcore1.plugin.MPlugin; + +public class AHPlayer extends AHBase +{ + @Override + public Player parse(String str, String style, CommandSender sender, MPlugin p) + { + this.error = null; + if (str == null) return null; + + if (style.equals("match")) + { + List players = Bukkit.getServer().matchPlayer(str); + if (players.size() > 0) + { + return players.get(0); + } + this.error = "\"

"+str+"\" did not match any online player."; + } + + Player player = Bukkit.getServer().getPlayer(str); + if (player == null) + { + this.error = "No player online with the exact name \"

"+str+"\"."; + } + return player; + } +} diff --git a/src/com/massivecraft/mcore1/cmd/AHPrimitive.java b/src/com/massivecraft/mcore1/cmd/AHPrimitive.java new file mode 100644 index 00000000..1bfb1544 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/AHPrimitive.java @@ -0,0 +1,29 @@ +package com.massivecraft.mcore1.cmd; + +import org.bukkit.command.CommandSender; + +import com.massivecraft.mcore1.plugin.MPlugin; + +public abstract class AHPrimitive extends AHBase +{ + protected abstract String getPrimitiveName(); + + protected abstract T unsafeConvert(String str) throws Exception; + + @Override + public T parse(String str, String style, CommandSender sender, MPlugin p) + { + this.error = null; + if (str == null) return null; + try + { + T ret = this.unsafeConvert(str); + return ret; + } + catch (Exception e) + { + this.error = "\"

"+str+"\" is not a valid "+this.getPrimitiveName()+"."; + } + return null; + } +} diff --git a/src/com/massivecraft/mcore1/cmd/Cmd.java b/src/com/massivecraft/mcore1/cmd/Cmd.java new file mode 100644 index 00000000..5bc7cd2c --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/Cmd.java @@ -0,0 +1,49 @@ +package com.massivecraft.mcore1.cmd; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class Cmd +{ + protected Map, IArgHandler> argHandlers = new HashMap, IArgHandler>(); + public Map, IArgHandler> getArgHandlers() { return this.argHandlers; } + @SuppressWarnings("unchecked") + public IArgHandler getArgHandler(Class clazz) { return (IArgHandler) this.argHandlers.get(clazz); } + public void setArgHandler(Class clazz, IArgHandler handler) { this.argHandlers.put(clazz, handler); } + + protected Set commands = new HashSet(); + public Set getCommands() { return this.commands; } + public void addCommand(MCommand mcommand) { this.commands.add(mcommand); } + public MCommand getCommand(String alias) + { + for (MCommand command : this.commands) + { + if (command.aliases.contains(alias)) return command; + } + return null; + } + + public boolean handleCommand(CommandSender sender, String alias, List args, boolean testOnly) + { + MCommand mcommand = this.getCommand(alias); + if (mcommand == null) return false; + if (testOnly) return true; + mcommand.execute(sender, args); + return true; + } + + public Cmd() + { + this.setArgHandler(Boolean.class, new AHBoolean()); + this.setArgHandler(Integer.class, new AHInteger()); + this.setArgHandler(Float.class, new AHFloat()); + this.setArgHandler(Double.class, new AHDouble()); + this.setArgHandler(Player.class, new AHPlayer()); + } +} diff --git a/src/com/massivecraft/mcore1/cmd/IArgHandler.java b/src/com/massivecraft/mcore1/cmd/IArgHandler.java new file mode 100644 index 00000000..39c37026 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/IArgHandler.java @@ -0,0 +1,14 @@ +package com.massivecraft.mcore1.cmd; + +import org.bukkit.command.CommandSender; + +import com.massivecraft.mcore1.plugin.MPlugin; + +public interface IArgHandler +{ + // Parse result returned - or null and something in the error message. + public T parse(String str, String style, CommandSender sender, MPlugin p); + + // Error here - or null. + public String error(); +} diff --git a/src/com/massivecraft/mcore1/cmd/MCommand.java b/src/com/massivecraft/mcore1/cmd/MCommand.java new file mode 100644 index 00000000..06a1f4e8 --- /dev/null +++ b/src/com/massivecraft/mcore1/cmd/MCommand.java @@ -0,0 +1,353 @@ +package com.massivecraft.mcore1.cmd; + +import java.util.*; +import java.util.Map.Entry; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.massivecraft.mcore1.Lang; +import com.massivecraft.mcore1.plugin.MPlugin; + +public abstract class MCommand +{ + public abstract MPlugin getPlugin(); + + // The sub-commands to this command + public List subCommands; + public void addSubCommand(MCommand subCommand) + { + subCommand.commandChain.addAll(this.commandChain); + subCommand.commandChain.add(this); + this.subCommands.add(subCommand); + } + + // The different names this commands will react to + public List aliases; + + // Information on the args + public List requiredArgs; + public LinkedHashMap optionalArgs; + public boolean errorOnToManyArgs = true; + + // FIELD: Help Short + // This field may be left blank and will in such case be loaded from the permissions node instead. + // Thus make sure the permissions node description is an action description like "eat hamburgers" or "do admin stuff". + private String helpShort; + public void setHelpShort(String val) { this.helpShort = val; } + public String getHelpShort() + { + if (this.helpShort == null) + { + String pdesc = getPlugin().perm.getPermissionDescription(this.permission); + if (pdesc != null) + { + return pdesc; + } + return "*info unavailable*"; + } + return this.helpShort; + } + + public List helpLong; + //public CommandVisibility visibility; // ??? abstract method only?? + + // Some information on permissions + public boolean senderMustBePlayer; + public String permission; + + // Information available on execution of the command + public CommandSender sender; // Will always be set + public Player me; // Will only be set when the sender is a player + public boolean senderIsConsole; + public List args; // Will contain the arguments, or and empty list if there are none. + public List commandChain = new ArrayList(); // The command chain used to execute this command + + public MCommand() + { + this.permission = null; + + this.subCommands = new ArrayList(); + this.aliases = new ArrayList(); + + this.requiredArgs = new ArrayList(); + this.optionalArgs = new LinkedHashMap(); + + this.helpShort = null; + this.helpLong = new ArrayList(); + //this.visibility = CommandVisibility.VISIBLE; + } + + // The commandChain is a list of the parent command chain used to get to this command. + public void execute(CommandSender sender, List args, List commandChain) + { + // Set the execution-time specific variables + this.sender = sender; + if (sender instanceof Player) + { + this.me = (Player)sender; + this.senderIsConsole = false; + } + else + { + this.me = null; + this.senderIsConsole = true; + } + this.args = args; + this.commandChain = commandChain; + + // Is there a matching sub command? + if (args.size() > 0 ) + { + for (MCommand subCommand: this.subCommands) + { + if (subCommand.aliases.contains(args.get(0))) + { + args.remove(0); + commandChain.add(this); + subCommand.execute(sender, args, commandChain); + return; + } + } + } + + if ( ! validCall(this.sender, this.args)) return; + + if ( ! this.isEnabled()) return; + + perform(); + } + + public void execute(CommandSender sender, List args) + { + execute(sender, args, new ArrayList()); + } + + // This is where the command action is performed. + public abstract void perform(); + + + // -------------------------------------------- // + // Call Validation + // -------------------------------------------- // + + /** + * In this method we validate that all prerequisites to perform this command has been met. + */ + public boolean validCall(CommandSender sender, List args) + { + if ( ! validSenderType(sender, true)) + { + return false; + } + + if ( ! validSenderPermissions(sender, true)) + { + return false; + } + + if ( ! validArgs(args, sender)) + { + return false; + } + + return true; + } + + public boolean isEnabled() + { + return true; + } + + public boolean validSenderType(CommandSender sender, boolean informSenderIfNot) + { + if (this.senderMustBePlayer && ! (sender instanceof Player)) + { + if (informSenderIfNot) + { + msg(Lang.commandSenderMustBePlayer); + } + return false; + } + return true; + } + + public boolean validSenderPermissions(CommandSender sender, boolean informSenderIfNot) + { + if (this.permission == null) return true; + return getPlugin().perm.has(sender, this.permission, informSenderIfNot); + } + + public boolean validArgs(List args, CommandSender sender) + { + if (args.size() < this.requiredArgs.size()) + { + if (sender != null) + { + msg(Lang.commandToFewArgs); + sender.sendMessage(this.getUseageTemplate()); + } + return false; + } + + if (args.size() > this.requiredArgs.size() + this.optionalArgs.size() && this.errorOnToManyArgs) + { + if (sender != null) + { + // Get the to many string slice + List theToMany = args.subList(this.requiredArgs.size() + this.optionalArgs.size(), args.size()); + msg(Lang.commandToManyArgs, getPlugin().txt.implode(theToMany, " ")); + sender.sendMessage(this.getUseageTemplate()); + } + return false; + } + return true; + } + public boolean validArgs(List args) + { + return this.validArgs(args, null); + } + + // -------------------------------------------- // + // Help and Usage information + // -------------------------------------------- // + + public String getUseageTemplate(List commandChain, boolean addShortHelp) + { + StringBuilder ret = new StringBuilder(); + ret.append(getPlugin().txt.getDesign().getColorCommand()); + ret.append('/'); + + for (MCommand mc : commandChain) + { + ret.append(getPlugin().txt.implode(mc.aliases, ",")); + ret.append(' '); + } + + ret.append(getPlugin().txt.implode(this.aliases, ",")); + + List args = new ArrayList(); + + for (String requiredArg : this.requiredArgs) + { + args.add("<"+requiredArg+">"); + } + + for (Entry optionalArg : this.optionalArgs.entrySet()) + { + String val = optionalArg.getValue(); + if (val == null) + { + val = ""; + } + else + { + val = "="+val; + } + args.add("["+optionalArg.getKey()+val+"]"); + } + + if (args.size() > 0) + { + ret.append(getPlugin().txt.getDesign().getColorParameter()); + ret.append(' '); + ret.append(getPlugin().txt.implode(args, " ")); + } + + if (addShortHelp) + { + ret.append(' '); + ret.append(getPlugin().txt.getDesign().getColorInfo()); + ret.append(this.getHelpShort()); + } + + return ret.toString(); + } + + public String getUseageTemplate(boolean addShortHelp) + { + return getUseageTemplate(this.commandChain, addShortHelp); + } + + public String getUseageTemplate() + { + return getUseageTemplate(false); + } + + // -------------------------------------------- // + // Message Sending Helpers + // -------------------------------------------- // + + public void msg(String str, Object... args) + { + sender.sendMessage(getPlugin().txt.parse(str, args)); + } + + public void msg(String str) + { + sender.sendMessage(getPlugin().txt.parse(str)); + } + + public void sendMessage(String msg) + { + sender.sendMessage(msg); + } + + public void sendMessage(List msgs) + { + for(String msg : msgs) + { + this.sendMessage(msg); + } + } + + // -------------------------------------------- // + // Argument Readers + // -------------------------------------------- // + + public String arg(int idx) + { + if ( ! this.argIsSet(idx)) return null; + return this.args.get(idx); + } + + public boolean argIsSet(int idx) + { + if (this.args.size() < idx+1) + { + return false; + } + return true; + } + + public synchronized T argAs(int idx, Class clazz, String style, T defaultNotSet, T defaultNotFound) + { + if ( ! this.argIsSet(idx)) + { + return defaultNotSet; + } + IArgHandler handler = getPlugin().cmd.getArgHandler(clazz); + T ret = handler.parse(this.arg(idx), style, this.sender, getPlugin()); + if (ret == null) + { + this.msg(handler.error()); + return defaultNotFound; + } + return ret; + } + + public T argAs(int idx, Class clazz,T defaultNotSet, T defaultNotFound) + { + return this.argAs(idx, clazz, null, defaultNotSet, defaultNotFound); + } + + public T argAs(int idx, Class clazz,T defaultNotSet) + { + return this.argAs(idx, clazz, null, defaultNotSet, null); + } + + public T argAs(int idx, Class clazz) + { + return this.argAs(idx, clazz, null, null); + } +} diff --git a/src/com/massivecraft/core/lib/gson2/AnonymousAndLocalClassExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/AnonymousAndLocalClassExclusionStrategy.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/AnonymousAndLocalClassExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/AnonymousAndLocalClassExclusionStrategy.java index f1d811a7..9acc934c 100644 --- a/src/com/massivecraft/core/lib/gson2/AnonymousAndLocalClassExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/AnonymousAndLocalClassExclusionStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * Strategy for excluding anonymous and local classes. diff --git a/src/com/massivecraft/core/lib/gson2/Cache.java b/src/com/massivecraft/mcore1/lib/gson/Cache.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/Cache.java rename to src/com/massivecraft/mcore1/lib/gson/Cache.java index b91600c6..22e704fd 100644 --- a/src/com/massivecraft/core/lib/gson2/Cache.java +++ b/src/com/massivecraft/mcore1/lib/gson/Cache.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * Defines generic cache interface. diff --git a/src/com/massivecraft/core/lib/gson2/CamelCaseSeparatorNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/CamelCaseSeparatorNamingPolicy.java similarity index 95% rename from src/com/massivecraft/core/lib/gson2/CamelCaseSeparatorNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/CamelCaseSeparatorNamingPolicy.java index 53c20811..b81d84fa 100644 --- a/src/com/massivecraft/core/lib/gson2/CamelCaseSeparatorNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/CamelCaseSeparatorNamingPolicy.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/src/com/massivecraft/core/lib/gson2/CompositionFieldNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/CompositionFieldNamingPolicy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/CompositionFieldNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/CompositionFieldNamingPolicy.java index 710a8cb1..78283443 100644 --- a/src/com/massivecraft/core/lib/gson2/CompositionFieldNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/CompositionFieldNamingPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/src/com/massivecraft/core/lib/gson2/DefaultTypeAdapters.java b/src/com/massivecraft/mcore1/lib/gson/DefaultTypeAdapters.java similarity index 99% rename from src/com/massivecraft/core/lib/gson2/DefaultTypeAdapters.java rename to src/com/massivecraft/mcore1/lib/gson/DefaultTypeAdapters.java index fc6cc803..cd3d81f5 100644 --- a/src/com/massivecraft/core/lib/gson2/DefaultTypeAdapters.java +++ b/src/com/massivecraft/mcore1/lib/gson/DefaultTypeAdapters.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.lang.reflect.Type; import java.sql.Timestamp; diff --git a/src/com/massivecraft/core/lib/gson2/DisjunctionExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/DisjunctionExclusionStrategy.java similarity index 92% rename from src/com/massivecraft/core/lib/gson2/DisjunctionExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/DisjunctionExclusionStrategy.java index 64940e95..fd7a559a 100644 --- a/src/com/massivecraft/core/lib/gson2/DisjunctionExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/DisjunctionExclusionStrategy.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; import java.util.Collection; diff --git a/src/com/massivecraft/core/lib/gson2/ExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/ExclusionStrategy.java similarity index 99% rename from src/com/massivecraft/core/lib/gson2/ExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/ExclusionStrategy.java index bfc17b06..d2470229 100644 --- a/src/com/massivecraft/core/lib/gson2/ExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/ExclusionStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * A strategy (or policy) definition that is used to decide whether or not a field or top-level diff --git a/src/com/massivecraft/core/lib/gson2/ExposeAnnotationDeserializationExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/ExposeAnnotationDeserializationExclusionStrategy.java similarity index 91% rename from src/com/massivecraft/core/lib/gson2/ExposeAnnotationDeserializationExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/ExposeAnnotationDeserializationExclusionStrategy.java index 42e22efc..3b7e785d 100644 --- a/src/com/massivecraft/core/lib/gson2/ExposeAnnotationDeserializationExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/ExposeAnnotationDeserializationExclusionStrategy.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.annotations.Expose; +import com.massivecraft.mcore1.lib.gson.annotations.Expose; /** * Excludes fields that do not have the {@link Expose} annotation diff --git a/src/com/massivecraft/core/lib/gson2/ExposeAnnotationSerializationExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/ExposeAnnotationSerializationExclusionStrategy.java similarity index 91% rename from src/com/massivecraft/core/lib/gson2/ExposeAnnotationSerializationExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/ExposeAnnotationSerializationExclusionStrategy.java index d9e5df86..16025a91 100644 --- a/src/com/massivecraft/core/lib/gson2/ExposeAnnotationSerializationExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/ExposeAnnotationSerializationExclusionStrategy.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.annotations.Expose; +import com.massivecraft.mcore1.lib.gson.annotations.Expose; /** * Excludes fields that do not have the {@link Expose} annotation diff --git a/src/com/massivecraft/core/lib/gson2/FieldAttributes.java b/src/com/massivecraft/mcore1/lib/gson/FieldAttributes.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/FieldAttributes.java rename to src/com/massivecraft/mcore1/lib/gson/FieldAttributes.java index 05e3b1f8..3bbb55b1 100644 --- a/src/com/massivecraft/core/lib/gson2/FieldAttributes.java +++ b/src/com/massivecraft/mcore1/lib/gson/FieldAttributes.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; -import com.massivecraft.core.lib.gson2.internal.Pair; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.internal.Pair; import java.lang.annotation.Annotation; import java.lang.reflect.Field; diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/FieldNamingPolicy.java similarity index 95% rename from src/com/massivecraft/core/lib/gson2/FieldNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/FieldNamingPolicy.java index cd17671f..bc3ad8c7 100644 --- a/src/com/massivecraft/core/lib/gson2/FieldNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/FieldNamingPolicy.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * An enumeration that defines a few standard naming conventions for JSON field names. - * This enumeration should be used in conjunction with {@link com.massivecraft.core.lib.gson2.GsonBuilder} - * to configure a {@link com.massivecraft.core.lib.gson2.Gson} instance to properly translate Java field + * This enumeration should be used in conjunction with {@link com.massivecraft.mcore1.lib.gson.GsonBuilder} + * to configure a {@link com.massivecraft.mcore1.lib.gson.Gson} instance to properly translate Java field * names into the desired JSON field names. * * @author Inderjeet Singh diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy.java b/src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/FieldNamingStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy.java index 02ad9528..b440f6d2 100644 --- a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.lang.reflect.Field; diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2.java b/src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy2.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2.java rename to src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy2.java index 0768c84a..6a303e65 100644 --- a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2.java +++ b/src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy2.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * The new mechanism for providing custom field naming in Gson. This allows the client code diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2Adapter.java b/src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy2Adapter.java similarity index 91% rename from src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2Adapter.java rename to src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy2Adapter.java index 19d58c00..d3fa5d0a 100644 --- a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2Adapter.java +++ b/src/com/massivecraft/mcore1/lib/gson/FieldNamingStrategy2Adapter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; /** * Adapts the old FieldNamingStrategy to the new {@link FieldNamingStrategy2} diff --git a/src/com/massivecraft/core/lib/gson2/Gson.java b/src/com/massivecraft/mcore1/lib/gson/Gson.java similarity index 93% rename from src/com/massivecraft/core/lib/gson2/Gson.java rename to src/com/massivecraft/mcore1/lib/gson/Gson.java index dd6b7068..f15e345c 100644 --- a/src/com/massivecraft/core/lib/gson2/Gson.java +++ b/src/com/massivecraft/mcore1/lib/gson/Gson.java @@ -14,33 +14,33 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.internal.ConstructorConstructor; -import com.massivecraft.core.lib.gson2.internal.ParameterizedTypeHandlerMap; -import com.massivecraft.core.lib.gson2.internal.Primitives; -import com.massivecraft.core.lib.gson2.internal.Streams; -import com.massivecraft.core.lib.gson2.internal.bind.ArrayTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.BigDecimalTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.BigIntegerTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.CollectionTypeAdapterFactory; -import com.massivecraft.core.lib.gson2.internal.bind.DateTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.ExcludedTypeAdapterFactory; -import com.massivecraft.core.lib.gson2.internal.bind.JsonElementReader; -import com.massivecraft.core.lib.gson2.internal.bind.JsonElementWriter; -import com.massivecraft.core.lib.gson2.internal.bind.MapTypeAdapterFactory; -import com.massivecraft.core.lib.gson2.internal.bind.MiniGson; -import com.massivecraft.core.lib.gson2.internal.bind.ObjectTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.ReflectiveTypeAdapterFactory; -import com.massivecraft.core.lib.gson2.internal.bind.SqlDateTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.TimeTypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.TypeAdapter; -import com.massivecraft.core.lib.gson2.internal.bind.TypeAdapters; -import com.massivecraft.core.lib.gson2.reflect.TypeToken; -import com.massivecraft.core.lib.gson2.stream.JsonReader; -import com.massivecraft.core.lib.gson2.stream.JsonToken; -import com.massivecraft.core.lib.gson2.stream.JsonWriter; -import com.massivecraft.core.lib.gson2.stream.MalformedJsonException; +import com.massivecraft.mcore1.lib.gson.internal.ConstructorConstructor; +import com.massivecraft.mcore1.lib.gson.internal.ParameterizedTypeHandlerMap; +import com.massivecraft.mcore1.lib.gson.internal.Primitives; +import com.massivecraft.mcore1.lib.gson.internal.Streams; +import com.massivecraft.mcore1.lib.gson.internal.bind.ArrayTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.BigDecimalTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.BigIntegerTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.CollectionTypeAdapterFactory; +import com.massivecraft.mcore1.lib.gson.internal.bind.DateTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.ExcludedTypeAdapterFactory; +import com.massivecraft.mcore1.lib.gson.internal.bind.JsonElementReader; +import com.massivecraft.mcore1.lib.gson.internal.bind.JsonElementWriter; +import com.massivecraft.mcore1.lib.gson.internal.bind.MapTypeAdapterFactory; +import com.massivecraft.mcore1.lib.gson.internal.bind.MiniGson; +import com.massivecraft.mcore1.lib.gson.internal.bind.ObjectTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.ReflectiveTypeAdapterFactory; +import com.massivecraft.mcore1.lib.gson.internal.bind.SqlDateTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.TimeTypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.TypeAdapter; +import com.massivecraft.mcore1.lib.gson.internal.bind.TypeAdapters; +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken; +import com.massivecraft.mcore1.lib.gson.stream.JsonReader; +import com.massivecraft.mcore1.lib.gson.stream.JsonToken; +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter; +import com.massivecraft.mcore1.lib.gson.stream.MalformedJsonException; import java.io.EOFException; import java.io.IOException; @@ -95,7 +95,7 @@ import java.util.Map; *

See the Gson User Guide * for a more complete set of examples.

* - * @see com.massivecraft.core.lib.gson2.reflect.TypeToken + * @see com.massivecraft.mcore1.lib.gson.reflect.TypeToken * * @author Inderjeet Singh * @author Joel Leitch @@ -158,10 +158,10 @@ public final class Gson { * ignores the millisecond portion of the date during serialization. You can change * this by invoking {@link GsonBuilder#setDateFormat(int)} or * {@link GsonBuilder#setDateFormat(String)}. - *
  • By default, Gson ignores the {@link com.massivecraft.core.lib.gson2.annotations.Expose} annotation. + *
  • By default, Gson ignores the {@link com.massivecraft.mcore1.lib.gson.annotations.Expose} annotation. * You can enable Gson to serialize/deserialize only those fields marked with this annotation * through {@link GsonBuilder#excludeFieldsWithoutExposeAnnotation()}.
  • - *
  • By default, Gson ignores the {@link com.massivecraft.core.lib.gson2.annotations.Since} annotation. You + *
  • By default, Gson ignores the {@link com.massivecraft.mcore1.lib.gson.annotations.Since} annotation. You * can enable Gson to use this annotation through {@link GsonBuilder#setVersion(double)}.
  • *
  • The default field naming policy for the output Json is same as in Java. So, a Java class * field versionNumber will be output as "versionNumber@quot; in @@ -392,7 +392,7 @@ public final class Gson { * * @param src the object for which JSON representation is to be created * @param typeOfSrc The specific genericized type of src. You can obtain - * this type by using the {@link com.massivecraft.core.lib.gson2.reflect.TypeToken} class. For example, + * this type by using the {@link com.massivecraft.mcore1.lib.gson.reflect.TypeToken} class. For example, * to get the type for {@code Collection}, you should use: *
        * Type typeOfSrc = new TypeToken<Collection<Foo>>(){}.getType();
    @@ -435,7 +435,7 @@ public final class Gson {
        *
        * @param src the object for which JSON representation is to be created
        * @param typeOfSrc The specific genericized type of src. You can obtain
    -   * this type by using the {@link com.massivecraft.core.lib.gson2.reflect.TypeToken} class. For example,
    +   * this type by using the {@link com.massivecraft.mcore1.lib.gson.reflect.TypeToken} class. For example,
        * to get the type for {@code Collection}, you should use:
        * 
        * Type typeOfSrc = new TypeToken<Collection<Foo>>(){}.getType();
    @@ -477,7 +477,7 @@ public final class Gson {
        *
        * @param src the object for which JSON representation is to be created
        * @param typeOfSrc The specific genericized type of src. You can obtain
    -   * this type by using the {@link com.massivecraft.core.lib.gson2.reflect.TypeToken} class. For example,
    +   * this type by using the {@link com.massivecraft.mcore1.lib.gson.reflect.TypeToken} class. For example,
        * to get the type for {@code Collection}, you should use:
        * 
        * Type typeOfSrc = new TypeToken<Collection<Foo>>(){}.getType();
    @@ -619,7 +619,7 @@ public final class Gson {
        * @param  the type of the desired object
        * @param json the string from which the object is to be deserialized
        * @param typeOfT The specific genericized type of src. You can obtain this type by using the
    -   * {@link com.massivecraft.core.lib.gson2.reflect.TypeToken} class. For example, to get the type for
    +   * {@link com.massivecraft.mcore1.lib.gson.reflect.TypeToken} class. For example, to get the type for
        * {@code Collection}, you should use:
        * 
        * Type typeOfT = new TypeToken<Collection<Foo>>(){}.getType();
    @@ -672,7 +672,7 @@ public final class Gson {
        * @param  the type of the desired object
        * @param json the reader producing Json from which the object is to be deserialized
        * @param typeOfT The specific genericized type of src. You can obtain this type by using the
    -   * {@link com.massivecraft.core.lib.gson2.reflect.TypeToken} class. For example, to get the type for
    +   * {@link com.massivecraft.mcore1.lib.gson.reflect.TypeToken} class. For example, to get the type for
        * {@code Collection}, you should use:
        * 
        * Type typeOfT = new TypeToken<Collection<Foo>>(){}.getType();
    @@ -769,7 +769,7 @@ public  T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyn
        * @param json the root of the parse tree of {@link JsonElement}s from which the object is to
        * be deserialized
        * @param typeOfT The specific genericized type of src. You can obtain this type by using the
    -   * {@link com.massivecraft.core.lib.gson2.reflect.TypeToken} class. For example, to get the type for
    +   * {@link com.massivecraft.mcore1.lib.gson.reflect.TypeToken} class. For example, to get the type for
        * {@code Collection}, you should use:
        * 
        * Type typeOfT = new TypeToken<Collection<Foo>>(){}.getType();
    diff --git a/src/com/massivecraft/core/lib/gson2/GsonBuilder.java b/src/com/massivecraft/mcore1/lib/gson/GsonBuilder.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/GsonBuilder.java
    rename to src/com/massivecraft/mcore1/lib/gson/GsonBuilder.java
    index 0c3961e9..84ad4674 100644
    --- a/src/com/massivecraft/core/lib/gson2/GsonBuilder.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/GsonBuilder.java
    @@ -14,13 +14,13 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.DefaultTypeAdapters.DefaultDateTypeAdapter;
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions;
    -import com.massivecraft.core.lib.gson2.internal.ParameterizedTypeHandlerMap;
    -import com.massivecraft.core.lib.gson2.internal.Primitives;
    -import com.massivecraft.core.lib.gson2.internal.bind.TypeAdapter;
    +import com.massivecraft.mcore1.lib.gson.DefaultTypeAdapters.DefaultDateTypeAdapter;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions;
    +import com.massivecraft.mcore1.lib.gson.internal.ParameterizedTypeHandlerMap;
    +import com.massivecraft.mcore1.lib.gson.internal.Primitives;
    +import com.massivecraft.mcore1.lib.gson.internal.bind.TypeAdapter;
     
     import java.lang.reflect.Type;
     import java.sql.Timestamp;
    @@ -178,7 +178,7 @@ public final class GsonBuilder {
     
       /**
        * Configures Gson to exclude all fields from consideration for serialization or deserialization
    -   * that do not have the {@link com.massivecraft.core.lib.gson2.annotations.Expose} annotation.
    +   * that do not have the {@link com.massivecraft.mcore1.lib.gson.annotations.Expose} annotation.
        *
        * @return a reference to this {@code GsonBuilder} object to fulfill the "Builder" pattern
        */
    diff --git a/src/com/massivecraft/core/lib/gson2/GsonToMiniGsonTypeAdapterFactory.java b/src/com/massivecraft/mcore1/lib/gson/GsonToMiniGsonTypeAdapterFactory.java
    similarity index 85%
    rename from src/com/massivecraft/core/lib/gson2/GsonToMiniGsonTypeAdapterFactory.java
    rename to src/com/massivecraft/mcore1/lib/gson/GsonToMiniGsonTypeAdapterFactory.java
    index 568dea41..1094c99b 100644
    --- a/src/com/massivecraft/core/lib/gson2/GsonToMiniGsonTypeAdapterFactory.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/GsonToMiniGsonTypeAdapterFactory.java
    @@ -13,15 +13,15 @@
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.internal.ParameterizedTypeHandlerMap;
    -import com.massivecraft.core.lib.gson2.internal.Streams;
    -import com.massivecraft.core.lib.gson2.internal.bind.MiniGson;
    -import com.massivecraft.core.lib.gson2.internal.bind.TypeAdapter;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.internal.ParameterizedTypeHandlerMap;
    +import com.massivecraft.mcore1.lib.gson.internal.Streams;
    +import com.massivecraft.mcore1.lib.gson.internal.bind.MiniGson;
    +import com.massivecraft.mcore1.lib.gson.internal.bind.TypeAdapter;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.lang.reflect.Type;
    diff --git a/src/com/massivecraft/core/lib/gson2/InnerClassExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/InnerClassExclusionStrategy.java
    similarity index 96%
    rename from src/com/massivecraft/core/lib/gson2/InnerClassExclusionStrategy.java
    rename to src/com/massivecraft/mcore1/lib/gson/InnerClassExclusionStrategy.java
    index 63816b7f..f97d11ce 100644
    --- a/src/com/massivecraft/core/lib/gson2/InnerClassExclusionStrategy.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/InnerClassExclusionStrategy.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.reflect.Modifier;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/InstanceCreator.java b/src/com/massivecraft/mcore1/lib/gson/InstanceCreator.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/InstanceCreator.java
    rename to src/com/massivecraft/mcore1/lib/gson/InstanceCreator.java
    index 15961c16..42fe6e0a 100644
    --- a/src/com/massivecraft/core/lib/gson2/InstanceCreator.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/InstanceCreator.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.reflect.Type;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/JavaFieldNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/JavaFieldNamingPolicy.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/JavaFieldNamingPolicy.java
    rename to src/com/massivecraft/mcore1/lib/gson/JavaFieldNamingPolicy.java
    index fcf4f168..5505c6eb 100644
    --- a/src/com/massivecraft/core/lib/gson2/JavaFieldNamingPolicy.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JavaFieldNamingPolicy.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.annotation.Annotation;
     import java.lang.reflect.Type;
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonArray.java b/src/com/massivecraft/mcore1/lib/gson/JsonArray.java
    similarity index 99%
    rename from src/com/massivecraft/core/lib/gson2/JsonArray.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonArray.java
    index 11640b28..f90253ac 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonArray.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonArray.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.math.BigDecimal;
     import java.math.BigInteger;
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonDeserializationContext.java b/src/com/massivecraft/mcore1/lib/gson/JsonDeserializationContext.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/JsonDeserializationContext.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonDeserializationContext.java
    index 0082d16f..fc1d4c8a 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonDeserializationContext.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonDeserializationContext.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.reflect.Type;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonDeserializer.java b/src/com/massivecraft/mcore1/lib/gson/JsonDeserializer.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/JsonDeserializer.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonDeserializer.java
    index a8637488..69c45924 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonDeserializer.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonDeserializer.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.reflect.Type;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonDeserializerExceptionWrapper.java b/src/com/massivecraft/mcore1/lib/gson/JsonDeserializerExceptionWrapper.java
    similarity index 95%
    rename from src/com/massivecraft/core/lib/gson2/JsonDeserializerExceptionWrapper.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonDeserializerExceptionWrapper.java
    index d17060be..6215b871 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonDeserializerExceptionWrapper.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonDeserializerExceptionWrapper.java
    @@ -14,9 +14,9 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions;
     
     import java.lang.reflect.Type;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonElement.java b/src/com/massivecraft/mcore1/lib/gson/JsonElement.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/JsonElement.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonElement.java
    index 1b3e5144..796ac3df 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonElement.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonElement.java
    @@ -14,10 +14,10 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.internal.Streams;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.internal.Streams;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.io.StringWriter;
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonElementVisitor.java b/src/com/massivecraft/mcore1/lib/gson/JsonElementVisitor.java
    similarity index 95%
    rename from src/com/massivecraft/core/lib/gson2/JsonElementVisitor.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonElementVisitor.java
    index 4aca2948..0c71fa9e 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonElementVisitor.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonElementVisitor.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.io.IOException;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonIOException.java b/src/com/massivecraft/mcore1/lib/gson/JsonIOException.java
    similarity index 96%
    rename from src/com/massivecraft/core/lib/gson2/JsonIOException.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonIOException.java
    index ba74f5be..d7eb0426 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonIOException.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonIOException.java
    @@ -13,7 +13,7 @@
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     /**
      * This exception is raised when Gson was unable to read an input stream
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonNull.java b/src/com/massivecraft/mcore1/lib/gson/JsonNull.java
    similarity index 93%
    rename from src/com/massivecraft/core/lib/gson2/JsonNull.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonNull.java
    index b08226ba..b4be4add 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonNull.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonNull.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     /**
      * A class representing a Json {@code null} value.
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonObject.java b/src/com/massivecraft/mcore1/lib/gson/JsonObject.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/JsonObject.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonObject.java
    index 9a231161..71272bb6 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonObject.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonObject.java
    @@ -14,9 +14,9 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions;
     
     import java.util.LinkedHashMap;
     import java.util.Map;
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonParseException.java b/src/com/massivecraft/mcore1/lib/gson/JsonParseException.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/JsonParseException.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonParseException.java
    index 61f9beac..fc1c4b3e 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonParseException.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonParseException.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     /**
      * This exception is raised if there is a serious issue that occurs during parsing of a Json
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonParser.java b/src/com/massivecraft/mcore1/lib/gson/JsonParser.java
    similarity index 88%
    rename from src/com/massivecraft/core/lib/gson2/JsonParser.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonParser.java
    index 79f92fc5..1b894b3c 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonParser.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonParser.java
    @@ -13,12 +13,12 @@
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.internal.Streams;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.MalformedJsonException;
    +import com.massivecraft.mcore1.lib.gson.internal.Streams;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.MalformedJsonException;
     
     import java.io.EOFException;
     import java.io.IOException;
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonPrimitive.java b/src/com/massivecraft/mcore1/lib/gson/JsonPrimitive.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/JsonPrimitive.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonPrimitive.java
    index 95dec800..402d3b8b 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonPrimitive.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonPrimitive.java
    @@ -14,10 +14,10 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions;
    -import com.massivecraft.core.lib.gson2.internal.LazilyParsedNumber;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions;
    +import com.massivecraft.mcore1.lib.gson.internal.LazilyParsedNumber;
     
     import java.math.BigDecimal;
     import java.math.BigInteger;
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonSerializationContext.java b/src/com/massivecraft/mcore1/lib/gson/JsonSerializationContext.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/JsonSerializationContext.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonSerializationContext.java
    index f13f0377..9e2378d7 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonSerializationContext.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonSerializationContext.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.reflect.Type;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/JsonSerializer.java b/src/com/massivecraft/mcore1/lib/gson/JsonSerializer.java
    similarity index 95%
    rename from src/com/massivecraft/core/lib/gson2/JsonSerializer.java
    rename to src/com/massivecraft/mcore1/lib/gson/JsonSerializer.java
    index 9589cec1..92f9a518 100644
    --- a/src/com/massivecraft/core/lib/gson2/JsonSerializer.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/JsonSerializer.java
    @@ -14,14 +14,14 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2;
    +package com.massivecraft.mcore1.lib.gson;
     
     import java.lang.reflect.Type;
     
     /**
      * Interface representing a custom serializer for Json. You should write a custom serializer, if
      * you are not happy with the default serialization done by Gson. You will also need to register
    - * this serializer through {@link com.massivecraft.core.lib.gson2.GsonBuilder#registerTypeAdapter(Type, Object)}.
    + * this serializer through {@link com.massivecraft.mcore1.lib.gson.GsonBuilder#registerTypeAdapter(Type, Object)}.
      *
      * 

    Let us look at example where defining a serializer will be useful. The {@code Id} class * defined below has two fields: {@code clazz} and {@code value}.

    diff --git a/src/com/massivecraft/core/lib/gson2/JsonStreamParser.java b/src/com/massivecraft/mcore1/lib/gson/JsonStreamParser.java similarity index 92% rename from src/com/massivecraft/core/lib/gson2/JsonStreamParser.java rename to src/com/massivecraft/mcore1/lib/gson/JsonStreamParser.java index e01d5571..ef9bb355 100644 --- a/src/com/massivecraft/core/lib/gson2/JsonStreamParser.java +++ b/src/com/massivecraft/mcore1/lib/gson/JsonStreamParser.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.io.EOFException; import java.io.IOException; @@ -22,10 +22,10 @@ import java.io.StringReader; import java.util.Iterator; import java.util.NoSuchElementException; -import com.massivecraft.core.lib.gson2.internal.Streams; -import com.massivecraft.core.lib.gson2.stream.JsonReader; -import com.massivecraft.core.lib.gson2.stream.JsonToken; -import com.massivecraft.core.lib.gson2.stream.MalformedJsonException; +import com.massivecraft.mcore1.lib.gson.internal.Streams; +import com.massivecraft.mcore1.lib.gson.stream.JsonReader; +import com.massivecraft.mcore1.lib.gson.stream.JsonToken; +import com.massivecraft.mcore1.lib.gson.stream.MalformedJsonException; /** * A streaming parser that allows reading of multiple {@link JsonElement}s from the specified reader diff --git a/src/com/massivecraft/core/lib/gson2/JsonSyntaxException.java b/src/com/massivecraft/mcore1/lib/gson/JsonSyntaxException.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/JsonSyntaxException.java rename to src/com/massivecraft/mcore1/lib/gson/JsonSyntaxException.java index 624c0d2a..6a74f951 100644 --- a/src/com/massivecraft/core/lib/gson2/JsonSyntaxException.java +++ b/src/com/massivecraft/mcore1/lib/gson/JsonSyntaxException.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * This exception is raised when Gson attempts to read (or write) a malformed diff --git a/src/com/massivecraft/core/lib/gson2/LongSerializationPolicy.java b/src/com/massivecraft/mcore1/lib/gson/LongSerializationPolicy.java similarity index 98% rename from src/com/massivecraft/core/lib/gson2/LongSerializationPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/LongSerializationPolicy.java index c164d027..e492ae77 100644 --- a/src/com/massivecraft/core/lib/gson2/LongSerializationPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/LongSerializationPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * Defines the expected format for a {@code long} or {@code Long} type when its serialized. diff --git a/src/com/massivecraft/core/lib/gson2/LowerCamelCaseSeparatorNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/LowerCamelCaseSeparatorNamingPolicy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/LowerCamelCaseSeparatorNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/LowerCamelCaseSeparatorNamingPolicy.java index 880eeea9..a2d656ad 100644 --- a/src/com/massivecraft/core/lib/gson2/LowerCamelCaseSeparatorNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/LowerCamelCaseSeparatorNamingPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * A {@link FieldNamingStrategy2} that ensures the JSON field names consist of only diff --git a/src/com/massivecraft/core/lib/gson2/LowerCaseNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/LowerCaseNamingPolicy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/LowerCaseNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/LowerCaseNamingPolicy.java index db0c79c0..424ebcb0 100644 --- a/src/com/massivecraft/core/lib/gson2/LowerCaseNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/LowerCaseNamingPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/src/com/massivecraft/core/lib/gson2/LruCache.java b/src/com/massivecraft/mcore1/lib/gson/LruCache.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/LruCache.java rename to src/com/massivecraft/mcore1/lib/gson/LruCache.java index 9348f6be..e0323d7a 100644 --- a/src/com/massivecraft/core/lib/gson2/LruCache.java +++ b/src/com/massivecraft/mcore1/lib/gson/LruCache.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.util.LinkedHashMap; diff --git a/src/com/massivecraft/core/lib/gson2/ModifierBasedExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/ModifierBasedExclusionStrategy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/ModifierBasedExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/ModifierBasedExclusionStrategy.java index 80bcfad5..f4f649a9 100644 --- a/src/com/massivecraft/core/lib/gson2/ModifierBasedExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/ModifierBasedExclusionStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.util.Collection; import java.util.HashSet; diff --git a/src/com/massivecraft/core/lib/gson2/ModifyFirstLetterNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/ModifyFirstLetterNamingPolicy.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/ModifyFirstLetterNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/ModifyFirstLetterNamingPolicy.java index 2da37cdc..6895461a 100644 --- a/src/com/massivecraft/core/lib/gson2/ModifyFirstLetterNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/ModifyFirstLetterNamingPolicy.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/src/com/massivecraft/core/lib/gson2/RecursiveFieldNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/RecursiveFieldNamingPolicy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/RecursiveFieldNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/RecursiveFieldNamingPolicy.java index 3da9f779..0fc8c5ab 100644 --- a/src/com/massivecraft/core/lib/gson2/RecursiveFieldNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/RecursiveFieldNamingPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/src/com/massivecraft/core/lib/gson2/SerializedNameAnnotationInterceptingNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/SerializedNameAnnotationInterceptingNamingPolicy.java similarity index 88% rename from src/com/massivecraft/core/lib/gson2/SerializedNameAnnotationInterceptingNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/SerializedNameAnnotationInterceptingNamingPolicy.java index 6edba502..1a3c4001 100644 --- a/src/com/massivecraft/core/lib/gson2/SerializedNameAnnotationInterceptingNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/SerializedNameAnnotationInterceptingNamingPolicy.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.annotations.SerializedName; +import com.massivecraft.mcore1.lib.gson.annotations.SerializedName; /** * A {@link FieldNamingStrategy2} that acts as a chain of responsibility. If the - * {@link com.massivecraft.core.lib.gson2.annotations.SerializedName} annotation is applied to a + * {@link com.massivecraft.mcore1.lib.gson.annotations.SerializedName} annotation is applied to a * field then this strategy will translate the name to the {@code * serializedName.value()}; otherwise it delegates to the wrapped * {@link FieldNamingStrategy2}. diff --git a/src/com/massivecraft/core/lib/gson2/SyntheticFieldExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/SyntheticFieldExclusionStrategy.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/SyntheticFieldExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/SyntheticFieldExclusionStrategy.java index 43a0e2d2..cfd106b4 100644 --- a/src/com/massivecraft/core/lib/gson2/SyntheticFieldExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/SyntheticFieldExclusionStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * A data object that stores attributes of a field. diff --git a/src/com/massivecraft/core/lib/gson2/UpperCamelCaseSeparatorNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/UpperCamelCaseSeparatorNamingPolicy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/UpperCamelCaseSeparatorNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/UpperCamelCaseSeparatorNamingPolicy.java index f3901be0..fd9e2c17 100644 --- a/src/com/massivecraft/core/lib/gson2/UpperCamelCaseSeparatorNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/UpperCamelCaseSeparatorNamingPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * A {@link FieldNamingStrategy2} that ensures the JSON field names consist of mixed diff --git a/src/com/massivecraft/core/lib/gson2/UpperCaseNamingPolicy.java b/src/com/massivecraft/mcore1/lib/gson/UpperCaseNamingPolicy.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/UpperCaseNamingPolicy.java rename to src/com/massivecraft/mcore1/lib/gson/UpperCaseNamingPolicy.java index 557e328c..4dbced0f 100644 --- a/src/com/massivecraft/core/lib/gson2/UpperCaseNamingPolicy.java +++ b/src/com/massivecraft/mcore1/lib/gson/UpperCaseNamingPolicy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/src/com/massivecraft/core/lib/gson2/VersionConstants.java b/src/com/massivecraft/mcore1/lib/gson/VersionConstants.java similarity index 95% rename from src/com/massivecraft/core/lib/gson2/VersionConstants.java rename to src/com/massivecraft/mcore1/lib/gson/VersionConstants.java index ce904f69..99a3815b 100644 --- a/src/com/massivecraft/core/lib/gson2/VersionConstants.java +++ b/src/com/massivecraft/mcore1/lib/gson/VersionConstants.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; /** * Class contain all constants for versioning support. diff --git a/src/com/massivecraft/core/lib/gson2/VersionExclusionStrategy.java b/src/com/massivecraft/mcore1/lib/gson/VersionExclusionStrategy.java similarity index 88% rename from src/com/massivecraft/core/lib/gson2/VersionExclusionStrategy.java rename to src/com/massivecraft/mcore1/lib/gson/VersionExclusionStrategy.java index cb6dd545..f1f0fd84 100644 --- a/src/com/massivecraft/core/lib/gson2/VersionExclusionStrategy.java +++ b/src/com/massivecraft/mcore1/lib/gson/VersionExclusionStrategy.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2; +package com.massivecraft.mcore1.lib.gson; -import com.massivecraft.core.lib.gson2.annotations.Since; -import com.massivecraft.core.lib.gson2.annotations.Until; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.annotations.Since; +import com.massivecraft.mcore1.lib.gson.annotations.Until; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; /** * This strategy will exclude any files and/or class that are passed the diff --git a/src/com/massivecraft/core/lib/gson2/annotations/Expose.java b/src/com/massivecraft/mcore1/lib/gson/annotations/Expose.java similarity index 92% rename from src/com/massivecraft/core/lib/gson2/annotations/Expose.java rename to src/com/massivecraft/mcore1/lib/gson/annotations/Expose.java index 1a1f4987..eb1cc855 100644 --- a/src/com/massivecraft/core/lib/gson2/annotations/Expose.java +++ b/src/com/massivecraft/mcore1/lib/gson/annotations/Expose.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.annotations; +package com.massivecraft.mcore1.lib.gson.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -25,9 +25,9 @@ import java.lang.annotation.Target; * An annotation that indicates this member should be exposed for JSON * serialization or deserialization. * - *

    This annotation has no effect unless you build {@link com.massivecraft.core.lib.gson2.Gson} - * with a {@link com.massivecraft.core.lib.gson2.GsonBuilder} and invoke - * {@link com.massivecraft.core.lib.gson2.GsonBuilder#excludeFieldsWithoutExposeAnnotation()} + *

    This annotation has no effect unless you build {@link com.massivecraft.mcore1.lib.gson.Gson} + * with a {@link com.massivecraft.mcore1.lib.gson.GsonBuilder} and invoke + * {@link com.massivecraft.mcore1.lib.gson.GsonBuilder#excludeFieldsWithoutExposeAnnotation()} * method.

    * *

    Here is an example of how this annotation is meant to be used: diff --git a/src/com/massivecraft/core/lib/gson2/annotations/SerializedName.java b/src/com/massivecraft/mcore1/lib/gson/annotations/SerializedName.java similarity index 87% rename from src/com/massivecraft/core/lib/gson2/annotations/SerializedName.java rename to src/com/massivecraft/mcore1/lib/gson/annotations/SerializedName.java index a3bb0044..15fb7aa3 100644 --- a/src/com/massivecraft/core/lib/gson2/annotations/SerializedName.java +++ b/src/com/massivecraft/mcore1/lib/gson/annotations/SerializedName.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.annotations; +package com.massivecraft.mcore1.lib.gson.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -25,10 +25,10 @@ import java.lang.annotation.Target; * An annotation that indicates this member should be serialized to JSON with * the provided name value as its field name. * - *

    This annotation will override any {@link com.massivecraft.core.lib.gson2.FieldNamingPolicy}, including - * the default field naming policy, that may have been set on the {@link com.massivecraft.core.lib.gson2.Gson} + *

    This annotation will override any {@link com.massivecraft.mcore1.lib.gson.FieldNamingPolicy}, including + * the default field naming policy, that may have been set on the {@link com.massivecraft.mcore1.lib.gson.Gson} * instance. A different naming policy can set using the {@code GsonBuilder} class. See - * {@link com.massivecraft.core.lib.gson2.GsonBuilder#setFieldNamingPolicy(com.massivecraft.core.lib.gson2.FieldNamingPolicy)} + * {@link com.massivecraft.mcore1.lib.gson.GsonBuilder#setFieldNamingPolicy(com.massivecraft.mcore1.lib.gson.FieldNamingPolicy)} * for more information.

    * *

    Here is an example of how this annotation is meant to be used:

    @@ -58,7 +58,7 @@ import java.lang.annotation.Target; * *

    NOTE: The value you specify in this annotation must be a valid JSON field name.

    * - * @see com.massivecraft.core.lib.gson2.FieldNamingPolicy + * @see com.massivecraft.mcore1.lib.gson.FieldNamingPolicy * * @author Inderjeet Singh * @author Joel Leitch diff --git a/src/com/massivecraft/core/lib/gson2/annotations/Since.java b/src/com/massivecraft/mcore1/lib/gson/annotations/Since.java similarity index 89% rename from src/com/massivecraft/core/lib/gson2/annotations/Since.java rename to src/com/massivecraft/mcore1/lib/gson/annotations/Since.java index 01453203..39c48f8e 100644 --- a/src/com/massivecraft/core/lib/gson2/annotations/Since.java +++ b/src/com/massivecraft/mcore1/lib/gson/annotations/Since.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.annotations; +package com.massivecraft.mcore1.lib.gson.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -26,9 +26,9 @@ import java.lang.annotation.Target; * This annotation is useful to manage versioning of your Json classes for a web-service. * *

    - * This annotation has no effect unless you build {@link com.massivecraft.core.lib.gson2.Gson} with a - * {@link com.massivecraft.core.lib.gson2.GsonBuilder} and invoke - * {@link com.massivecraft.core.lib.gson2.GsonBuilder#setVersion(double)} method. + * This annotation has no effect unless you build {@link com.massivecraft.mcore1.lib.gson.Gson} with a + * {@link com.massivecraft.mcore1.lib.gson.GsonBuilder} and invoke + * {@link com.massivecraft.mcore1.lib.gson.GsonBuilder#setVersion(double)} method. * *

    Here is an example of how this annotation is meant to be used:

    *
    diff --git a/src/com/massivecraft/core/lib/gson2/annotations/Until.java b/src/com/massivecraft/mcore1/lib/gson/annotations/Until.java
    similarity index 90%
    rename from src/com/massivecraft/core/lib/gson2/annotations/Until.java
    rename to src/com/massivecraft/mcore1/lib/gson/annotations/Until.java
    index 1cbcaea6..093a4d1e 100644
    --- a/src/com/massivecraft/core/lib/gson2/annotations/Until.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/annotations/Until.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.annotations;
    +package com.massivecraft.mcore1.lib.gson.annotations;
     
     import java.lang.annotation.ElementType;
     import java.lang.annotation.Retention;
    @@ -28,9 +28,9 @@ import java.lang.annotation.Target;
      * is useful to manage versioning of your JSON classes for a web-service.
      *
      * 

    - * This annotation has no effect unless you build {@link com.massivecraft.core.lib.gson2.Gson} with a - * {@link com.massivecraft.core.lib.gson2.GsonBuilder} and invoke - * {@link com.massivecraft.core.lib.gson2.GsonBuilder#setVersion(double)} method. + * This annotation has no effect unless you build {@link com.massivecraft.mcore1.lib.gson.Gson} with a + * {@link com.massivecraft.mcore1.lib.gson.GsonBuilder} and invoke + * {@link com.massivecraft.mcore1.lib.gson.GsonBuilder#setVersion(double)} method. * *

    Here is an example of how this annotation is meant to be used:

    *
    diff --git a/src/com/massivecraft/core/lib/gson2/annotations/package-info.java b/src/com/massivecraft/mcore1/lib/gson/annotations/package-info.java
    similarity index 54%
    rename from src/com/massivecraft/core/lib/gson2/annotations/package-info.java
    rename to src/com/massivecraft/mcore1/lib/gson/annotations/package-info.java
    index 015cf9a2..7cf7ec46 100644
    --- a/src/com/massivecraft/core/lib/gson2/annotations/package-info.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/annotations/package-info.java
    @@ -1,6 +1,6 @@
     /**
    - * This package provides annotations that can be used with {@link com.massivecraft.core.lib.gson2.Gson}.
    + * This package provides annotations that can be used with {@link com.massivecraft.mcore1.lib.gson.Gson}.
      * 
      * @author Inderjeet Singh, Joel Leitch
      */
    -package com.massivecraft.core.lib.gson2.annotations;
    \ No newline at end of file
    +package com.massivecraft.mcore1.lib.gson.annotations;
    \ No newline at end of file
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/$Gson$Preconditions.java b/src/com/massivecraft/mcore1/lib/gson/internal/$Gson$Preconditions.java
    similarity index 92%
    rename from src/com/massivecraft/core/lib/gson2/internal/$Gson$Preconditions.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/$Gson$Preconditions.java
    index bc08dbcf..038573e3 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/$Gson$Preconditions.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/$Gson$Preconditions.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     /**
      * A simple utility class used to check method Preconditions.
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/$Gson$Types.java b/src/com/massivecraft/mcore1/lib/gson/internal/$Gson$Types.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/internal/$Gson$Types.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/$Gson$Types.java
    index e3970a77..a01e7c87 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/$Gson$Types.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/$Gson$Types.java
    @@ -14,10 +14,10 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
    -import static com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions.checkArgument;
    -import static com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions.checkNotNull;
    +import static com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions.checkArgument;
    +import static com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions.checkNotNull;
     
     import java.io.Serializable;
     import java.lang.reflect.Array;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/ConstructorConstructor.java b/src/com/massivecraft/mcore1/lib/gson/internal/ConstructorConstructor.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/internal/ConstructorConstructor.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/ConstructorConstructor.java
    index ca3b7c22..bae551b3 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/ConstructorConstructor.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/ConstructorConstructor.java
    @@ -14,10 +14,10 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
    -import com.massivecraft.core.lib.gson2.InstanceCreator;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.InstanceCreator;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/LazilyParsedNumber.java b/src/com/massivecraft/mcore1/lib/gson/internal/LazilyParsedNumber.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/internal/LazilyParsedNumber.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/LazilyParsedNumber.java
    index 0674ab16..11ba1559 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/LazilyParsedNumber.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/LazilyParsedNumber.java
    @@ -13,7 +13,7 @@
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     import java.math.BigInteger;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/ObjectConstructor.java b/src/com/massivecraft/mcore1/lib/gson/internal/ObjectConstructor.java
    similarity index 95%
    rename from src/com/massivecraft/core/lib/gson2/internal/ObjectConstructor.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/ObjectConstructor.java
    index c506b1a6..b3aa841e 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/ObjectConstructor.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/ObjectConstructor.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     /**
      * Defines a generic object construction factory.  The purpose of this class
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/Pair.java b/src/com/massivecraft/mcore1/lib/gson/internal/Pair.java
    similarity index 96%
    rename from src/com/massivecraft/core/lib/gson2/internal/Pair.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/Pair.java
    index 3a7c1ec6..9d302690 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/Pair.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/Pair.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     /**
      * A simple object that holds onto a pair of object references, first and second.
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/ParameterizedTypeHandlerMap.java b/src/com/massivecraft/mcore1/lib/gson/internal/ParameterizedTypeHandlerMap.java
    similarity index 99%
    rename from src/com/massivecraft/core/lib/gson2/internal/ParameterizedTypeHandlerMap.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/ParameterizedTypeHandlerMap.java
    index 5945f97f..1ac2ce44 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/ParameterizedTypeHandlerMap.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/ParameterizedTypeHandlerMap.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     import java.lang.reflect.Type;
     import java.util.ArrayList;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/Primitives.java b/src/com/massivecraft/mcore1/lib/gson/internal/Primitives.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/internal/Primitives.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/Primitives.java
    index 4bab26fe..c9bda5a2 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/Primitives.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/Primitives.java
    @@ -14,10 +14,10 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions;
     
     import java.lang.reflect.Type;
     import java.util.Collections;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/Streams.java b/src/com/massivecraft/mcore1/lib/gson/internal/Streams.java
    similarity index 84%
    rename from src/com/massivecraft/core/lib/gson2/internal/Streams.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/Streams.java
    index 04b659f6..ef3b85e8 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/Streams.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/Streams.java
    @@ -14,17 +14,17 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
    -import com.massivecraft.core.lib.gson2.JsonElement;
    -import com.massivecraft.core.lib.gson2.JsonIOException;
    -import com.massivecraft.core.lib.gson2.JsonNull;
    -import com.massivecraft.core.lib.gson2.JsonParseException;
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.internal.bind.TypeAdapters;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    -import com.massivecraft.core.lib.gson2.stream.MalformedJsonException;
    +import com.massivecraft.mcore1.lib.gson.JsonElement;
    +import com.massivecraft.mcore1.lib.gson.JsonIOException;
    +import com.massivecraft.mcore1.lib.gson.JsonNull;
    +import com.massivecraft.mcore1.lib.gson.JsonParseException;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.internal.bind.TypeAdapters;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.stream.MalformedJsonException;
     
     import java.io.EOFException;
     import java.io.IOException;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/UnsafeAllocator.java b/src/com/massivecraft/mcore1/lib/gson/internal/UnsafeAllocator.java
    similarity index 98%
    rename from src/com/massivecraft/core/lib/gson2/internal/UnsafeAllocator.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/UnsafeAllocator.java
    index d448219f..04aa1ec0 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/UnsafeAllocator.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/UnsafeAllocator.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal;
    +package com.massivecraft.mcore1.lib.gson.internal;
     
     import java.io.ObjectInputStream;
     import java.io.ObjectStreamClass;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ArrayTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ArrayTypeAdapter.java
    similarity index 89%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/ArrayTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/ArrayTypeAdapter.java
    index d86bf813..be5fc6af 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/ArrayTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ArrayTypeAdapter.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
     import java.io.IOException;
     import java.lang.reflect.Array;
    @@ -23,11 +23,11 @@ import java.lang.reflect.Type;
     import java.util.ArrayList;
     import java.util.List;
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Types;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Types;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     /**
      * Adapt an array of objects.
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/BigDecimalTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/BigDecimalTypeAdapter.java
    similarity index 81%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/BigDecimalTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/BigDecimalTypeAdapter.java
    index 61ac6f60..cb70b3fe 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/BigDecimalTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/BigDecimalTypeAdapter.java
    @@ -14,12 +14,12 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.math.BigDecimal;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/BigIntegerTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/BigIntegerTypeAdapter.java
    similarity index 81%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/BigIntegerTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/BigIntegerTypeAdapter.java
    index 386322e8..4bbb5158 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/BigIntegerTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/BigIntegerTypeAdapter.java
    @@ -14,12 +14,12 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.math.BigInteger;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/CollectionTypeAdapterFactory.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/CollectionTypeAdapterFactory.java
    similarity index 86%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/CollectionTypeAdapterFactory.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/CollectionTypeAdapterFactory.java
    index f3b147a3..b8d84888 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/CollectionTypeAdapterFactory.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/CollectionTypeAdapterFactory.java
    @@ -14,15 +14,15 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Types;
    -import com.massivecraft.core.lib.gson2.internal.ConstructorConstructor;
    -import com.massivecraft.core.lib.gson2.internal.ObjectConstructor;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Types;
    +import com.massivecraft.mcore1.lib.gson.internal.ConstructorConstructor;
    +import com.massivecraft.mcore1.lib.gson.internal.ObjectConstructor;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.lang.reflect.Type;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/DateTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/DateTypeAdapter.java
    similarity index 89%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/DateTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/DateTypeAdapter.java
    index db18b715..12c99e88 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/DateTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/DateTypeAdapter.java
    @@ -14,13 +14,13 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.text.DateFormat;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ExcludedTypeAdapterFactory.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ExcludedTypeAdapterFactory.java
    similarity index 89%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/ExcludedTypeAdapterFactory.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/ExcludedTypeAdapterFactory.java
    index 9122bd12..d80d587f 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/ExcludedTypeAdapterFactory.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ExcludedTypeAdapterFactory.java
    @@ -14,12 +14,12 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.ExclusionStrategy;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.ExclusionStrategy;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementReader.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/JsonElementReader.java
    similarity index 93%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementReader.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/JsonElementReader.java
    index f3f4f6b9..ec96c6ee 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementReader.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/JsonElementReader.java
    @@ -14,15 +14,15 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonArray;
    -import com.massivecraft.core.lib.gson2.JsonElement;
    -import com.massivecraft.core.lib.gson2.JsonNull;
    -import com.massivecraft.core.lib.gson2.JsonObject;
    -import com.massivecraft.core.lib.gson2.JsonPrimitive;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.JsonArray;
    +import com.massivecraft.mcore1.lib.gson.JsonElement;
    +import com.massivecraft.mcore1.lib.gson.JsonNull;
    +import com.massivecraft.mcore1.lib.gson.JsonObject;
    +import com.massivecraft.mcore1.lib.gson.JsonPrimitive;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
     
     import java.io.IOException;
     import java.io.Reader;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementWriter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/JsonElementWriter.java
    similarity index 93%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementWriter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/JsonElementWriter.java
    index f0a91fa3..a702cdcd 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementWriter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/JsonElementWriter.java
    @@ -14,14 +14,14 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonArray;
    -import com.massivecraft.core.lib.gson2.JsonElement;
    -import com.massivecraft.core.lib.gson2.JsonNull;
    -import com.massivecraft.core.lib.gson2.JsonObject;
    -import com.massivecraft.core.lib.gson2.JsonPrimitive;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonArray;
    +import com.massivecraft.mcore1.lib.gson.JsonElement;
    +import com.massivecraft.mcore1.lib.gson.JsonNull;
    +import com.massivecraft.mcore1.lib.gson.JsonObject;
    +import com.massivecraft.mcore1.lib.gson.JsonPrimitive;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.io.Writer;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/MapTypeAdapterFactory.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/MapTypeAdapterFactory.java
    similarity index 92%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/MapTypeAdapterFactory.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/MapTypeAdapterFactory.java
    index 1ee2ad26..e42b5800 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/MapTypeAdapterFactory.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/MapTypeAdapterFactory.java
    @@ -14,19 +14,19 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonElement;
    -import com.massivecraft.core.lib.gson2.JsonPrimitive;
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Types;
    -import com.massivecraft.core.lib.gson2.internal.ConstructorConstructor;
    -import com.massivecraft.core.lib.gson2.internal.ObjectConstructor;
    -import com.massivecraft.core.lib.gson2.internal.Streams;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonElement;
    +import com.massivecraft.mcore1.lib.gson.JsonPrimitive;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Types;
    +import com.massivecraft.mcore1.lib.gson.internal.ConstructorConstructor;
    +import com.massivecraft.mcore1.lib.gson.internal.ObjectConstructor;
    +import com.massivecraft.mcore1.lib.gson.internal.Streams;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.lang.reflect.Type;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/MiniGson.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/MiniGson.java
    similarity index 95%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/MiniGson.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/MiniGson.java
    index 35443348..b27965f4 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/MiniGson.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/MiniGson.java
    @@ -14,12 +14,12 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.internal.ConstructorConstructor;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.internal.ConstructorConstructor;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.util.ArrayList;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ObjectTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ObjectTypeAdapter.java
    similarity index 90%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/ObjectTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/ObjectTypeAdapter.java
    index 132cf83d..add42211 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/ObjectTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ObjectTypeAdapter.java
    @@ -14,12 +14,12 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.util.ArrayList;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/Reflection.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/Reflection.java
    similarity index 92%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/Reflection.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/Reflection.java
    index 4f34a48b..9f752267 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/Reflection.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/Reflection.java
    @@ -13,7 +13,7 @@
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
     import java.lang.reflect.Type;
     import java.lang.reflect.TypeVariable;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ReflectiveTypeAdapterFactory.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ReflectiveTypeAdapterFactory.java
    similarity index 91%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/ReflectiveTypeAdapterFactory.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/ReflectiveTypeAdapterFactory.java
    index 98f66e32..ab2756ac 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/ReflectiveTypeAdapterFactory.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/ReflectiveTypeAdapterFactory.java
    @@ -14,17 +14,17 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Types;
    -import com.massivecraft.core.lib.gson2.internal.ConstructorConstructor;
    -import com.massivecraft.core.lib.gson2.internal.ObjectConstructor;
    -import com.massivecraft.core.lib.gson2.internal.Primitives;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Types;
    +import com.massivecraft.mcore1.lib.gson.internal.ConstructorConstructor;
    +import com.massivecraft.mcore1.lib.gson.internal.ObjectConstructor;
    +import com.massivecraft.mcore1.lib.gson.internal.Primitives;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.lang.reflect.AccessibleObject;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/SqlDateTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/SqlDateTypeAdapter.java
    similarity index 85%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/SqlDateTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/SqlDateTypeAdapter.java
    index cec7addd..66e993e3 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/SqlDateTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/SqlDateTypeAdapter.java
    @@ -14,13 +14,13 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.text.DateFormat;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/StringToValueMapTypeAdapterFactory.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/StringToValueMapTypeAdapterFactory.java
    similarity index 86%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/StringToValueMapTypeAdapterFactory.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/StringToValueMapTypeAdapterFactory.java
    index 9157f99d..1f92396c 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/StringToValueMapTypeAdapterFactory.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/StringToValueMapTypeAdapterFactory.java
    @@ -14,15 +14,15 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.internal.$Gson$Types;
    -import com.massivecraft.core.lib.gson2.internal.ConstructorConstructor;
    -import com.massivecraft.core.lib.gson2.internal.ObjectConstructor;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Types;
    +import com.massivecraft.mcore1.lib.gson.internal.ConstructorConstructor;
    +import com.massivecraft.mcore1.lib.gson.internal.ObjectConstructor;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.lang.reflect.ParameterizedType;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TimeTypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TimeTypeAdapter.java
    similarity index 85%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/TimeTypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/TimeTypeAdapter.java
    index 3f5172a3..81700406 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/TimeTypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TimeTypeAdapter.java
    @@ -14,13 +14,13 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.sql.Time;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapter.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapter.java
    similarity index 86%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapter.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapter.java
    index b7611854..dd1daeb9 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapter.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapter.java
    @@ -14,13 +14,13 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonElement;
    -import com.massivecraft.core.lib.gson2.JsonIOException;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonElement;
    +import com.massivecraft.mcore1.lib.gson.JsonIOException;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.io.Reader;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapterRuntimeTypeWrapper.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapterRuntimeTypeWrapper.java
    similarity index 89%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapterRuntimeTypeWrapper.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapterRuntimeTypeWrapper.java
    index 3e148463..4d81a6eb 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapterRuntimeTypeWrapper.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapterRuntimeTypeWrapper.java
    @@ -13,11 +13,11 @@
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.lang.reflect.Type;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapters.java b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapters.java
    similarity index 97%
    rename from src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapters.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapters.java
    index 9376ec8f..2648e0cd 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapters.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/bind/TypeAdapters.java
    @@ -14,20 +14,20 @@
      * limitations under the License.
      */
     
    -package com.massivecraft.core.lib.gson2.internal.bind;
    +package com.massivecraft.mcore1.lib.gson.internal.bind;
     
    -import com.massivecraft.core.lib.gson2.JsonArray;
    -import com.massivecraft.core.lib.gson2.JsonElement;
    -import com.massivecraft.core.lib.gson2.JsonIOException;
    -import com.massivecraft.core.lib.gson2.JsonNull;
    -import com.massivecraft.core.lib.gson2.JsonObject;
    -import com.massivecraft.core.lib.gson2.JsonPrimitive;
    -import com.massivecraft.core.lib.gson2.JsonSyntaxException;
    -import com.massivecraft.core.lib.gson2.internal.LazilyParsedNumber;
    -import com.massivecraft.core.lib.gson2.reflect.TypeToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonReader;
    -import com.massivecraft.core.lib.gson2.stream.JsonToken;
    -import com.massivecraft.core.lib.gson2.stream.JsonWriter;
    +import com.massivecraft.mcore1.lib.gson.JsonArray;
    +import com.massivecraft.mcore1.lib.gson.JsonElement;
    +import com.massivecraft.mcore1.lib.gson.JsonIOException;
    +import com.massivecraft.mcore1.lib.gson.JsonNull;
    +import com.massivecraft.mcore1.lib.gson.JsonObject;
    +import com.massivecraft.mcore1.lib.gson.JsonPrimitive;
    +import com.massivecraft.mcore1.lib.gson.JsonSyntaxException;
    +import com.massivecraft.mcore1.lib.gson.internal.LazilyParsedNumber;
    +import com.massivecraft.mcore1.lib.gson.reflect.TypeToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonReader;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonToken;
    +import com.massivecraft.mcore1.lib.gson.stream.JsonWriter;
     
     import java.io.IOException;
     import java.net.InetAddress;
    diff --git a/src/com/massivecraft/core/lib/gson2/internal/package-info.java b/src/com/massivecraft/mcore1/lib/gson/internal/package-info.java
    similarity index 83%
    rename from src/com/massivecraft/core/lib/gson2/internal/package-info.java
    rename to src/com/massivecraft/mcore1/lib/gson/internal/package-info.java
    index e0d7ccdb..64b850c1 100644
    --- a/src/com/massivecraft/core/lib/gson2/internal/package-info.java
    +++ b/src/com/massivecraft/mcore1/lib/gson/internal/package-info.java
    @@ -4,4 +4,4 @@
      *
      * @author Inderjeet Singh, Joel Leitch, Jesse Wilson
      */
    -package com.massivecraft.core.lib.gson2.internal;
    \ No newline at end of file
    +package com.massivecraft.mcore1.lib.gson.internal;
    \ No newline at end of file
    diff --git a/src/com/massivecraft/mcore1/lib/gson/package-info.java b/src/com/massivecraft/mcore1/lib/gson/package-info.java
    new file mode 100644
    index 00000000..c5dae24d
    --- /dev/null
    +++ b/src/com/massivecraft/mcore1/lib/gson/package-info.java
    @@ -0,0 +1,11 @@
    +/**
    + * This package provides the {@link com.massivecraft.mcore1.lib.gson.Gson} class to convert Json to Java and
    + * vice-versa.
    + *
    + * 

    The primary class to use is {@link com.massivecraft.mcore1.lib.gson.Gson} which can be constructed with + * {@code new Gson()} (using default settings) or by using {@link com.massivecraft.mcore1.lib.gson.GsonBuilder} + * (to configure various options such as using versioning and so on).

    + * + * @author Inderjeet Singh, Joel Leitch + */ +package com.massivecraft.mcore1.lib.gson; \ No newline at end of file diff --git a/src/com/massivecraft/core/lib/gson2/reflect/TypeToken.java b/src/com/massivecraft/mcore1/lib/gson/reflect/TypeToken.java similarity index 98% rename from src/com/massivecraft/core/lib/gson2/reflect/TypeToken.java rename to src/com/massivecraft/mcore1/lib/gson/reflect/TypeToken.java index 0b0f3345..c5207b6d 100644 --- a/src/com/massivecraft/core/lib/gson2/reflect/TypeToken.java +++ b/src/com/massivecraft/mcore1/lib/gson/reflect/TypeToken.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.reflect; +package com.massivecraft.mcore1.lib.gson.reflect; -import com.massivecraft.core.lib.gson2.internal.$Gson$Preconditions; -import com.massivecraft.core.lib.gson2.internal.$Gson$Types; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Preconditions; +import com.massivecraft.mcore1.lib.gson.internal.$Gson$Types; import java.lang.reflect.GenericArrayType; import java.lang.reflect.ParameterizedType; diff --git a/src/com/massivecraft/core/lib/gson2/reflect/package-info.java b/src/com/massivecraft/mcore1/lib/gson/reflect/package-info.java similarity index 74% rename from src/com/massivecraft/core/lib/gson2/reflect/package-info.java rename to src/com/massivecraft/mcore1/lib/gson/reflect/package-info.java index e782efeb..a6898b11 100644 --- a/src/com/massivecraft/core/lib/gson2/reflect/package-info.java +++ b/src/com/massivecraft/mcore1/lib/gson/reflect/package-info.java @@ -3,4 +3,4 @@ * * @author Inderjeet Singh, Joel Leitch */ -package com.massivecraft.core.lib.gson2.reflect; \ No newline at end of file +package com.massivecraft.mcore1.lib.gson.reflect; \ No newline at end of file diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonReader.java b/src/com/massivecraft/mcore1/lib/gson/stream/JsonReader.java similarity index 99% rename from src/com/massivecraft/core/lib/gson2/stream/JsonReader.java rename to src/com/massivecraft/mcore1/lib/gson/stream/JsonReader.java index a230a6b7..af48f3b1 100644 --- a/src/com/massivecraft/core/lib/gson2/stream/JsonReader.java +++ b/src/com/massivecraft/mcore1/lib/gson/stream/JsonReader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.stream; +package com.massivecraft.mcore1.lib.gson.stream; import java.io.Closeable; import java.io.EOFException; diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonScope.java b/src/com/massivecraft/mcore1/lib/gson/stream/JsonScope.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/stream/JsonScope.java rename to src/com/massivecraft/mcore1/lib/gson/stream/JsonScope.java index 6155adf6..9ba0552c 100644 --- a/src/com/massivecraft/core/lib/gson2/stream/JsonScope.java +++ b/src/com/massivecraft/mcore1/lib/gson/stream/JsonScope.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.stream; +package com.massivecraft.mcore1.lib.gson.stream; /** * Lexical scoping elements within a JSON reader or writer. diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonToken.java b/src/com/massivecraft/mcore1/lib/gson/stream/JsonToken.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/stream/JsonToken.java rename to src/com/massivecraft/mcore1/lib/gson/stream/JsonToken.java index ea3b52d5..78b95f2d 100644 --- a/src/com/massivecraft/core/lib/gson2/stream/JsonToken.java +++ b/src/com/massivecraft/mcore1/lib/gson/stream/JsonToken.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.stream; +package com.massivecraft.mcore1.lib.gson.stream; /** * A structure, name or value type in a JSON-encoded string. diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonWriter.java b/src/com/massivecraft/mcore1/lib/gson/stream/JsonWriter.java similarity index 99% rename from src/com/massivecraft/core/lib/gson2/stream/JsonWriter.java rename to src/com/massivecraft/mcore1/lib/gson/stream/JsonWriter.java index a3a8e5a0..496c01af 100644 --- a/src/com/massivecraft/core/lib/gson2/stream/JsonWriter.java +++ b/src/com/massivecraft/mcore1/lib/gson/stream/JsonWriter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.stream; +package com.massivecraft.mcore1.lib.gson.stream; import java.io.Closeable; import java.io.IOException; diff --git a/src/com/massivecraft/core/lib/gson2/stream/MalformedJsonException.java b/src/com/massivecraft/mcore1/lib/gson/stream/MalformedJsonException.java similarity index 96% rename from src/com/massivecraft/core/lib/gson2/stream/MalformedJsonException.java rename to src/com/massivecraft/mcore1/lib/gson/stream/MalformedJsonException.java index dedfc442..02b43800 100644 --- a/src/com/massivecraft/core/lib/gson2/stream/MalformedJsonException.java +++ b/src/com/massivecraft/mcore1/lib/gson/stream/MalformedJsonException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.stream; +package com.massivecraft.mcore1.lib.gson.stream; import java.io.IOException; diff --git a/src/com/massivecraft/core/lib/gson2/stream/StringPool.java b/src/com/massivecraft/mcore1/lib/gson/stream/StringPool.java similarity index 97% rename from src/com/massivecraft/core/lib/gson2/stream/StringPool.java rename to src/com/massivecraft/mcore1/lib/gson/stream/StringPool.java index 01451e03..472465f5 100644 --- a/src/com/massivecraft/core/lib/gson2/stream/StringPool.java +++ b/src/com/massivecraft/mcore1/lib/gson/stream/StringPool.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.massivecraft.core.lib.gson2.stream; +package com.massivecraft.mcore1.lib.gson.stream; /** * A pool of string instances. Unlike the {@link String#intern() VM's diff --git a/src/com/massivecraft/core/util/PermUtil.java b/src/com/massivecraft/mcore1/perm/Perm.java similarity index 72% rename from src/com/massivecraft/core/util/PermUtil.java rename to src/com/massivecraft/mcore1/perm/Perm.java index 44a1c5fd..b2edf53d 100644 --- a/src/com/massivecraft/core/util/PermUtil.java +++ b/src/com/massivecraft/mcore1/perm/Perm.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.util; +package com.massivecraft.mcore1.perm; import java.util.Map; import java.util.Map.Entry; @@ -7,18 +7,25 @@ import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.permissions.Permission; -import com.massivecraft.core.Lang; +import com.massivecraft.mcore1.Lang; +import com.massivecraft.mcore1.text.Txt; -public class PermUtil +public class Perm { - public static String getPermissionDescription (String perm) + private Txt txt; + public Perm(Txt txt) + { + this.txt = txt; + } + + public String getPermissionDescription (String perm) { if (perm == null) return Lang.permDoThat; Permission permission = Bukkit.getPluginManager().getPermission(perm); return getPermissionDescription(permission); } - public static String getPermissionDescription (Permission perm) + public String getPermissionDescription (Permission perm) { if (perm == null) return Lang.permDoThat; String desc = perm.getDescription(); @@ -28,9 +35,7 @@ public class PermUtil public String getForbiddenMessage(String perm) { - return null; - // TODO: Decouple the text util. - //return p.txt.parse(Lang.permForbidden, getPermissionDescription(perm)); + return txt.parse(Lang.permForbidden, getPermissionDescription(perm)); } public boolean has (CommandSender me, String perm) diff --git a/src/com/massivecraft/core/persist/Entity.java b/src/com/massivecraft/mcore1/persist/Entity.java similarity index 91% rename from src/com/massivecraft/core/persist/Entity.java rename to src/com/massivecraft/mcore1/persist/Entity.java index 56e71f2d..835bd08a 100644 --- a/src/com/massivecraft/core/persist/Entity.java +++ b/src/com/massivecraft/mcore1/persist/Entity.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist; +package com.massivecraft.mcore1.persist; /** * Usage of this class is highly optional. You may persist anything. If you are diff --git a/src/com/massivecraft/core/persist/IClassManager.java b/src/com/massivecraft/mcore1/persist/IClassManager.java similarity index 93% rename from src/com/massivecraft/core/persist/IClassManager.java rename to src/com/massivecraft/mcore1/persist/IClassManager.java index f5e706a8..571de30e 100644 --- a/src/com/massivecraft/core/persist/IClassManager.java +++ b/src/com/massivecraft/mcore1/persist/IClassManager.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist; +package com.massivecraft.mcore1.persist; import java.util.Collection; import java.util.Comparator; @@ -50,6 +50,7 @@ public interface IClassManager // This method is used as a wrapper for that. // TODO: Javadoc: Should start with a null check as well as a String check. public String idFix(Object oid); + public boolean idCanFix(Class clazz); // autoIncrement ids public String idCurrent(); diff --git a/src/com/massivecraft/core/persist/PersistRealm.java b/src/com/massivecraft/mcore1/persist/Persist.java similarity index 94% rename from src/com/massivecraft/core/persist/PersistRealm.java rename to src/com/massivecraft/mcore1/persist/Persist.java index 1db24989..f9767900 100644 --- a/src/com/massivecraft/core/persist/PersistRealm.java +++ b/src/com/massivecraft/mcore1/persist/Persist.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist; +package com.massivecraft.mcore1.persist; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -16,7 +16,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Timer; -public class PersistRealm +public class Persist { private Map, IClassManager> classManagers = new HashMap, IClassManager>(); public void setManager(Class clazz, IClassManager manager) diff --git a/src/com/massivecraft/core/persist/PlayerEntity.java b/src/com/massivecraft/mcore1/persist/PlayerEntity.java similarity index 84% rename from src/com/massivecraft/core/persist/PlayerEntity.java rename to src/com/massivecraft/mcore1/persist/PlayerEntity.java index 5c440ff1..43a04a68 100644 --- a/src/com/massivecraft/core/persist/PlayerEntity.java +++ b/src/com/massivecraft/mcore1/persist/PlayerEntity.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist; +package com.massivecraft.mcore1.persist; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/src/com/massivecraft/core/persist/Predictate.java b/src/com/massivecraft/mcore1/persist/Predictate.java similarity index 58% rename from src/com/massivecraft/core/persist/Predictate.java rename to src/com/massivecraft/mcore1/persist/Predictate.java index 4213005d..ddf4a67e 100644 --- a/src/com/massivecraft/core/persist/Predictate.java +++ b/src/com/massivecraft/mcore1/persist/Predictate.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist; +package com.massivecraft.mcore1.persist; public interface Predictate { diff --git a/src/com/massivecraft/core/persist/SaveTask.java b/src/com/massivecraft/mcore1/persist/SaveTask.java similarity index 67% rename from src/com/massivecraft/core/persist/SaveTask.java rename to src/com/massivecraft/mcore1/persist/SaveTask.java index e17ed719..96d9fb67 100644 --- a/src/com/massivecraft/core/persist/SaveTask.java +++ b/src/com/massivecraft/mcore1/persist/SaveTask.java @@ -1,21 +1,21 @@ -package com.massivecraft.core.persist; +package com.massivecraft.mcore1.persist; import java.util.TimerTask; public class SaveTask extends TimerTask { - private PersistRealm persist; + private Persist persist; private Class clazz; public Class getToBeSavedClass() { return clazz; } - public SaveTask(PersistRealm persist, Class clazz) + public SaveTask(Persist persist, Class clazz) { this.persist = persist; this.clazz = clazz; } - public SaveTask(PersistRealm persist) + public SaveTask(Persist persist) { this(persist, null); } diff --git a/src/com/massivecraft/core/persist/gson/GsonClassManager.java b/src/com/massivecraft/mcore1/persist/gson/GsonClassManager.java similarity index 88% rename from src/com/massivecraft/core/persist/gson/GsonClassManager.java rename to src/com/massivecraft/mcore1/persist/gson/GsonClassManager.java index cbb2a1f2..241ac220 100644 --- a/src/com/massivecraft/core/persist/gson/GsonClassManager.java +++ b/src/com/massivecraft/mcore1/persist/gson/GsonClassManager.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist.gson; +package com.massivecraft.mcore1.persist.gson; import java.io.File; import java.util.Collection; @@ -11,10 +11,10 @@ import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.CopyOnWriteArraySet; -import com.massivecraft.core.lib.gson2.Gson; -import com.massivecraft.core.persist.IClassManager; -import com.massivecraft.core.persist.PersistRealm; -import com.massivecraft.core.persist.Predictate; +import com.massivecraft.mcore1.lib.gson.Gson; +import com.massivecraft.mcore1.persist.IClassManager; +import com.massivecraft.mcore1.persist.Persist; +import com.massivecraft.mcore1.persist.Predictate; public abstract class GsonClassManager implements IClassManager { @@ -259,7 +259,7 @@ public abstract class GsonClassManager implements IClassManager { String json = this.getGson().toJson(entity); File file = this.fileFromId(id); - return PersistRealm.writeCatch(file, json); + return Persist.writeCatch(file, json); } this.removeFile(id); return true; @@ -305,7 +305,7 @@ public abstract class GsonClassManager implements IClassManager if (entity != null) return entity; if ( ! this.containsId(id)) return null; File file = this.fileFromId(id); - String json = PersistRealm.readCatch(file); + String json = Persist.readCatch(file); if (json == null) return null; entity = this.getGson().fromJson(json, this.getManagedClass()); this.attach(entity, id, true); @@ -338,6 +338,9 @@ public abstract class GsonClassManager implements IClassManager @Override public abstract String idFix(Object oid); + + @Override + public abstract boolean idCanFix(Class clazz); @Override public String idCurrent() @@ -415,25 +418,25 @@ public abstract class GsonClassManager implements IClassManager @Override public Collection getAll(Predictate where) { - return PersistRealm.uglySQL(this.entities, where, null, null, null); + return Persist.uglySQL(this.entities, where, null, null, null); } @Override public Collection getAll(Predictate where, Comparator orderby) { - return PersistRealm.uglySQL(this.entities, where, orderby, null, null); + return Persist.uglySQL(this.entities, where, orderby, null, null); } @Override public Collection getAll(Predictate where, Comparator orderby, Integer limit) { - return PersistRealm.uglySQL(this.entities, where, orderby, limit, null); + return Persist.uglySQL(this.entities, where, orderby, limit, null); } @Override public Collection getAll(Predictate where, Comparator orderby, Integer limit, Integer offset) { - return PersistRealm.uglySQL(this.entities, where, orderby, limit, offset); + return Persist.uglySQL(this.entities, where, orderby, limit, offset); } @Override @@ -452,7 +455,7 @@ public abstract class GsonClassManager implements IClassManager public T getBestMatch(Object oid) { String start = this.idFix(oid); - String id = PersistRealm.getBestCIStart(this.ids, start); + String id = Persist.getBestCIStart(this.ids, start); return this.get(id); } } diff --git a/src/com/massivecraft/core/persist/gson/GsonPlayerEntityManager.java b/src/com/massivecraft/mcore1/persist/gson/GsonPlayerEntityManager.java similarity index 70% rename from src/com/massivecraft/core/persist/gson/GsonPlayerEntityManager.java rename to src/com/massivecraft/mcore1/persist/gson/GsonPlayerEntityManager.java index 673896b6..36f4bbc1 100644 --- a/src/com/massivecraft/core/persist/gson/GsonPlayerEntityManager.java +++ b/src/com/massivecraft/mcore1/persist/gson/GsonPlayerEntityManager.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist.gson; +package com.massivecraft.mcore1.persist.gson; import java.io.File; import java.util.Collection; @@ -7,9 +7,9 @@ import java.util.Set; import org.bukkit.entity.Player; -import com.massivecraft.core.lib.gson2.Gson; -import com.massivecraft.core.persist.PlayerEntity; -import com.massivecraft.core.persist.Predictate; +import com.massivecraft.mcore1.lib.gson.Gson; +import com.massivecraft.mcore1.persist.PlayerEntity; +import com.massivecraft.mcore1.persist.Predictate; public abstract class GsonPlayerEntityManager extends GsonClassManager { @@ -23,6 +23,7 @@ public abstract class GsonPlayerEntityManager extends Gs super(gson, folder, creative, lazy, ids, entities, id2entity, entity2id); } + @Override public String idFix(Object oid) { if (oid == null) return null; @@ -31,6 +32,15 @@ public abstract class GsonPlayerEntityManager extends Gs return null; } + @Override + public boolean idCanFix(Class clazz) + { + if (clazz == null) return false; + if (String.class.equals(clazz)) return true; + if (Player.class.equals(clazz)) return true; + return false; + } + public Collection getAllOnline() { return this.getAll(new Predictate() diff --git a/src/com/massivecraft/core/persist/gson/JsonFileFilter.java b/src/com/massivecraft/mcore1/persist/gson/JsonFileFilter.java similarity index 87% rename from src/com/massivecraft/core/persist/gson/JsonFileFilter.java rename to src/com/massivecraft/mcore1/persist/gson/JsonFileFilter.java index 275e4e0c..8d245016 100644 --- a/src/com/massivecraft/core/persist/gson/JsonFileFilter.java +++ b/src/com/massivecraft/mcore1/persist/gson/JsonFileFilter.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist.gson; +package com.massivecraft.mcore1.persist.gson; import java.io.File; import java.io.FileFilter; diff --git a/src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java b/src/com/massivecraft/mcore1/persist/gson/adapter/InventoryTypeAdapter.java similarity index 88% rename from src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java rename to src/com/massivecraft/mcore1/persist/gson/adapter/InventoryTypeAdapter.java index 1fe84d8d..87e12359 100644 --- a/src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java +++ b/src/com/massivecraft/mcore1/persist/gson/adapter/InventoryTypeAdapter.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.persist.gson.adapter; +package com.massivecraft.mcore1.persist.gson.adapter; import java.lang.reflect.Type; import java.util.ArrayList; @@ -11,14 +11,14 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.getspout.spoutapi.SpoutManager; -import com.massivecraft.core.lib.gson2.JsonDeserializationContext; -import com.massivecraft.core.lib.gson2.JsonDeserializer; -import com.massivecraft.core.lib.gson2.JsonElement; -import com.massivecraft.core.lib.gson2.JsonObject; -import com.massivecraft.core.lib.gson2.JsonParseException; -import com.massivecraft.core.lib.gson2.JsonPrimitive; -import com.massivecraft.core.lib.gson2.JsonSerializationContext; -import com.massivecraft.core.lib.gson2.JsonSerializer; +import com.massivecraft.mcore1.lib.gson.JsonDeserializationContext; +import com.massivecraft.mcore1.lib.gson.JsonDeserializer; +import com.massivecraft.mcore1.lib.gson.JsonElement; +import com.massivecraft.mcore1.lib.gson.JsonObject; +import com.massivecraft.mcore1.lib.gson.JsonParseException; +import com.massivecraft.mcore1.lib.gson.JsonPrimitive; +import com.massivecraft.mcore1.lib.gson.JsonSerializationContext; +import com.massivecraft.mcore1.lib.gson.JsonSerializer; public class InventoryTypeAdapter implements JsonDeserializer, JsonSerializer { diff --git a/src/com/massivecraft/mcore1/plugin/MPlugin.java b/src/com/massivecraft/mcore1/plugin/MPlugin.java new file mode 100644 index 00000000..19eaf426 --- /dev/null +++ b/src/com/massivecraft/mcore1/plugin/MPlugin.java @@ -0,0 +1,112 @@ +package com.massivecraft.mcore1.plugin; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.Bukkit; +import org.bukkit.event.Event; +import org.bukkit.event.Listener; +import org.bukkit.plugin.java.JavaPlugin; + +import com.massivecraft.mcore1.MCore; +import com.massivecraft.mcore1.cmd.Cmd; +import com.massivecraft.mcore1.perm.Perm; +import com.massivecraft.mcore1.persist.Persist; +import com.massivecraft.mcore1.text.Txt; + + +public abstract class MPlugin extends JavaPlugin +{ + // Tools + public Cmd cmd; + public Persist persist; + public Txt txt; + public Perm perm; + + // -------------------------------------------- // + // ENABLE + // -------------------------------------------- // + + private long timeEnableStart; + public boolean preEnable() + { + timeEnableStart = System.currentTimeMillis(); + this.logPrefix = "["+this.getDescription().getFullName()+"] "; + log("=== ENABLE START ==="); + + // Ensure the base folder exists + this.getDataFolder().mkdirs(); + + // Create Tools + MCore.createCmd(this); + MCore.createPersist(this); + MCore.createTxt(this); + MCore.createPerm(this); + + // Assign tool pointers + this.cmd = MCore.getCmd(this); + this.persist = MCore.getPersist(this); + this.txt = MCore.getTxt(this); + this.perm = MCore.getPerm(this); + + return true; + } + + public void postEnable() + { + log("=== ENABLE DONE (Took "+(System.currentTimeMillis()-timeEnableStart)+"ms) ==="); + } + + // -------------------------------------------- // + // DISABLE + // -------------------------------------------- // + + public void onDisable() + { + MCore.getPersist(this).saveAll(); + MCore.removePersist(this); + MCore.removeCmd(this); + MCore.removePerm(this); + MCore.removeTxt(this); + + this.cmd = null; + this.persist = null; + this.txt = null; + this.perm = null; + + log("Disabled"); + } + + // -------------------------------------------- // + // CONVENIENCE + // -------------------------------------------- // + + public void suicide() + { + log("Now I suicide!"); + Bukkit.getPluginManager().disablePlugin(this); + } + + public void registerEvent(Event.Type type, Listener listener, Event.Priority priority) + { + Bukkit.getPluginManager().registerEvent(type, listener, priority, this); + } + + public void registerEvent(Event.Type type, Listener listener) + { + registerEvent(type, listener, Event.Priority.Normal); + } + + // -------------------------------------------- // + // LOGGING + // -------------------------------------------- // + private String logPrefix = null; + public void log(Object... msg) + { + log(Level.INFO, msg); + } + public void log(Level level, Object... msg) + { + Logger.getLogger("Minecraft").log(level, this.logPrefix+txt.implode(msg, " ")); + } +} diff --git a/src/com/massivecraft/core/text/TextUtil.java b/src/com/massivecraft/mcore1/text/Txt.java similarity index 91% rename from src/com/massivecraft/core/text/TextUtil.java rename to src/com/massivecraft/mcore1/text/Txt.java index 7ca8a04d..0c672ce4 100644 --- a/src/com/massivecraft/core/text/TextUtil.java +++ b/src/com/massivecraft/mcore1/text/Txt.java @@ -1,4 +1,4 @@ -package com.massivecraft.core.text; +package com.massivecraft.mcore1.text; import java.util.*; import java.util.Map.Entry; @@ -9,21 +9,21 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.craftbukkit.TextWrapper; -public class TextUtil +public class Txt { // Global Default Design TODO: Assign it somehow! - private static TextDesign defaultDesign = new TextDesign(); - public static TextDesign getDefaultDesign() { return defaultDesign; } - public static void setDefaultDesign(TextDesign val) { defaultDesign = val; } + private static TxtDesign defaultDesign = new TxtDesign(); + public static TxtDesign getDefaultDesign() { return defaultDesign; } + public static void setDefaultDesign(TxtDesign val) { defaultDesign = val; } // Local Desgin Choice - private TextDesign design = null; - public TextDesign getDesign() + private TxtDesign design = null; + public TxtDesign getDesign() { if (design != null) return design; return getDefaultDesign(); } - public void setDesign(TextDesign design) + public void setDesign(TxtDesign design) { this.design = design; } @@ -32,12 +32,12 @@ public class TextUtil // CONSTRUCTORS // -------------------------------------------- // - public TextUtil() + public Txt() { } - public TextUtil(TextDesign design) + public Txt(TxtDesign design) { this.design = design; } @@ -157,15 +157,20 @@ public class TextUtil } public String implode(List list, String glue) + { + return this.implode(list.toArray(new String[0]), glue); + } + + public String implode(Object[] list, String glue) { StringBuilder ret = new StringBuilder(); - for (int i=0; i