From 86db5a6bdd36afda35a0b2ef12b8d1c112af620f Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Mon, 11 Nov 2013 09:21:16 +0100 Subject: [PATCH] This is 6.9.0, now with fully dynamic command registration. --- plugin.yml | 2 +- src/com/massivecraft/mcore/AspectColl.java | 5 +- src/com/massivecraft/mcore/ConfServer.java | 10 +- src/com/massivecraft/mcore/Couple.java | 1 - src/com/massivecraft/mcore/Engine.java | 16 +++ .../massivecraft/mcore/EngineAbstract.java | 58 +++++++++ ...rnalListener.java => EngineMainMCore.java} | 22 ++-- .../massivecraft/mcore/EngineOfflineCase.java | 23 ++-- .../mcore/EngineWorldNameSet.java | 19 ++- src/com/massivecraft/mcore/HeatData.java | 4 +- src/com/massivecraft/mcore/MCore.java | 37 +++--- src/com/massivecraft/mcore/MCoreConf.java | 23 ++-- src/com/massivecraft/mcore/MPlugin.java | 3 + src/com/massivecraft/mcore/Predictate.java | 2 +- src/com/massivecraft/mcore/Progressbar.java | 1 + src/com/massivecraft/mcore/SimpleConfig.java | 1 - src/com/massivecraft/mcore/Triple.java | 1 - .../mcore/adapter/FireworkEffectAdapter.java | 1 + .../mcore/adapter/InventoryAdapter.java | 2 +- .../mcore/adapter/ObjectIdAdapter.java | 1 + .../mcore/adapter/PlayerInventoryAdapter.java | 2 +- .../mcore/adapter/PolymorphicAdapter.java | 1 + .../mcore/adapter/PotionEffectAdapter.java | 1 + .../mcore/adapter/UUIDAdapter.java | 1 + .../mcore/cmd/BukkitCommandDoor.java | 115 +++++++++++++++++ .../mcore/cmd/BukkitGlueCommand.java | 66 ---------- .../massivecraft/mcore/cmd/HelpCommand.java | 27 ++-- src/com/massivecraft/mcore/cmd/MCommand.java | 92 +++++--------- .../mcore/cmd/MCoreBukkitCommand.java | 116 ++++++++++++++++++ .../cmd/MCoreBukkitSimpleCommandMap.java | 110 +++++++++++++++++ .../mcore/cmd/VersionCommand.java | 6 +- .../mcore/cmd/arg/ARAbstractPrimitive.java | 1 + .../mcore/cmd/arg/ARAbstractSelect.java | 1 + .../mcore/cmd/req/ReqAbstract.java | 1 + .../massivecraft/mcore/cmd/req/ReqAnd.java | 1 + .../mcore/cmd/req/ReqHasPerm.java | 1 + .../mcore/cmd/req/ReqIsntCertainSender.java | 1 + .../event/MCoreAfterPlayerRespawnEvent.java | 1 + .../event/MCoreAfterPlayerTeleportEvent.java | 1 + .../massivecraft/mcore/event/MCoreEvent.java | 2 +- .../MCorePermissionDeniedFormatEvent.java | 3 +- .../mcore/integration/Integration.java | 1 + .../IntegrationFeaturesAbstract.java | 3 +- .../EntityPotionColorPacketAdapter.java | 1 + .../massivecraft/mcore/mcorecmd/CmdMCore.java | 38 +++--- .../mcore/mcorecmd/CmdMCoreHearsound.java | 19 ++- .../mcore/mcorecmd/CmdMCoreId.java | 23 +++- .../mcore/mcorecmd/CmdMCoreMStore.java | 40 +++--- .../mcore/mcorecmd/CmdMCoreMStoreCopydb.java | 19 ++- .../mcorecmd/CmdMCoreMStoreListcolls.java | 19 ++- .../mcore/mcorecmd/CmdMCoreMStoreStats.java | 20 ++- .../mcore/mcorecmd/CmdMCoreUsys.java | 42 ++++--- .../mcore/mcorecmd/CmdMCoreUsysAspect.java | 38 +++--- .../mcorecmd/CmdMCoreUsysAspectList.java | 20 ++- .../mcorecmd/CmdMCoreUsysAspectShow.java | 22 +++- .../mcore/mcorecmd/CmdMCoreUsysAspectUse.java | 22 +++- .../mcorecmd/CmdMCoreUsysMultiverse.java | 40 +++--- .../mcorecmd/CmdMCoreUsysMultiverseDel.java | 22 +++- .../mcorecmd/CmdMCoreUsysMultiverseList.java | 20 ++- .../mcorecmd/CmdMCoreUsysMultiverseNew.java | 22 +++- .../mcorecmd/CmdMCoreUsysMultiverseShow.java | 20 ++- .../mcore/mcorecmd/CmdMCoreUsysUniverse.java | 38 +++--- .../mcorecmd/CmdMCoreUsysUniverseClear.java | 22 +++- .../mcorecmd/CmdMCoreUsysUniverseDel.java | 22 +++- .../mcorecmd/CmdMCoreUsysUniverseNew.java | 22 +++- .../mcore/mcorecmd/CmdMCoreUsysWorld.java | 22 +++- .../mcore/mcorecmd/MCoreCommand.java | 13 -- ...ine.java => EngineTeleportMixinCause.java} | 20 +-- .../mcore/mixin/TeleportMixinAbstract.java | 2 +- .../mcore/mixin/TeleportMixinDefault.java | 4 +- .../mcore/mixin/TeleporterException.java | 2 +- src/com/massivecraft/mcore/store/MStore.java | 5 + .../mcore/store/accessor/Accessor.java | 1 + .../mcore/store/accessor/AccessorUtil.java | 1 - .../accessor/EntityAccessorAbstract.java | 1 + .../accessor/EntityAccessorPerProperty.java | 1 + .../accessor/PropertyAccessorComposite.java | 1 + ...gine.java => EngineScheduledTeleport.java} | 54 ++++---- .../mcore/teleport/ScheduledTeleport.java | 6 +- .../massivecraft/mcore/util/BiomeUtil.java | 1 + .../mcore/util/BukkitCommandUtil.java | 33 ----- .../mcore/util/ClassLoadHack.java | 3 +- src/com/massivecraft/mcore/util/DiscUtil.java | 2 +- .../massivecraft/mcore/util/IntervalUtil.java | 2 + .../mcore/util/InventoryUtil.java | 9 +- .../massivecraft/mcore/util/LibLoader.java | 3 +- .../massivecraft/mcore/util/LightUtil.java | 1 + src/com/massivecraft/mcore/util/MUtil.java | 5 +- src/com/massivecraft/mcore/util/PermUtil.java | 1 + .../massivecraft/mcore/util/TextWrapper.java | 1 + 90 files changed, 1030 insertions(+), 501 deletions(-) create mode 100644 src/com/massivecraft/mcore/Engine.java create mode 100644 src/com/massivecraft/mcore/EngineAbstract.java rename src/com/massivecraft/mcore/{InternalListener.java => EngineMainMCore.java} (94%) create mode 100644 src/com/massivecraft/mcore/cmd/BukkitCommandDoor.java delete mode 100644 src/com/massivecraft/mcore/cmd/BukkitGlueCommand.java create mode 100644 src/com/massivecraft/mcore/cmd/MCoreBukkitCommand.java create mode 100644 src/com/massivecraft/mcore/cmd/MCoreBukkitSimpleCommandMap.java delete mode 100644 src/com/massivecraft/mcore/mcorecmd/MCoreCommand.java rename src/com/massivecraft/mcore/mixin/{TeleportMixinCauseEngine.java => EngineTeleportMixinCause.java} (80%) rename src/com/massivecraft/mcore/teleport/{ScheduledTeleportEngine.java => EngineScheduledTeleport.java} (80%) delete mode 100644 src/com/massivecraft/mcore/util/BukkitCommandUtil.java diff --git a/plugin.yml b/plugin.yml index b0ed962f..ee50573d 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,6 +1,6 @@ main: com.massivecraft.mcore.MCore name: mcore -version: 6.8.1 +version: 6.9.0 website: http://massivecraft.com/mcore authors: [Cayorion] description: §eMCore stands for MassiveCraft Core and is a plugin that contains libraries and features that other plugins make use of. §aCayorion §efrom the minecraft server §aMassiveCraft §eis the lead programmer. Feel free to visit us at §bhttp://massivecraft.com diff --git a/src/com/massivecraft/mcore/AspectColl.java b/src/com/massivecraft/mcore/AspectColl.java index f6f00412..0db11352 100644 --- a/src/com/massivecraft/mcore/AspectColl.java +++ b/src/com/massivecraft/mcore/AspectColl.java @@ -44,5 +44,6 @@ public class AspectColl extends Coll ret.add(aspect); } return ret; - } -} \ No newline at end of file + } + +} diff --git a/src/com/massivecraft/mcore/ConfServer.java b/src/com/massivecraft/mcore/ConfServer.java index eec3b26c..ef677c02 100644 --- a/src/com/massivecraft/mcore/ConfServer.java +++ b/src/com/massivecraft/mcore/ConfServer.java @@ -1,12 +1,10 @@ package com.massivecraft.mcore; -import java.util.List; import java.util.Map; import java.util.UUID; import com.massivecraft.mcore.util.MUtil; - public class ConfServer extends SimpleConfig { // -------------------------------------------- // @@ -23,16 +21,12 @@ public class ConfServer extends SimpleConfig public static String serverid = UUID.randomUUID().toString(); + public static String dburi = "default"; + public static Map alias2uri = MUtil.map( "default", "flatfile", "flatfile", "flatfile://mstore", "mongodb", "mongodb://localhost:27017/mstore" ); - public static String dburi = "default"; - - public static List aliasesOuterMCore = MUtil.list("mcore"); - public static List aliasesOuterMCoreUsys = MUtil.list("usys"); - public static List aliasesOuterMCoreMStore = MUtil.list("mstore"); - } diff --git a/src/com/massivecraft/mcore/Couple.java b/src/com/massivecraft/mcore/Couple.java index a068c686..9d405d45 100644 --- a/src/com/massivecraft/mcore/Couple.java +++ b/src/com/massivecraft/mcore/Couple.java @@ -100,5 +100,4 @@ public class Couple implements Entry, Cloneable, Serializable return this; } - } diff --git a/src/com/massivecraft/mcore/Engine.java b/src/com/massivecraft/mcore/Engine.java new file mode 100644 index 00000000..02b7a6e6 --- /dev/null +++ b/src/com/massivecraft/mcore/Engine.java @@ -0,0 +1,16 @@ +package com.massivecraft.mcore; + +import org.bukkit.event.Listener; +import org.bukkit.plugin.Plugin; + +public interface Engine extends Listener, Runnable +{ + public Plugin getPlugin(); + + public void activate(); + public void deactivate(); + + public Long getDelay(); + public Long getPeriod(); + public Integer getTaskId(); +} diff --git a/src/com/massivecraft/mcore/EngineAbstract.java b/src/com/massivecraft/mcore/EngineAbstract.java new file mode 100644 index 00000000..d9a1c87a --- /dev/null +++ b/src/com/massivecraft/mcore/EngineAbstract.java @@ -0,0 +1,58 @@ +package com.massivecraft.mcore; + +import org.bukkit.Bukkit; +import org.bukkit.event.HandlerList; + +public abstract class EngineAbstract implements Engine +{ + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // + + private Integer taskId; + @Override public Integer getTaskId() { return this.taskId; } + + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + + @Override + public void activate() + { + Bukkit.getPluginManager().registerEvents(this, this.getPlugin()); + if (this.getPeriod() != null) + { + this.taskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(this.getPlugin(), this, this.getDelay(), this.getPeriod()); + } + } + + @Override + public void deactivate() + { + HandlerList.unregisterAll(this); + if (this.getTaskId() != null) + { + Bukkit.getScheduler().cancelTask(this.getTaskId()); + this.taskId = null; + } + } + + @Override + public Long getDelay() + { + return 0L; + } + + @Override + public Long getPeriod() + { + return null; + } + + @Override + public void run() + { + + } + +} diff --git a/src/com/massivecraft/mcore/InternalListener.java b/src/com/massivecraft/mcore/EngineMainMCore.java similarity index 94% rename from src/com/massivecraft/mcore/InternalListener.java rename to src/com/massivecraft/mcore/EngineMainMCore.java index 6740e357..c8b62fb3 100644 --- a/src/com/massivecraft/mcore/InternalListener.java +++ b/src/com/massivecraft/mcore/EngineMainMCore.java @@ -11,7 +11,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByBlockEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.player.AsyncPlayerChatEvent; @@ -22,6 +21,7 @@ import org.bukkit.event.player.PlayerChatTabCompleteEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.plugin.Plugin; import com.massivecraft.mcore.event.MCoreAfterPlayerRespawnEvent; import com.massivecraft.mcore.event.MCoreAfterPlayerTeleportEvent; @@ -36,23 +36,30 @@ import com.massivecraft.mcore.store.SenderColl; import com.massivecraft.mcore.util.SenderUtil; import com.massivecraft.mcore.util.SmokeUtil; -public class InternalListener implements Listener +public class EngineMainMCore extends EngineAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - private static InternalListener i = new InternalListener(); - public static InternalListener get() { return i; } + private static EngineMainMCore i = new EngineMainMCore(); + public static EngineMainMCore get() { return i; } // -------------------------------------------- // - // REGISTER + // OVERRIDE // -------------------------------------------- // - public void setup() + @Override + public Plugin getPlugin() { + return MCore.get(); + } + + @Override + public void activate() + { + super.activate(); MCorePlayerLeaveEvent.player2event.clear(); - Bukkit.getPluginManager().registerEvents(this, MCore.get()); } // -------------------------------------------- // @@ -315,4 +322,5 @@ public class InternalListener implements Listener pcoll.syncId(playerName); } } + } diff --git a/src/com/massivecraft/mcore/EngineOfflineCase.java b/src/com/massivecraft/mcore/EngineOfflineCase.java index c99d35d3..a37e14e2 100644 --- a/src/com/massivecraft/mcore/EngineOfflineCase.java +++ b/src/com/massivecraft/mcore/EngineOfflineCase.java @@ -7,9 +7,9 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent.Result; +import org.bukkit.plugin.Plugin; import com.massivecraft.mcore.util.MUtil; import com.massivecraft.mcore.util.Txt; @@ -35,7 +35,7 @@ import com.massivecraft.mcore.util.Txt; * After that you get kicked when using an incorrect casing. * */ -public class EngineOfflineCase implements Listener +public class EngineOfflineCase extends EngineAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT @@ -45,11 +45,20 @@ public class EngineOfflineCase implements Listener public static EngineOfflineCase get() { return i; } // -------------------------------------------- // - // SETUP + // OVERRIDE // -------------------------------------------- // - public void setup() + @Override + public Plugin getPlugin() { + return MCore.get(); + } + + @Override + public void activate() + { + super.activate(); + this.lowerToCorrect.clear(); for (Player player : Bukkit.getOnlinePlayers()) @@ -61,8 +70,6 @@ public class EngineOfflineCase implements Listener { this.registerCase(pdname); } - - Bukkit.getPluginManager().registerEvents(this, MCore.get()); } // -------------------------------------------- // @@ -71,10 +78,6 @@ public class EngineOfflineCase implements Listener private Map lowerToCorrect = new HashMap(); - // -------------------------------------------- // - // UTIL - // -------------------------------------------- // - private void registerCase(String playerName) { this.lowerToCorrect.put(playerName.toLowerCase(), playerName); diff --git a/src/com/massivecraft/mcore/EngineWorldNameSet.java b/src/com/massivecraft/mcore/EngineWorldNameSet.java index f51bf780..a08ddd96 100644 --- a/src/com/massivecraft/mcore/EngineWorldNameSet.java +++ b/src/com/massivecraft/mcore/EngineWorldNameSet.java @@ -8,11 +8,11 @@ import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.event.world.WorldLoadEvent; import org.bukkit.event.world.WorldUnloadEvent; +import org.bukkit.plugin.Plugin; -public class EngineWorldNameSet implements Listener +public class EngineWorldNameSet extends EngineAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT @@ -22,18 +22,25 @@ public class EngineWorldNameSet implements Listener public static EngineWorldNameSet get() { return i; } // -------------------------------------------- // - // SETUP + // OVERRIDE // -------------------------------------------- // - public void setup() + @Override + public Plugin getPlugin() { + return MCore.get(); + } + + @Override + public void activate() + { + super.activate(); + this.worldNamesInner.clear(); for (World world : Bukkit.getWorlds()) { this.worldNamesInner.add(world.getName()); } - - Bukkit.getPluginManager().registerEvents(this, MCore.get()); } // -------------------------------------------- // diff --git a/src/com/massivecraft/mcore/HeatData.java b/src/com/massivecraft/mcore/HeatData.java index 2246b970..ce7082f2 100644 --- a/src/com/massivecraft/mcore/HeatData.java +++ b/src/com/massivecraft/mcore/HeatData.java @@ -81,7 +81,5 @@ public final class HeatData return valueOf(heatTarget, now); } - - - + } diff --git a/src/com/massivecraft/mcore/MCore.java b/src/com/massivecraft/mcore/MCore.java index 5d4899a4..73fbd285 100644 --- a/src/com/massivecraft/mcore/MCore.java +++ b/src/com/massivecraft/mcore/MCore.java @@ -1,6 +1,7 @@ package com.massivecraft.mcore; import java.lang.reflect.Modifier; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Random; @@ -18,18 +19,19 @@ import com.massivecraft.mcore.adapter.JsonElementAdapter; import com.massivecraft.mcore.adapter.ObjectIdAdapter; import com.massivecraft.mcore.adapter.PlayerInventoryAdapter; import com.massivecraft.mcore.adapter.UUIDAdapter; +import com.massivecraft.mcore.cmd.MCoreBukkitSimpleCommandMap; import com.massivecraft.mcore.integration.protocollib.ProtocolLibFeatures; import com.massivecraft.mcore.integration.vault.VaultFeatures; import com.massivecraft.mcore.mcorecmd.CmdMCore; import com.massivecraft.mcore.mcorecmd.CmdMCoreMStore; import com.massivecraft.mcore.mcorecmd.CmdMCoreUsys; import com.massivecraft.mcore.mixin.SenderIdMixinDefault; -import com.massivecraft.mcore.mixin.TeleportMixinCauseEngine; +import com.massivecraft.mcore.mixin.EngineTeleportMixinCause; import com.massivecraft.mcore.ps.PS; import com.massivecraft.mcore.ps.PSAdapter; import com.massivecraft.mcore.store.Coll; import com.massivecraft.mcore.store.ExamineThread; -import com.massivecraft.mcore.teleport.ScheduledTeleportEngine; +import com.massivecraft.mcore.teleport.EngineScheduledTeleport; import com.massivecraft.mcore.util.PlayerUtil; import com.massivecraft.mcore.util.TimeDiffUtil; import com.massivecraft.mcore.util.TimeUnit; @@ -147,37 +149,40 @@ public class MCore extends MPlugin SenderIdMixinDefault.get().setup(); // Register events - InternalListener.get().setup(); - ScheduledTeleportEngine.get().setup(); - TeleportMixinCauseEngine.get().setup(); - EngineWorldNameSet.get().setup(); - EngineOfflineCase.get().setup(); + EngineMainMCore.get().activate(); + EngineScheduledTeleport.get().activate(); + EngineTeleportMixinCause.get().activate(); + EngineWorldNameSet.get().activate(); + EngineOfflineCase.get().activate(); // TODO: Make all engines PlayerUtil.get().setup(); - // Schedule the collection ticker. + // Tasks Bukkit.getScheduler().scheduleSyncRepeatingTask(this, this.collTickTask, 1, 1); - // Initialize Internal Collections + // Collections MultiverseColl.get().init(); AspectColl.get().init(); MCoreConfColl.get().init(); - // Init aspects + // Aspects this.moneyAspect = AspectColl.get().get("mcore_money", true); this.moneyAspect.register(); this.moneyAspect.setDesc( "The aspect used for how much money a player has" ); + // Inject our command map with dynamic tweaks + MCoreBukkitSimpleCommandMap.inject(); + // Register commands - this.outerCmdMCore = new CmdMCore(ConfServer.aliasesOuterMCore); - this.outerCmdMCore.register(this); + this.outerCmdMCore = new CmdMCore() { public List getAliases() { return MCoreConf.get().aliasesOuterMCore; } }; + this.outerCmdMCore.register(); - this.outerCmdMCoreUsys = new CmdMCoreUsys(ConfServer.aliasesOuterMCoreUsys); - this.outerCmdMCoreUsys.register(this); + this.outerCmdMCoreUsys = new CmdMCoreUsys() { public List getAliases() { return MCoreConf.get().aliasesOuterMCoreUsys; } }; + this.outerCmdMCoreUsys.register(); - this.outerCmdMCoreMStore = new CmdMCoreMStore(ConfServer.aliasesOuterMCoreMStore); - this.outerCmdMCoreMStore.register(this); + this.outerCmdMCoreMStore = new CmdMCoreMStore() { public List getAliases() { return MCoreConf.get().aliasesOuterMCoreMStore; } }; + this.outerCmdMCoreMStore.register(); // Integration this.integrate( diff --git a/src/com/massivecraft/mcore/MCoreConf.java b/src/com/massivecraft/mcore/MCoreConf.java index 113e3e82..d638a10e 100644 --- a/src/com/massivecraft/mcore/MCoreConf.java +++ b/src/com/massivecraft/mcore/MCoreConf.java @@ -1,6 +1,7 @@ package com.massivecraft.mcore; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.bukkit.permissions.Permissible; @@ -18,24 +19,16 @@ public class MCoreConf extends Entity protected static transient MCoreConf i; public static MCoreConf get() { return i; } - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public MCoreConf load(MCoreConf that) - { - this.usingRecipientChatEvent = that.usingRecipientChatEvent; - this.forcingOnePlayerNameCase = that.forcingOnePlayerNameCase; - this.permissionDeniedFormats = that.permissionDeniedFormats; - this.permissionToTpdelay = that.permissionToTpdelay; - - return this; - } - // -------------------------------------------- // // FIELDS // -------------------------------------------- // + + public List aliasesOuterMCore = MUtil.list("mcore"); + + public List aliasesOuterMCoreUsys = MUtil.list("usys"); + + public List aliasesOuterMCoreMStore = MUtil.list("mstore"); + // These getters and setters are obnoxious, defensive copying, NPE avoiding and probably thread safe. private boolean usingRecipientChatEvent = true; diff --git a/src/com/massivecraft/mcore/MPlugin.java b/src/com/massivecraft/mcore/MPlugin.java index 5351be15..de923e39 100644 --- a/src/com/massivecraft/mcore/MPlugin.java +++ b/src/com/massivecraft/mcore/MPlugin.java @@ -38,6 +38,9 @@ public abstract class MPlugin extends JavaPlugin implements Listener // Create Gson this.gson = this.getGsonBuilder().create(); + // Listener + Bukkit.getPluginManager().registerEvents(this, this); + return true; } diff --git a/src/com/massivecraft/mcore/Predictate.java b/src/com/massivecraft/mcore/Predictate.java index 290c241e..d06469e8 100644 --- a/src/com/massivecraft/mcore/Predictate.java +++ b/src/com/massivecraft/mcore/Predictate.java @@ -3,4 +3,4 @@ package com.massivecraft.mcore; public interface Predictate { public boolean apply(T type); -} \ No newline at end of file +} diff --git a/src/com/massivecraft/mcore/Progressbar.java b/src/com/massivecraft/mcore/Progressbar.java index 9fc69136..c38fdb55 100644 --- a/src/com/massivecraft/mcore/Progressbar.java +++ b/src/com/massivecraft/mcore/Progressbar.java @@ -160,4 +160,5 @@ public class Progressbar } return ret; } + } diff --git a/src/com/massivecraft/mcore/SimpleConfig.java b/src/com/massivecraft/mcore/SimpleConfig.java index 72181de4..0dc1677b 100644 --- a/src/com/massivecraft/mcore/SimpleConfig.java +++ b/src/com/massivecraft/mcore/SimpleConfig.java @@ -93,4 +93,3 @@ public class SimpleConfig DiscUtil.writeCatch(file, content); } } - diff --git a/src/com/massivecraft/mcore/Triple.java b/src/com/massivecraft/mcore/Triple.java index 8d8d38ef..be0f0a97 100644 --- a/src/com/massivecraft/mcore/Triple.java +++ b/src/com/massivecraft/mcore/Triple.java @@ -81,5 +81,4 @@ public class Triple implements Cloneable, Serializable return this; } - } diff --git a/src/com/massivecraft/mcore/adapter/FireworkEffectAdapter.java b/src/com/massivecraft/mcore/adapter/FireworkEffectAdapter.java index 1e88a8ee..a492fe3b 100644 --- a/src/com/massivecraft/mcore/adapter/FireworkEffectAdapter.java +++ b/src/com/massivecraft/mcore/adapter/FireworkEffectAdapter.java @@ -141,4 +141,5 @@ public class FireworkEffectAdapter return ret; } + } diff --git a/src/com/massivecraft/mcore/adapter/InventoryAdapter.java b/src/com/massivecraft/mcore/adapter/InventoryAdapter.java index 305c2d4f..d993f985 100644 --- a/src/com/massivecraft/mcore/adapter/InventoryAdapter.java +++ b/src/com/massivecraft/mcore/adapter/InventoryAdapter.java @@ -221,4 +221,4 @@ public class InventoryAdapter implements JsonDeserializer, JsonSerial return ret; } -} \ No newline at end of file +} diff --git a/src/com/massivecraft/mcore/adapter/ObjectIdAdapter.java b/src/com/massivecraft/mcore/adapter/ObjectIdAdapter.java index d36ba337..d9571c2c 100644 --- a/src/com/massivecraft/mcore/adapter/ObjectIdAdapter.java +++ b/src/com/massivecraft/mcore/adapter/ObjectIdAdapter.java @@ -60,4 +60,5 @@ public class ObjectIdAdapter implements JsonDeserializer, JsonSerializ { return convertStringToObjectId(jsonElement.getAsString()); } + } diff --git a/src/com/massivecraft/mcore/adapter/PlayerInventoryAdapter.java b/src/com/massivecraft/mcore/adapter/PlayerInventoryAdapter.java index 0567d402..7a152692 100644 --- a/src/com/massivecraft/mcore/adapter/PlayerInventoryAdapter.java +++ b/src/com/massivecraft/mcore/adapter/PlayerInventoryAdapter.java @@ -36,4 +36,4 @@ public class PlayerInventoryAdapter implements JsonDeserializer return (PlayerInventory) InventoryAdapter.fromJson(json); } -} \ No newline at end of file +} diff --git a/src/com/massivecraft/mcore/adapter/PolymorphicAdapter.java b/src/com/massivecraft/mcore/adapter/PolymorphicAdapter.java index ef0121d2..1a002f19 100644 --- a/src/com/massivecraft/mcore/adapter/PolymorphicAdapter.java +++ b/src/com/massivecraft/mcore/adapter/PolymorphicAdapter.java @@ -70,4 +70,5 @@ public class PolymorphicAdapter implements JsonDeserializer, JsonSerialize } return context.deserialize(jsonObject.get(VALUE), typeClass); } + } diff --git a/src/com/massivecraft/mcore/adapter/PotionEffectAdapter.java b/src/com/massivecraft/mcore/adapter/PotionEffectAdapter.java index b4c9e32d..71bac7f1 100644 --- a/src/com/massivecraft/mcore/adapter/PotionEffectAdapter.java +++ b/src/com/massivecraft/mcore/adapter/PotionEffectAdapter.java @@ -76,4 +76,5 @@ public class PotionEffectAdapter return new PotionEffect(pet, duration, amplifier, ambient); } + } diff --git a/src/com/massivecraft/mcore/adapter/UUIDAdapter.java b/src/com/massivecraft/mcore/adapter/UUIDAdapter.java index 1b552c0c..21b4e715 100644 --- a/src/com/massivecraft/mcore/adapter/UUIDAdapter.java +++ b/src/com/massivecraft/mcore/adapter/UUIDAdapter.java @@ -59,4 +59,5 @@ public class UUIDAdapter implements JsonDeserializer, JsonSerializer { return convertStringToUUID(jsonElement.getAsString()); } + } diff --git a/src/com/massivecraft/mcore/cmd/BukkitCommandDoor.java b/src/com/massivecraft/mcore/cmd/BukkitCommandDoor.java new file mode 100644 index 00000000..e11d4854 --- /dev/null +++ b/src/com/massivecraft/mcore/cmd/BukkitCommandDoor.java @@ -0,0 +1,115 @@ +package com.massivecraft.mcore.cmd; + +import java.lang.reflect.Field; +import java.util.Map; +import java.util.Set; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandMap; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_6_R3.CraftServer; +import org.bukkit.plugin.SimplePluginManager; + +@SuppressWarnings("unchecked") +public class BukkitCommandDoor +{ + // -------------------------------------------- // + // SINGLETON + // -------------------------------------------- // + + public static CraftServer getCraftServer() + { + return (CraftServer)Bukkit.getServer(); + } + + public static SimpleCommandMap getSimpleCommandMap() + { + return getCraftServer().getCommandMap(); + } + + public static void setSimpleCommandMap(SimpleCommandMap simpleCommandMap) + { + set(CraftServer.class, "commandMap", getCraftServer(), simpleCommandMap); + } + + public static SimplePluginManager getSimplePluginManager() + { + return (SimplePluginManager)Bukkit.getPluginManager(); + } + + // -------------------------------------------- // + // SIMPLE COMMAND MAP + // -------------------------------------------- // + + public static Map getSimpleCommandMapDotKnownCommands(SimpleCommandMap simpleCommandMap) + { + return (Map) get(SimpleCommandMap.class, "knownCommands", simpleCommandMap); + } + + public static Set getSimpleCommandMapDotAliases(SimpleCommandMap simpleCommandMap) + { + return (Set) get(SimpleCommandMap.class, "aliases", simpleCommandMap); + } + + // -------------------------------------------- // + // SIMPLE PLUGIN MANAGER + // -------------------------------------------- // + + public static CommandMap getSimplePluginManagerCommandMap(SimplePluginManager simplePluginManager) + { + return (CommandMap) get(SimplePluginManager.class, "commandMap", simplePluginManager); + } + + public static void setSimplePluginManagerCommandMap(SimplePluginManager simplePluginManager, CommandMap commandMap) + { + set(SimplePluginManager.class, "commandMap", simplePluginManager, commandMap); + } + + // -------------------------------------------- // + // COMMAND + // -------------------------------------------- // + + public static CommandMap getCommandDotCommandMap(Command command) + { + return (CommandMap) get(Command.class, "commandMap", command); + } + + public static void setCommandDotCommandMap(Command command, CommandMap commandMap) + { + set(Command.class, "commandMap", command, commandMap); + } + + // -------------------------------------------- // + // UTIL + // -------------------------------------------- // + + public static Object get(Class clazz, String fieldName, Object object) + { + try + { + Field field = clazz.getDeclaredField(fieldName); + field.setAccessible(true); + return field.get(object); + } + catch (Exception e) + { + return null; + } + } + + public static void set(Class clazz, String fieldName, Object object, Object value) + { + try + { + Field field = clazz.getDeclaredField(fieldName); + field.setAccessible(true); + field.set(object, value); + } + catch (Exception e) + { + return; + } + } + +} diff --git a/src/com/massivecraft/mcore/cmd/BukkitGlueCommand.java b/src/com/massivecraft/mcore/cmd/BukkitGlueCommand.java deleted file mode 100644 index 5baec6da..00000000 --- a/src/com/massivecraft/mcore/cmd/BukkitGlueCommand.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.massivecraft.mcore.cmd; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.plugin.Plugin; - -import com.massivecraft.mcore.mixin.Mixin; -import com.massivecraft.mcore.util.Txt; - -public class BukkitGlueCommand extends Command -{ - public final MCommand mcommand; - public final Plugin plugin; - - public BukkitGlueCommand(String name, MCommand mcommand, Plugin plugin) - { - super(name, mcommand.getDesc(), mcommand.getUseageTemplate(), new ArrayList()); - this.mcommand = mcommand; - this.plugin = plugin; - } - - @Override - public boolean execute(CommandSender sender, String commandLabel, String[] args) - { - if ( ! plugin.isEnabled()) return false; - List argList; - if (this.mcommand.isUsingTokenizer()) - { - argList = Txt.tokenizeArguments(Txt.implode(args, " ")); - } - else - { - argList = new ArrayList(Arrays.asList(args)); - } - this.mcommand.execute(sender, argList); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException - { - List superRet = super.tabComplete(sender, alias, args); - if (args.length == 0) return superRet; - - Set ret = new TreeSet(String.CASE_INSENSITIVE_ORDER); - ret.addAll(superRet); - - String tokenlc = args[args.length - 1].toLowerCase(); - - // Add ids of all online senders that match and isn't added yet. - for (String senderId : Mixin.getOnlineSenderIds()) - { - if (!senderId.toLowerCase().startsWith(tokenlc)) continue; - if (!Mixin.canSee(sender, senderId)) continue; - ret.add(senderId); - } - - return new ArrayList(ret); - } -} diff --git a/src/com/massivecraft/mcore/cmd/HelpCommand.java b/src/com/massivecraft/mcore/cmd/HelpCommand.java index 4830be5d..b1e2fcf2 100644 --- a/src/com/massivecraft/mcore/cmd/HelpCommand.java +++ b/src/com/massivecraft/mcore/cmd/HelpCommand.java @@ -8,19 +8,28 @@ import com.massivecraft.mcore.util.Txt; public class HelpCommand extends MCommand { + // -------------------------------------------- // + // INSTANCE & CONSTRUCT + // -------------------------------------------- // + + private static HelpCommand i = new HelpCommand(); + public static HelpCommand get() { return i; } private HelpCommand() { - super(); this.addAliases("?", "h", "help"); this.setDesc(""); this.addOptionalArg("page","1"); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { - if (this.commandChain.size() == 0) return; - MCommand parentCommand = this.commandChain.get(this.commandChain.size()-1); + if (this.getCommandChain().size() == 0) return; + MCommand parentCommand = this.getCommandChain().get(this.getCommandChain().size()-1); ArrayList lines = new ArrayList(); @@ -29,11 +38,11 @@ public class HelpCommand extends MCommand lines.add(Txt.parse("# "+helpline)); } - for(MCommand subCommand : parentCommand.getSubCommands()) + for (MCommand subCommand : parentCommand.getSubCommands()) { if (subCommand.visibleTo(sender)) { - lines.add(subCommand.getUseageTemplate(this.commandChain, true, true, sender)); + lines.add(subCommand.getUseageTemplate(this.getCommandChain(), true, true, sender)); } } @@ -42,12 +51,4 @@ public class HelpCommand extends MCommand sendMessage(Txt.getPage(lines, pagenumber, "Help for command \""+parentCommand.getAliases().get(0)+"\"", sender)); } - // -------------------------------------------- // - // INSTANCE - // -------------------------------------------- // - - private static HelpCommand i = new HelpCommand(); - public static HelpCommand getInstance() { return i; } - public static HelpCommand get() { return i; } - } diff --git a/src/com/massivecraft/mcore/cmd/MCommand.java b/src/com/massivecraft/mcore/cmd/MCommand.java index 1202a72e..d45553eb 100644 --- a/src/com/massivecraft/mcore/cmd/MCommand.java +++ b/src/com/massivecraft/mcore/cmd/MCommand.java @@ -3,11 +3,9 @@ package com.massivecraft.mcore.cmd; import java.util.*; import java.util.Map.Entry; -import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; import com.massivecraft.mcore.Lang; import com.massivecraft.mcore.MCore; @@ -16,11 +14,10 @@ import com.massivecraft.mcore.cmd.arg.ArgResult; import com.massivecraft.mcore.cmd.req.Req; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.mixin.Mixin; -import com.massivecraft.mcore.util.BukkitCommandUtil; import com.massivecraft.mcore.util.PermUtil; import com.massivecraft.mcore.util.Txt; -public abstract class MCommand +public class MCommand { // -------------------------------------------- // // COMMAND BEHAVIOR @@ -116,7 +113,7 @@ public abstract class MCommand { if (this.descPermission != null) return this.descPermission; // Otherwise we try to find one. - for (Req req : this.requirements) + for (Req req : this.getRequirements()) { if ( ! (req instanceof ReqHasPerm)) continue; return ((ReqHasPerm)req).getPerm(); @@ -161,46 +158,13 @@ public abstract class MCommand // BUKKIT INTEGRATION // -------------------------------------------- // - public boolean register() - { - return register(MCore.get(), true); - } + protected final MCoreBukkitCommand bukkitCommand = new MCoreBukkitCommand(this); + public MCoreBukkitCommand getBukkitCommand() { return this.bukkitCommand; } - public boolean register(Plugin plugin) + public void register() { - return this.register(plugin, true); - } - - public boolean register(boolean override) - { - return this.register(MCore.get(), override); - } - - public boolean register(Plugin plugin, boolean override) - { - boolean ret = false; - - SimpleCommandMap scm = BukkitCommandUtil.getBukkitCommandMap(); - - for (String alias : this.getAliases()) - { - BukkitGlueCommand bgc = new BukkitGlueCommand(alias, this, plugin); - - if (override) - { - // Our commands are more important than your commands :P - Map knownCommands = BukkitCommandUtil.getKnownCommandsFromSimpleCommandMap(scm); - String lowerLabel = bgc.getName().trim().toLowerCase(); - knownCommands.remove(lowerLabel); - } - - if (scm.register(MCore.get().getDescription().getName(), bgc)) - { - ret = true; - } - } - - return ret; + SimpleCommandMap scm = BukkitCommandDoor.getSimpleCommandMap(); + scm.register(MCore.get().getDescription().getName(), this.getBukkitCommand()); } // -------------------------------------------- // @@ -209,9 +173,8 @@ public abstract class MCommand public MCommand() { - this.descPermission = null; - this.subCommands = new ArrayList(); + this.aliases = new ArrayList(); this.requiredArgs = new ArrayList(); @@ -223,6 +186,7 @@ public abstract class MCommand this.usingTokenizer = true; this.desc = null; + this.descPermission = null; this.visibilityMode = VisibilityMode.VISIBLE; } @@ -242,15 +206,15 @@ public abstract class MCommand this.fixSenderVars(); - this.args = args; - this.commandChain = commandChain; + this.setArgs(args); + this.setCommandChain(commandChain); // Is there a matching sub command? if (args.size() > 0 ) { - for (MCommand subCommand: this.subCommands) + for (MCommand subCommand: this.getSubCommands()) { - if (subCommand.aliases.contains(args.get(0))) + if (subCommand.getAliases().contains(args.get(0))) { args.remove(0); commandChain.add(this); @@ -260,7 +224,7 @@ public abstract class MCommand } } - if ( ! validCall(this.sender, this.args)) return; + if ( ! validCall(this.sender, this.getArgs())) return; perform(); } @@ -273,8 +237,12 @@ public abstract class MCommand } // This is where the command action is performed. - public abstract void perform(); - + public void perform() + { + // Per default we just act as the help command! + this.getCommandChain().add(this); + HelpCommand.get().execute(this.sender, this.getArgs(), this.getCommandChain()); + } // -------------------------------------------- // // CALL VALIDATION @@ -323,7 +291,7 @@ public abstract class MCommand public boolean validArgs(List args, CommandSender sender) { - if (args.size() < this.requiredArgs.size()) + if (args.size() < this.getRequiredArgs().size()) { if (sender != null) { @@ -333,12 +301,12 @@ public abstract class MCommand return false; } - if (args.size() > this.requiredArgs.size() + this.optionalArgs.size() && this.errorOnToManyArgs) + if (args.size() > this.getRequiredArgs().size() + this.getOptionalArgs().size() && this.getErrorOnToManyArgs()) { if (sender != null) { // Get the to many string slice - List theToMany = args.subList(this.requiredArgs.size() + this.optionalArgs.size(), args.size()); + List theToMany = args.subList(this.getRequiredArgs().size() + this.optionalArgs.size(), args.size()); msg(Lang.COMMAND_TO_MANY_ARGS, Txt.implodeCommaAndDot(theToMany, Txt.parse("%s"), Txt.parse(", "), Txt.parse(" and "), "")); msg(Lang.COMMAND_TO_MANY_ARGS2); sender.sendMessage(this.getUseageTemplate()); @@ -385,11 +353,11 @@ public abstract class MCommand if (first && onlyFirstAlias) { - ret.append(mc.aliases.get(0)); + ret.append(mc.getAliases().get(0)); } else { - ret.append(Txt.implode(mc.aliases, ",")); + ret.append(Txt.implode(mc.getAliases(), ",")); } if (iter.hasNext()) @@ -402,12 +370,12 @@ public abstract class MCommand List args = new ArrayList(); - for (String requiredArg : this.requiredArgs) + for (String requiredArg : this.getRequiredArgs()) { args.add("<"+requiredArg+">"); } - for (Entry optionalArg : this.optionalArgs.entrySet()) + for (Entry optionalArg : this.getOptionalArgs().entrySet()) { String val = optionalArg.getValue(); if (val == null) @@ -516,7 +484,7 @@ public abstract class MCommand public String arg(int idx) { if ( ! this.argIsSet(idx)) return null; - return this.args.get(idx); + return this.getArgs().get(idx); } public T arg(int idx, ArgReader argReader) @@ -537,9 +505,9 @@ public abstract class MCommand { if ( ! this.argIsSet(idx)) return null; int from = idx; - int to = args.size(); + int to = this.getArgs().size(); if (to <= from) return ""; - return Txt.implode(this.args.subList(from, to), " "); + return Txt.implode(this.getArgs().subList(from, to), " "); } public T argConcatFrom(int idx, ArgReader argReader) diff --git a/src/com/massivecraft/mcore/cmd/MCoreBukkitCommand.java b/src/com/massivecraft/mcore/cmd/MCoreBukkitCommand.java new file mode 100644 index 00000000..15f9ee31 --- /dev/null +++ b/src/com/massivecraft/mcore/cmd/MCoreBukkitCommand.java @@ -0,0 +1,116 @@ +package com.massivecraft.mcore.cmd; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; + +import com.massivecraft.mcore.mixin.Mixin; +import com.massivecraft.mcore.util.Txt; + +public class MCoreBukkitCommand extends Command +{ + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // + + private final MCommand mcommand; + public MCommand getMcommand() { return this.mcommand; } + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public MCoreBukkitCommand(MCommand mcommand) + { + super( + mcommand.getClass().getSimpleName(), // The name field is final. MCommand aliases/names are not final so we simply use the class name. + null, // Set description to null. Instead we override the getter. + null, // Set usage to null. Instead we override the getter. + new ArrayList() // Set aliases to "null". Instead we override the getter. + ); + + this.mcommand = mcommand; + } + + // -------------------------------------------- // + // OVERRIDE: GETTERS + // -------------------------------------------- // + + @Override + public String getDescription() + { + return this.getMcommand().getDesc(); + } + + @Override + public String getUsage() + { + return this.getMcommand().getUseageTemplate(); + } + + @Override + public List getAliases() + { + return this.getMcommand().getAliases(); + } + + @Override + public String getLabel() + { + return this.getMcommand().getAliases().get(0); + } + + // -------------------------------------------- // + // OVERRIDE: EXECUTE + // -------------------------------------------- // + + @Override + public boolean execute(CommandSender sender, String commandLabel, String[] args) + { + List argList; + if (this.mcommand.isUsingTokenizer()) + { + argList = Txt.tokenizeArguments(Txt.implode(args, " ")); + } + else + { + argList = new ArrayList(Arrays.asList(args)); + } + + this.mcommand.execute(sender, argList); + + return true; + } + + // -------------------------------------------- // + // OVERRIDE: TAB COMPLETE + // -------------------------------------------- // + + @Override + public List tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException + { + List superRet = super.tabComplete(sender, alias, args); + if (args.length == 0) return superRet; + + Set ret = new TreeSet(String.CASE_INSENSITIVE_ORDER); + ret.addAll(superRet); + + String tokenlc = args[args.length - 1].toLowerCase(); + + // Add ids of all online senders that match and isn't added yet. + for (String senderId : Mixin.getOnlineSenderIds()) + { + if (!senderId.toLowerCase().startsWith(tokenlc)) continue; + if (!Mixin.canSee(sender, senderId)) continue; + ret.add(senderId); + } + + return new ArrayList(ret); + } + +} diff --git a/src/com/massivecraft/mcore/cmd/MCoreBukkitSimpleCommandMap.java b/src/com/massivecraft/mcore/cmd/MCoreBukkitSimpleCommandMap.java new file mode 100644 index 00000000..204d6403 --- /dev/null +++ b/src/com/massivecraft/mcore/cmd/MCoreBukkitSimpleCommandMap.java @@ -0,0 +1,110 @@ +package com.massivecraft.mcore.cmd; + +import java.util.LinkedHashSet; +import java.util.Map.Entry; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.SimpleCommandMap; + + +public class MCoreBukkitSimpleCommandMap extends SimpleCommandMap +{ + // -------------------------------------------- // + // INJECT + // -------------------------------------------- // + + public static MCoreBukkitSimpleCommandMap get() + { + SimpleCommandMap ret = BukkitCommandDoor.getSimpleCommandMap(); + if (!(ret instanceof MCoreBukkitSimpleCommandMap)) return null; + return (MCoreBukkitSimpleCommandMap) ret; + } + + public static boolean isInjected() + { + return get() != null; + } + + public static void inject() + { + if (isInjected()) return; + MCoreBukkitSimpleCommandMap instance = new MCoreBukkitSimpleCommandMap(); + BukkitCommandDoor.setSimpleCommandMap(instance); + BukkitCommandDoor.setSimplePluginManagerCommandMap(BukkitCommandDoor.getSimplePluginManager(), instance); + } + + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // + + private final LinkedHashSet mcoreBukkitCommands = new LinkedHashSet(); + public LinkedHashSet getMCoreBukkitCommands() { return this.mcoreBukkitCommands; } + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public MCoreBukkitSimpleCommandMap(SimpleCommandMap simpleCommandMap) + { + // Trigger the super constructor + super(Bukkit.getServer()); + + // Fetch non static collection content + this.knownCommands.putAll(BukkitCommandDoor.getSimpleCommandMapDotKnownCommands(simpleCommandMap)); + this.aliases.addAll(BukkitCommandDoor.getSimpleCommandMapDotAliases(simpleCommandMap)); + + // Convert registrations + for (Entry entry : this.knownCommands.entrySet()) + { + Command command = entry.getValue(); + if (BukkitCommandDoor.getCommandDotCommandMap(command) == null) continue; + BukkitCommandDoor.setCommandDotCommandMap(command, this); + } + } + + public MCoreBukkitSimpleCommandMap() + { + this(BukkitCommandDoor.getSimpleCommandMap()); + } + + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + + @Override + public boolean register(String label, String fallbackPrefix, Command command) + { + // Bukkit + if (!(command instanceof MCoreBukkitCommand)) + { + return super.register(label, fallbackPrefix, command); + } + + // MCore + command.register(this); + this.getMCoreBukkitCommands().add((MCoreBukkitCommand)command); + + return true; + } + + @Override + public Command getCommand(String name) + { + // MCore + for (MCoreBukkitCommand mbc : this.getMCoreBukkitCommands()) + { + for (String alias : mbc.getAliases()) + { + if (alias.equalsIgnoreCase(name)) + { + return mbc; + } + } + } + + // Bukkit + return super.getCommand(name); + } + +} diff --git a/src/com/massivecraft/mcore/cmd/VersionCommand.java b/src/com/massivecraft/mcore/cmd/VersionCommand.java index 36f0e797..c98df523 100644 --- a/src/com/massivecraft/mcore/cmd/VersionCommand.java +++ b/src/com/massivecraft/mcore/cmd/VersionCommand.java @@ -12,6 +12,10 @@ import com.massivecraft.mcore.util.Txt; public class VersionCommand extends MCommand { + // -------------------------------------------- // + // CONSTANTS + // -------------------------------------------- // + public static final String NOT_SPECIFIED = Txt.parse("not specified"); // -------------------------------------------- // @@ -84,7 +88,5 @@ public class VersionCommand extends MCommand { sendMessage(Txt.parse("%s: %s", Txt.upperCaseFirst(key), value == null ? NOT_SPECIFIED : value)); } - - } diff --git a/src/com/massivecraft/mcore/cmd/arg/ARAbstractPrimitive.java b/src/com/massivecraft/mcore/cmd/arg/ARAbstractPrimitive.java index 5c3df1c9..3df02d34 100644 --- a/src/com/massivecraft/mcore/cmd/arg/ARAbstractPrimitive.java +++ b/src/com/massivecraft/mcore/cmd/arg/ARAbstractPrimitive.java @@ -31,4 +31,5 @@ public abstract class ARAbstractPrimitive extends ArgReaderAbstract return result; } + } diff --git a/src/com/massivecraft/mcore/cmd/arg/ARAbstractSelect.java b/src/com/massivecraft/mcore/cmd/arg/ARAbstractSelect.java index 232b8f28..feb62d66 100644 --- a/src/com/massivecraft/mcore/cmd/arg/ARAbstractSelect.java +++ b/src/com/massivecraft/mcore/cmd/arg/ARAbstractSelect.java @@ -45,4 +45,5 @@ public abstract class ARAbstractSelect extends ArgReaderAbstract return result; } + } diff --git a/src/com/massivecraft/mcore/cmd/req/ReqAbstract.java b/src/com/massivecraft/mcore/cmd/req/ReqAbstract.java index 21c4de41..7e40136e 100644 --- a/src/com/massivecraft/mcore/cmd/req/ReqAbstract.java +++ b/src/com/massivecraft/mcore/cmd/req/ReqAbstract.java @@ -19,4 +19,5 @@ public abstract class ReqAbstract implements Req, Serializable { return this.createErrorMessage(sender, null); } + } diff --git a/src/com/massivecraft/mcore/cmd/req/ReqAnd.java b/src/com/massivecraft/mcore/cmd/req/ReqAnd.java index 033a2a1a..f7b9b7c3 100644 --- a/src/com/massivecraft/mcore/cmd/req/ReqAnd.java +++ b/src/com/massivecraft/mcore/cmd/req/ReqAnd.java @@ -61,4 +61,5 @@ public class ReqAnd extends ReqAbstract } return null; } + } diff --git a/src/com/massivecraft/mcore/cmd/req/ReqHasPerm.java b/src/com/massivecraft/mcore/cmd/req/ReqHasPerm.java index f094f466..1ab60645 100644 --- a/src/com/massivecraft/mcore/cmd/req/ReqHasPerm.java +++ b/src/com/massivecraft/mcore/cmd/req/ReqHasPerm.java @@ -38,4 +38,5 @@ public class ReqHasPerm extends ReqAbstract { return PermUtil.getDeniedMessage(this.perm); } + } diff --git a/src/com/massivecraft/mcore/cmd/req/ReqIsntCertainSender.java b/src/com/massivecraft/mcore/cmd/req/ReqIsntCertainSender.java index 5010fcc0..c71b3508 100644 --- a/src/com/massivecraft/mcore/cmd/req/ReqIsntCertainSender.java +++ b/src/com/massivecraft/mcore/cmd/req/ReqIsntCertainSender.java @@ -43,4 +43,5 @@ public class ReqIsntCertainSender extends ReqAbstract { return Txt.parse("Player can't be %s.", Mixin.getDisplayName(this.getSenderId())); } + } diff --git a/src/com/massivecraft/mcore/event/MCoreAfterPlayerRespawnEvent.java b/src/com/massivecraft/mcore/event/MCoreAfterPlayerRespawnEvent.java index 8a48437e..22cf3b69 100644 --- a/src/com/massivecraft/mcore/event/MCoreAfterPlayerRespawnEvent.java +++ b/src/com/massivecraft/mcore/event/MCoreAfterPlayerRespawnEvent.java @@ -49,4 +49,5 @@ public class MCoreAfterPlayerRespawnEvent extends Event implements Runnable { Bukkit.getPluginManager().callEvent(this); } + } diff --git a/src/com/massivecraft/mcore/event/MCoreAfterPlayerTeleportEvent.java b/src/com/massivecraft/mcore/event/MCoreAfterPlayerTeleportEvent.java index c37f2771..73ab9ef6 100644 --- a/src/com/massivecraft/mcore/event/MCoreAfterPlayerTeleportEvent.java +++ b/src/com/massivecraft/mcore/event/MCoreAfterPlayerTeleportEvent.java @@ -56,4 +56,5 @@ public class MCoreAfterPlayerTeleportEvent extends Event implements Runnable { Bukkit.getPluginManager().callEvent(this); } + } diff --git a/src/com/massivecraft/mcore/event/MCoreEvent.java b/src/com/massivecraft/mcore/event/MCoreEvent.java index 8d2630bc..0e91766d 100644 --- a/src/com/massivecraft/mcore/event/MCoreEvent.java +++ b/src/com/massivecraft/mcore/event/MCoreEvent.java @@ -36,7 +36,7 @@ public abstract class MCoreEvent extends Event implements Runnable, Cancellable public MCoreEvent() { - super(); + } public MCoreEvent(boolean isAsync) diff --git a/src/com/massivecraft/mcore/event/MCorePermissionDeniedFormatEvent.java b/src/com/massivecraft/mcore/event/MCorePermissionDeniedFormatEvent.java index 559ba6e2..5105da4c 100644 --- a/src/com/massivecraft/mcore/event/MCorePermissionDeniedFormatEvent.java +++ b/src/com/massivecraft/mcore/event/MCorePermissionDeniedFormatEvent.java @@ -33,4 +33,5 @@ public class MCorePermissionDeniedFormatEvent extends MCoreEvent this.permissionName = permissionName; this.format = null; } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/integration/Integration.java b/src/com/massivecraft/mcore/integration/Integration.java index 7410f9d0..ce847af2 100644 --- a/src/com/massivecraft/mcore/integration/Integration.java +++ b/src/com/massivecraft/mcore/integration/Integration.java @@ -117,4 +117,5 @@ public class Integration implements Listener { this.tick(); } + } diff --git a/src/com/massivecraft/mcore/integration/IntegrationFeaturesAbstract.java b/src/com/massivecraft/mcore/integration/IntegrationFeaturesAbstract.java index 4b487ece..78063975 100644 --- a/src/com/massivecraft/mcore/integration/IntegrationFeaturesAbstract.java +++ b/src/com/massivecraft/mcore/integration/IntegrationFeaturesAbstract.java @@ -42,4 +42,5 @@ public abstract class IntegrationFeaturesAbstract implements IntegrationFeatures { } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/integration/protocollib/EntityPotionColorPacketAdapter.java b/src/com/massivecraft/mcore/integration/protocollib/EntityPotionColorPacketAdapter.java index 3c9f656b..d3272460 100644 --- a/src/com/massivecraft/mcore/integration/protocollib/EntityPotionColorPacketAdapter.java +++ b/src/com/massivecraft/mcore/integration/protocollib/EntityPotionColorPacketAdapter.java @@ -84,4 +84,5 @@ public class EntityPotionColorPacketAdapter extends PacketAdapter e.printStackTrace(); } } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCore.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCore.java index 70b68f07..7b26d787 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCore.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCore.java @@ -1,40 +1,38 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.MCorePerm; -import com.massivecraft.mcore.cmd.HelpCommand; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.VersionCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -import com.massivecraft.mcore.util.MUtil; -public class CmdMCore extends MCoreCommand +public class CmdMCore extends MCommand { - public CmdMCoreUsys cmdMCoreUsys = new CmdMCoreUsys(MUtil.list("usys")); - public CmdMCoreMStore cmdMCoreMStore = new CmdMCoreMStore(MUtil.list("mstore")); - public CmdMCoreId cmdMCoreId = new CmdMCoreId(MUtil.list("id")); - public CmdMCoreHearsound cmdMCoreHearsound = new CmdMCoreHearsound(MUtil.list("hearsound", "hearsounds")); + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // + + public CmdMCoreUsys cmdMCoreUsys = new CmdMCoreUsys(); + public CmdMCoreMStore cmdMCoreMStore = new CmdMCoreMStore(); + public CmdMCoreId cmdMCoreId = new CmdMCoreId(); + public CmdMCoreHearsound cmdMCoreHearsound = new CmdMCoreHearsound(); public VersionCommand cmdMCoreVersion = new VersionCommand(MCore.get(), MCorePerm.CMD_MCORE_VERSION.node, "v", "version"); + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // - public CmdMCore(List aliases) + public CmdMCore() { - super(aliases); - + // SubCommands this.addSubCommand(this.cmdMCoreUsys); this.addSubCommand(this.cmdMCoreMStore); this.addSubCommand(this.cmdMCoreId); this.addSubCommand(this.cmdMCoreHearsound); this.addSubCommand(this.cmdMCoreVersion); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE.node)); } - - @Override - public void perform() - { - this.getCommandChain().add(this); - HelpCommand.getInstance().execute(this.sender, this.args, this.commandChain); - } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreHearsound.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreHearsound.java index 131a59f9..7d48cc0a 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreHearsound.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreHearsound.java @@ -4,24 +4,35 @@ import java.util.List; import com.massivecraft.mcore.MCorePerm; import com.massivecraft.mcore.SoundEffect; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARSoundEffects; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.cmd.req.ReqIsPlayer; -public class CmdMCoreHearsound extends MCoreCommand +public class CmdMCoreHearsound extends MCommand { - public CmdMCoreHearsound(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreHearsound() { - super(aliases); + // Aliases + this.addAliases("hearsound", "hearsounds"); + // Args this.addRequiredArg("sound(s)"); - this.setErrorOnToManyArgs(false); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_HEARSOUND.node)); this.addRequirements(ReqIsPlayer.get()); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreId.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreId.java index b1f75e7a..2c83e7ff 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreId.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreId.java @@ -1,22 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.ConfServer; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreId extends MCoreCommand +public class CmdMCoreId extends MCommand { - public CmdMCoreId(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreId() { - super(aliases); + // Aliases + this.addAliases("id"); + + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_ID.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { this.msg("The id of this server is \"%s\".", ConfServer.serverid); } + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStore.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStore.java index b8ca3d1e..aa1cd04d 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStore.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStore.java @@ -1,33 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCorePerm; -import com.massivecraft.mcore.cmd.HelpCommand; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -import com.massivecraft.mcore.util.MUtil; -public class CmdMCoreMStore extends MCoreCommand +public class CmdMCoreMStore extends MCommand { - public CmdMCoreMStoreStats cmdMCoreMStoreStats = new CmdMCoreMStoreStats(MUtil.list("stats")); - public CmdMCoreMStoreListcolls cmdMCoreMStoreListcolls = new CmdMCoreMStoreListcolls(MUtil.list("listcolls")); - public CmdMCoreMStoreCopydb cmdMCoreMStoreCopydb = new CmdMCoreMStoreCopydb(MUtil.list("copydb")); + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // - public CmdMCoreMStore(List aliases) + public CmdMCoreMStoreStats cmdMCoreMStoreStats = new CmdMCoreMStoreStats(); + public CmdMCoreMStoreListcolls cmdMCoreMStoreListcolls = new CmdMCoreMStoreListcolls(); + public CmdMCoreMStoreCopydb cmdMCoreMStoreCopydb = new CmdMCoreMStoreCopydb(); + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreMStore() { - super(aliases); - + // SubCommands this.addSubCommand(this.cmdMCoreMStoreStats); this.addSubCommand(this.cmdMCoreMStoreListcolls); this.addSubCommand(this.cmdMCoreMStoreCopydb); + // Args + this.addAliases("mstore"); + + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_MSTORE.node)); } - - @Override - public void perform() - { - this.getCommandChain().add(this); - HelpCommand.getInstance().execute(this.sender, this.args, this.commandChain); - } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreCopydb.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreCopydb.java index 47414a91..d8b04ce9 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreCopydb.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreCopydb.java @@ -1,12 +1,12 @@ package com.massivecraft.mcore.mcorecmd; import java.util.Collection; -import java.util.List; import java.util.Map.Entry; import java.util.Set; import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.store.Coll; import com.massivecraft.mcore.store.Db; @@ -14,18 +14,29 @@ import com.massivecraft.mcore.store.Driver; import com.massivecraft.mcore.store.MStore; import com.massivecraft.mcore.xlib.gson.JsonElement; -public class CmdMCoreMStoreCopydb extends MCoreCommand +public class CmdMCoreMStoreCopydb extends MCommand { - public CmdMCoreMStoreCopydb(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreMStoreCopydb() { - super(aliases); + // Aliases + this.addAliases("copydb"); + // Args this.addRequiredArg("from"); this.addRequiredArg("to"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_MSTORE_COPYDB.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreListcolls.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreListcolls.java index 3df7b4a9..46ef78f5 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreListcolls.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreListcolls.java @@ -1,12 +1,12 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; import java.util.Set; import java.util.TreeSet; import com.massivecraft.mcore.ConfServer; import com.massivecraft.mcore.MCorePerm; import com.massivecraft.mcore.NaturalOrderComparator; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARString; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.store.Coll; @@ -14,17 +14,28 @@ import com.massivecraft.mcore.store.Db; import com.massivecraft.mcore.store.MStore; import com.massivecraft.mcore.util.Txt; -public class CmdMCoreMStoreListcolls extends MCoreCommand +public class CmdMCoreMStoreListcolls extends MCommand { - public CmdMCoreMStoreListcolls(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreMStoreListcolls() { - super(aliases); + // Aliases + this.addAliases("listcolls"); + // Args this.addOptionalArg("db", ConfServer.dburi); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_MSTORE_LISTCOLLS.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreStats.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreStats.java index 9aba8d86..bf92f96c 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreStats.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreMStoreStats.java @@ -1,9 +1,9 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; import java.util.Map.Entry; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARColl; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.store.Coll; @@ -11,17 +11,28 @@ import com.massivecraft.mcore.store.ExamineThread; import com.massivecraft.mcore.util.MUtil; import com.massivecraft.mcore.util.Txt; -public class CmdMCoreMStoreStats extends MCoreCommand +public class CmdMCoreMStoreStats extends MCommand { - public CmdMCoreMStoreStats(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreMStoreStats() { - super(aliases); + // Aliases + this.addAliases("stats"); + // Args this.addOptionalArg("coll", Coll.TOTAL); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_MSTORE_STATS.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -82,4 +93,5 @@ public class CmdMCoreMStoreStats extends MCoreCommand msg("%s %d", entry.getKey(), entry.getValue()); } } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsys.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsys.java index a9c4530d..7422d3f1 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsys.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsys.java @@ -1,35 +1,37 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCorePerm; -import com.massivecraft.mcore.cmd.HelpCommand; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -import com.massivecraft.mcore.util.MUtil; -public class CmdMCoreUsys extends MCoreCommand +public class CmdMCoreUsys extends MCommand { - public CmdMCoreUsysMultiverse cmdUsysMultiverse = new CmdMCoreUsysMultiverse(MUtil.list("m", "multiverse")); - public CmdMCoreUsysUniverse cmdUsysUniverse = new CmdMCoreUsysUniverse(MUtil.list("u", "universe")); - public CmdMCoreUsysWorld cmdUsysWorld = new CmdMCoreUsysWorld(MUtil.list("w", "world")); - public CmdMCoreUsysAspect cmdUsysAspect = new CmdMCoreUsysAspect(MUtil.list("a", "aspect")); + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // - public CmdMCoreUsys(List aliases) + public CmdMCoreUsysMultiverse cmdUsysMultiverse = new CmdMCoreUsysMultiverse(); + public CmdMCoreUsysUniverse cmdUsysUniverse = new CmdMCoreUsysUniverse(); + public CmdMCoreUsysWorld cmdUsysWorld = new CmdMCoreUsysWorld(); + public CmdMCoreUsysAspect cmdUsysAspect = new CmdMCoreUsysAspect(); + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsys() { - super(aliases); - + // SubCommands this.addSubCommand(this.cmdUsysMultiverse); this.addSubCommand(this.cmdUsysUniverse); this.addSubCommand(this.cmdUsysWorld); this.addSubCommand(this.cmdUsysAspect); + // Aliases + this.addAliases("usys"); + + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS.node)); } - - @Override - public void perform() - { - this.getCommandChain().add(this); - HelpCommand.getInstance().execute(this.sender, this.args, this.commandChain); - } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspect.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspect.java index dec1d9db..56916425 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspect.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspect.java @@ -1,33 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCorePerm; -import com.massivecraft.mcore.cmd.HelpCommand; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -import com.massivecraft.mcore.util.MUtil; -public class CmdMCoreUsysAspect extends MCoreCommand +public class CmdMCoreUsysAspect extends MCommand { - public CmdMCoreUsysAspectList cmdUsysAspectList = new CmdMCoreUsysAspectList(MUtil.list("l", "list")); - public CmdMCoreUsysAspectShow cmdUsysAspectShow = new CmdMCoreUsysAspectShow(MUtil.list("s", "show")); - public CmdMCoreUsysAspectUse cmdUsysAspectUse = new CmdMCoreUsysAspectUse(MUtil.list("u", "use")); + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // - public CmdMCoreUsysAspect(List aliases) + public CmdMCoreUsysAspectList cmdUsysAspectList = new CmdMCoreUsysAspectList(); + public CmdMCoreUsysAspectShow cmdUsysAspectShow = new CmdMCoreUsysAspectShow(); + public CmdMCoreUsysAspectUse cmdUsysAspectUse = new CmdMCoreUsysAspectUse(); + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysAspect() { - super(aliases); - + // SubCommands this.addSubCommand(this.cmdUsysAspectList); this.addSubCommand(this.cmdUsysAspectShow); this.addSubCommand(this.cmdUsysAspectUse); + // Aliases + this.addAliases("a", "aspect"); + + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_ASPECT.node)); } - - @Override - public void perform() - { - this.getCommandChain().add(this); - HelpCommand.getInstance().execute(this.sender, this.args, this.commandChain); - } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectList.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectList.java index b91cd9bf..6f065a53 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectList.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectList.java @@ -6,20 +6,33 @@ import java.util.List; import com.massivecraft.mcore.Aspect; import com.massivecraft.mcore.AspectColl; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARInteger; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.util.Txt; -public class CmdMCoreUsysAspectList extends MCoreCommand +public class CmdMCoreUsysAspectList extends MCommand { - public CmdMCoreUsysAspectList(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysAspectList() { - super(aliases); + // Aliases + this.addAliases("l", "list"); + + // Args this.addOptionalArg("page", "1"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_ASPECT_LIST.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -38,4 +51,5 @@ public class CmdMCoreUsysAspectList extends MCoreCommand lines = Txt.parseWrap(lines); this.sendMessage(Txt.getPage(lines, pageHumanBased, "Aspect List", sender)); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectShow.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectShow.java index a02a2fb2..38b732dc 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectShow.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectShow.java @@ -1,23 +1,34 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.Aspect; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARAspect; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.util.Txt; -public class CmdMCoreUsysAspectShow extends MCoreCommand +public class CmdMCoreUsysAspectShow extends MCommand { - public CmdMCoreUsysAspectShow(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysAspectShow() { - super(aliases); + // Aliases + this.addAliases("s", "show"); + + // Args this.addRequiredArg("aspect"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_ASPECT_SHOW.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -32,4 +43,5 @@ public class CmdMCoreUsysAspectShow extends MCoreCommand msg(descLine); } } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectUse.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectUse.java index 93b5a219..00ac93aa 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectUse.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysAspectUse.java @@ -1,25 +1,36 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.Aspect; import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARAspect; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysAspectUse extends MCoreCommand +public class CmdMCoreUsysAspectUse extends MCommand { - public CmdMCoreUsysAspectUse(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysAspectUse() { - super(aliases); + // Aliases + this.addAliases("u", "use"); + + // Args this.addRequiredArg("aspect"); this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_ASPECT_USE.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -33,4 +44,5 @@ public class CmdMCoreUsysAspectUse extends MCoreCommand msg("The aspect %s now use multiverse %s.", aspect.getId(), multiverse.getId()); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverse.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverse.java index 5be369a5..5f754e0b 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverse.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverse.java @@ -1,35 +1,37 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCorePerm; -import com.massivecraft.mcore.cmd.HelpCommand; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -import com.massivecraft.mcore.util.MUtil; -public class CmdMCoreUsysMultiverse extends MCoreCommand +public class CmdMCoreUsysMultiverse extends MCommand { - public CmdMCoreUsysMultiverseList cmdUsysMultiverseList = new CmdMCoreUsysMultiverseList(MUtil.list("l", "list")); - public CmdMCoreUsysMultiverseShow cmdUsysMultiverseShow = new CmdMCoreUsysMultiverseShow(MUtil.list("s", "show")); - public CmdMCoreUsysMultiverseNew cmdUsysMultiverseNew = new CmdMCoreUsysMultiverseNew(MUtil.list("n", "new")); - public CmdMCoreUsysMultiverseDel cmdUsysMultiverseDel = new CmdMCoreUsysMultiverseDel(MUtil.list("d", "del")); + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // - public CmdMCoreUsysMultiverse(List aliases) + public CmdMCoreUsysMultiverseList cmdUsysMultiverseList = new CmdMCoreUsysMultiverseList(); + public CmdMCoreUsysMultiverseShow cmdUsysMultiverseShow = new CmdMCoreUsysMultiverseShow(); + public CmdMCoreUsysMultiverseNew cmdUsysMultiverseNew = new CmdMCoreUsysMultiverseNew(); + public CmdMCoreUsysMultiverseDel cmdUsysMultiverseDel = new CmdMCoreUsysMultiverseDel(); + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysMultiverse() { - super(aliases); - + // SubCommands this.addSubCommand(this.cmdUsysMultiverseList); this.addSubCommand(this.cmdUsysMultiverseShow); this.addSubCommand(this.cmdUsysMultiverseNew); this.addSubCommand(this.cmdUsysMultiverseDel); + // Aliases + this.addAliases("m", "multiverse"); + + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_MULTIVERSE.node)); } - - @Override - public void perform() - { - this.getCommandChain().add(this); - HelpCommand.getInstance().execute(this.sender, this.args, this.commandChain); - } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseDel.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseDel.java index af2f3b06..d336c492 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseDel.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseDel.java @@ -1,23 +1,34 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysMultiverseDel extends MCoreCommand +public class CmdMCoreUsysMultiverseDel extends MCommand { - public CmdMCoreUsysMultiverseDel(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysMultiverseDel() { - super(aliases); + // Aliases + this.addAliases("d", "del"); + + // Args this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_MULTIVERSE_DEL.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -36,4 +47,5 @@ public class CmdMCoreUsysMultiverseDel extends MCoreCommand msg("Deleted multiverse %s.", id); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseList.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseList.java index 3b9438ca..758c2974 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseList.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseList.java @@ -6,20 +6,33 @@ import java.util.List; import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MultiverseColl; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARInteger; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.util.Txt; -public class CmdMCoreUsysMultiverseList extends MCoreCommand +public class CmdMCoreUsysMultiverseList extends MCommand { - public CmdMCoreUsysMultiverseList(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysMultiverseList() { - super(aliases); + // Aliases + this.addAliases("l", "list"); + + // Args this.addOptionalArg("page", "1"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_MULTIVERSE_LIST.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -38,4 +51,5 @@ public class CmdMCoreUsysMultiverseList extends MCoreCommand lines = Txt.parseWrap(lines); this.sendMessage(Txt.getPage(lines, pageHumanBased, "Multiverse List", sender)); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseNew.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseNew.java index b4c90c5b..fb6d3ad2 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseNew.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseNew.java @@ -1,21 +1,32 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MultiverseColl; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysMultiverseNew extends MCoreCommand +public class CmdMCoreUsysMultiverseNew extends MCommand { - public CmdMCoreUsysMultiverseNew(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysMultiverseNew() { - super(aliases); + // Aliases + this.addAliases("n", "new"); + + // Args this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_MULTIVERSE_NEW.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -31,4 +42,5 @@ public class CmdMCoreUsysMultiverseNew extends MCoreCommand msg("Created multiverse %s.", id); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseShow.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseShow.java index 393101e1..47473dde 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseShow.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysMultiverseShow.java @@ -7,20 +7,33 @@ import com.massivecraft.mcore.Aspect; import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.util.Txt; -public class CmdMCoreUsysMultiverseShow extends MCoreCommand +public class CmdMCoreUsysMultiverseShow extends MCommand { - public CmdMCoreUsysMultiverseShow(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysMultiverseShow() { - super(aliases); + // Aliases + this.addAliases("s", "show"); + + // Args this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_MULTIVERSE_SHOW.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -62,4 +75,5 @@ public class CmdMCoreUsysMultiverseShow extends MCoreCommand msg(Txt.implodeCommaAndDot(ids, "%s", ", ", " and ", ".")); } } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverse.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverse.java index 5eb5ddad..ad05f3d3 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverse.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverse.java @@ -1,33 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCorePerm; -import com.massivecraft.mcore.cmd.HelpCommand; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -import com.massivecraft.mcore.util.MUtil; -public class CmdMCoreUsysUniverse extends MCoreCommand +public class CmdMCoreUsysUniverse extends MCommand { - public CmdMCoreUsysUniverseNew cmdUsysUniverseNew = new CmdMCoreUsysUniverseNew(MUtil.list("n", "new")); - public CmdMCoreUsysUniverseDel cmdUsysUniverseDel = new CmdMCoreUsysUniverseDel(MUtil.list("d", "del")); - public CmdMCoreUsysUniverseClear cmdUsysUniverseClear = new CmdMCoreUsysUniverseClear(MUtil.list("c", "clear")); + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // - public CmdMCoreUsysUniverse(List aliases) + public CmdMCoreUsysUniverseNew cmdUsysUniverseNew = new CmdMCoreUsysUniverseNew(); + public CmdMCoreUsysUniverseDel cmdUsysUniverseDel = new CmdMCoreUsysUniverseDel(); + public CmdMCoreUsysUniverseClear cmdUsysUniverseClear = new CmdMCoreUsysUniverseClear(); + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysUniverse() { - super(aliases); - + // SubCommands this.addSubCommand(this.cmdUsysUniverseNew); this.addSubCommand(this.cmdUsysUniverseDel); this.addSubCommand(this.cmdUsysUniverseClear); + // Aliases + this.addAliases("u", "universe"); + + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_UNIVERSE.node)); } - - @Override - public void perform() - { - this.getCommandChain().add(this); - HelpCommand.getInstance().execute(this.sender, this.args, this.commandChain); - } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseClear.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseClear.java index 15591546..dbb6a1bc 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseClear.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseClear.java @@ -1,24 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysUniverseClear extends MCoreCommand +public class CmdMCoreUsysUniverseClear extends MCommand { - public CmdMCoreUsysUniverseClear(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysUniverseClear() { - super(aliases); + // Aliases + this.addAliases("c", "clear"); + + // Args this.addRequiredArg("universe"); this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_UNIVERSE_CLEAR.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -43,4 +54,5 @@ public class CmdMCoreUsysUniverseClear extends MCoreCommand msg("No universe %s exists in multiverse %s.", universe, multiverse.getId()); } } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseDel.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseDel.java index e4260e2f..4bc07033 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseDel.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseDel.java @@ -1,24 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysUniverseDel extends MCoreCommand +public class CmdMCoreUsysUniverseDel extends MCommand { - public CmdMCoreUsysUniverseDel(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysUniverseDel() { - super(aliases); + // Aliases + this.addAliases("d", "del"); + + // Args this.addRequiredArg("universe"); this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_MULTIVERSE_DEL.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -44,4 +55,5 @@ public class CmdMCoreUsysUniverseDel extends MCoreCommand msg("Deleted universe %s in multiverse %s.", universe, multiverse.getId()); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseNew.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseNew.java index cfa376c9..4fd0a9de 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseNew.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysUniverseNew.java @@ -1,23 +1,34 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysUniverseNew extends MCoreCommand +public class CmdMCoreUsysUniverseNew extends MCommand { - public CmdMCoreUsysUniverseNew(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysUniverseNew() { - super(aliases); + // Aliases + this.addAliases("n", "new"); + + // Args this.addRequiredArg("universe"); this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_UNIVERSE_NEW.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -36,4 +47,5 @@ public class CmdMCoreUsysUniverseNew extends MCoreCommand msg("Created universe %s in multiverse %s.", universe, multiverse.getId()); } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysWorld.java b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysWorld.java index 79b4c915..aec56dd0 100644 --- a/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysWorld.java +++ b/src/com/massivecraft/mcore/mcorecmd/CmdMCoreUsysWorld.java @@ -1,24 +1,35 @@ package com.massivecraft.mcore.mcorecmd; -import java.util.List; - import com.massivecraft.mcore.Multiverse; import com.massivecraft.mcore.MCorePerm; +import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.cmd.arg.ARMultiverse; import com.massivecraft.mcore.cmd.req.ReqHasPerm; -public class CmdMCoreUsysWorld extends MCoreCommand +public class CmdMCoreUsysWorld extends MCommand { - public CmdMCoreUsysWorld(List aliases) + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMCoreUsysWorld() { - super(aliases); + // Aliases + this.addAliases("w", "world"); + + // Args this.addRequiredArg("world"); this.addRequiredArg("universe"); this.addRequiredArg("multiverse"); + // Requirements this.addRequirements(ReqHasPerm.get(MCorePerm.CMD_MCORE_USYS_WORLD.node)); } + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + @Override public void perform() { @@ -45,4 +56,5 @@ public class CmdMCoreUsysWorld extends MCoreCommand msg("World %s is already in universe %s in multiverse %s.", worldName, universe, multiverse.getId()); } } + } diff --git a/src/com/massivecraft/mcore/mcorecmd/MCoreCommand.java b/src/com/massivecraft/mcore/mcorecmd/MCoreCommand.java deleted file mode 100644 index 6cff8d05..00000000 --- a/src/com/massivecraft/mcore/mcorecmd/MCoreCommand.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.massivecraft.mcore.mcorecmd; - -import java.util.List; - -import com.massivecraft.mcore.cmd.MCommand; - -public abstract class MCoreCommand extends MCommand -{ - public MCoreCommand(List aliases) - { - this.setAliases(aliases); - } -} diff --git a/src/com/massivecraft/mcore/mixin/TeleportMixinCauseEngine.java b/src/com/massivecraft/mcore/mixin/EngineTeleportMixinCause.java similarity index 80% rename from src/com/massivecraft/mcore/mixin/TeleportMixinCauseEngine.java rename to src/com/massivecraft/mcore/mixin/EngineTeleportMixinCause.java index 362b462b..d950350d 100644 --- a/src/com/massivecraft/mcore/mixin/TeleportMixinCauseEngine.java +++ b/src/com/massivecraft/mcore/mixin/EngineTeleportMixinCause.java @@ -7,28 +7,30 @@ import java.util.concurrent.ConcurrentHashMap; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.plugin.Plugin; +import com.massivecraft.mcore.EngineAbstract; import com.massivecraft.mcore.MCore; -public class TeleportMixinCauseEngine implements Listener +public class EngineTeleportMixinCause extends EngineAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - private static TeleportMixinCauseEngine i = new TeleportMixinCauseEngine(); - public static TeleportMixinCauseEngine get() { return i; } - public TeleportMixinCauseEngine() {} + private static EngineTeleportMixinCause i = new EngineTeleportMixinCause(); + public static EngineTeleportMixinCause get() { return i; } + public EngineTeleportMixinCause() {} // -------------------------------------------- // - // SETUP + // OVERRIDE // -------------------------------------------- // - public void setup() + @Override + public Plugin getPlugin() { - Bukkit.getPluginManager().registerEvents(this, MCore.get()); + return MCore.get(); } // -------------------------------------------- // @@ -70,4 +72,4 @@ public class TeleportMixinCauseEngine implements Listener }); } -} \ No newline at end of file +} diff --git a/src/com/massivecraft/mcore/mixin/TeleportMixinAbstract.java b/src/com/massivecraft/mcore/mixin/TeleportMixinAbstract.java index 1890c73d..80e5c504 100644 --- a/src/com/massivecraft/mcore/mixin/TeleportMixinAbstract.java +++ b/src/com/massivecraft/mcore/mixin/TeleportMixinAbstract.java @@ -30,7 +30,7 @@ public abstract class TeleportMixinAbstract implements TeleportMixin @Override public boolean isCausedByMixin(PlayerTeleportEvent event) { - return TeleportMixinCauseEngine.get().isCausedByTeleportMixin(event); + return EngineTeleportMixinCause.get().isCausedByTeleportMixin(event); } // -------------------------------------------- // diff --git a/src/com/massivecraft/mcore/mixin/TeleportMixinDefault.java b/src/com/massivecraft/mcore/mixin/TeleportMixinDefault.java index 8bb6b69d..2b1acc25 100644 --- a/src/com/massivecraft/mcore/mixin/TeleportMixinDefault.java +++ b/src/com/massivecraft/mcore/mixin/TeleportMixinDefault.java @@ -49,9 +49,9 @@ public class TeleportMixinDefault extends TeleportMixinAbstract if (vehicle != null) vehicle.eject(); // Do the teleport - TeleportMixinCauseEngine.get().setMixinCausedTeleportIncoming(true); + EngineTeleportMixinCause.get().setMixinCausedTeleportIncoming(true); player.teleport(location); - TeleportMixinCauseEngine.get().setMixinCausedTeleportIncoming(false); + EngineTeleportMixinCause.get().setMixinCausedTeleportIncoming(false); // Bukkit velocity Vector velocity = null; diff --git a/src/com/massivecraft/mcore/mixin/TeleporterException.java b/src/com/massivecraft/mcore/mixin/TeleporterException.java index 1913ff58..784d675d 100644 --- a/src/com/massivecraft/mcore/mixin/TeleporterException.java +++ b/src/com/massivecraft/mcore/mixin/TeleporterException.java @@ -6,7 +6,7 @@ public class TeleporterException extends Exception public TeleporterException() { - super(); + } public TeleporterException(String message) diff --git a/src/com/massivecraft/mcore/store/MStore.java b/src/com/massivecraft/mcore/store/MStore.java index a8b3882b..1910350b 100644 --- a/src/com/massivecraft/mcore/store/MStore.java +++ b/src/com/massivecraft/mcore/store/MStore.java @@ -90,6 +90,11 @@ public class MStore return db; } + public static Db getDb() + { + return getDb(ConfServer.dburi); + } + public static Db getDb(URI uri) { String scheme = uri.getScheme(); diff --git a/src/com/massivecraft/mcore/store/accessor/Accessor.java b/src/com/massivecraft/mcore/store/accessor/Accessor.java index 2353fedf..ccc3c307 100644 --- a/src/com/massivecraft/mcore/store/accessor/Accessor.java +++ b/src/com/massivecraft/mcore/store/accessor/Accessor.java @@ -17,4 +17,5 @@ public final class Accessor } return ret; } + } diff --git a/src/com/massivecraft/mcore/store/accessor/AccessorUtil.java b/src/com/massivecraft/mcore/store/accessor/AccessorUtil.java index f53c347e..73a86ce1 100644 --- a/src/com/massivecraft/mcore/store/accessor/AccessorUtil.java +++ b/src/com/massivecraft/mcore/store/accessor/AccessorUtil.java @@ -171,5 +171,4 @@ public class AccessorUtil return new PropertyAccessorComposite(getter, setter); } - } diff --git a/src/com/massivecraft/mcore/store/accessor/EntityAccessorAbstract.java b/src/com/massivecraft/mcore/store/accessor/EntityAccessorAbstract.java index 7040276d..dee4b766 100644 --- a/src/com/massivecraft/mcore/store/accessor/EntityAccessorAbstract.java +++ b/src/com/massivecraft/mcore/store/accessor/EntityAccessorAbstract.java @@ -48,4 +48,5 @@ public abstract class EntityAccessorAbstract implements EntityAccessor { this.copy(from, to, DEFAULT_TRANSPARENT); } + } diff --git a/src/com/massivecraft/mcore/store/accessor/EntityAccessorPerProperty.java b/src/com/massivecraft/mcore/store/accessor/EntityAccessorPerProperty.java index d9195b54..3d2f1914 100644 --- a/src/com/massivecraft/mcore/store/accessor/EntityAccessorPerProperty.java +++ b/src/com/massivecraft/mcore/store/accessor/EntityAccessorPerProperty.java @@ -82,4 +82,5 @@ public class EntityAccessorPerProperty extends EntityAccessorAbstract { return this.propertyAccessors.keySet(); } + } diff --git a/src/com/massivecraft/mcore/store/accessor/PropertyAccessorComposite.java b/src/com/massivecraft/mcore/store/accessor/PropertyAccessorComposite.java index 39521da0..772474f7 100644 --- a/src/com/massivecraft/mcore/store/accessor/PropertyAccessorComposite.java +++ b/src/com/massivecraft/mcore/store/accessor/PropertyAccessorComposite.java @@ -22,4 +22,5 @@ public class PropertyAccessorComposite implements PropertyAccessor { return this.getter.get(entity); } + } diff --git a/src/com/massivecraft/mcore/teleport/ScheduledTeleportEngine.java b/src/com/massivecraft/mcore/teleport/EngineScheduledTeleport.java similarity index 80% rename from src/com/massivecraft/mcore/teleport/ScheduledTeleportEngine.java rename to src/com/massivecraft/mcore/teleport/EngineScheduledTeleport.java index 1804d617..d0da9349 100644 --- a/src/com/massivecraft/mcore/teleport/ScheduledTeleportEngine.java +++ b/src/com/massivecraft/mcore/teleport/EngineScheduledTeleport.java @@ -3,25 +3,25 @@ package com.massivecraft.mcore.teleport; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.plugin.Plugin; +import com.massivecraft.mcore.EngineAbstract; import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.mixin.Mixin; import com.massivecraft.mcore.util.MUtil; import com.massivecraft.mcore.util.SenderUtil; -public class ScheduledTeleportEngine implements Listener, Runnable +public class EngineScheduledTeleport extends EngineAbstract { // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - private static ScheduledTeleportEngine i = new ScheduledTeleportEngine(); - public static ScheduledTeleportEngine get() { return i; } + private static EngineScheduledTeleport i = new EngineScheduledTeleport(); + public static EngineScheduledTeleport get() { return i; } // -------------------------------------------- // // SCHEDULED TELEPORT INDEX @@ -56,13 +56,32 @@ public class ScheduledTeleportEngine implements Listener, Runnable } // -------------------------------------------- // - // SETUP + // OVERRIDE // -------------------------------------------- // - public void setup() + @Override + public Plugin getPlugin() { - Bukkit.getPluginManager().registerEvents(this, MCore.get()); - Bukkit.getScheduler().scheduleSyncRepeatingTask(MCore.get(), this, 1, 1); + return MCore.get(); + } + + @Override + public Long getPeriod() + { + return 1L; + } + + @Override + public void run() + { + long now = System.currentTimeMillis(); + for (ScheduledTeleport st : teleporteeIdToScheduledTeleport.values()) + { + if (st.isDue(now)) + { + st.run(); + } + } } // -------------------------------------------- // @@ -85,22 +104,5 @@ public class ScheduledTeleportEngine implements Listener, Runnable // ... and inform the teleportee. Mixin.msg(scheduledTeleport.getTeleporteeId(), "Cancelled teleport to "+scheduledTeleport.getDestinationDesc()+"."); } - - // -------------------------------------------- // - // LISTENER - // -------------------------------------------- // - - @Override - public void run() - { - long now = System.currentTimeMillis(); - for (ScheduledTeleport st : teleporteeIdToScheduledTeleport.values()) - { - if (st.isDue(now)) - { - st.run(); - } - } - } } diff --git a/src/com/massivecraft/mcore/teleport/ScheduledTeleport.java b/src/com/massivecraft/mcore/teleport/ScheduledTeleport.java index 9dd9a1c1..810422eb 100644 --- a/src/com/massivecraft/mcore/teleport/ScheduledTeleport.java +++ b/src/com/massivecraft/mcore/teleport/ScheduledTeleport.java @@ -45,17 +45,17 @@ public class ScheduledTeleport implements Runnable public boolean isScheduled() { - return ScheduledTeleportEngine.get().isScheduled(this); + return EngineScheduledTeleport.get().isScheduled(this); } public ScheduledTeleport schedule() { - return ScheduledTeleportEngine.get().schedule(this); + return EngineScheduledTeleport.get().schedule(this); } public boolean unschedule() { - return ScheduledTeleportEngine.get().unschedule(this); + return EngineScheduledTeleport.get().unschedule(this); } // -------------------------------------------- // diff --git a/src/com/massivecraft/mcore/util/BiomeUtil.java b/src/com/massivecraft/mcore/util/BiomeUtil.java index 1bd1be9f..2bddab64 100644 --- a/src/com/massivecraft/mcore/util/BiomeUtil.java +++ b/src/com/massivecraft/mcore/util/BiomeUtil.java @@ -63,4 +63,5 @@ public class BiomeUtil { return getBiomeIdAndNameAt(world, x, z).getValue(); } + } diff --git a/src/com/massivecraft/mcore/util/BukkitCommandUtil.java b/src/com/massivecraft/mcore/util/BukkitCommandUtil.java deleted file mode 100644 index b8784194..00000000 --- a/src/com/massivecraft/mcore/util/BukkitCommandUtil.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.massivecraft.mcore.util; - -import java.lang.reflect.Field; -import java.util.Map; - -import org.bukkit.Bukkit; -import org.bukkit.command.Command; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_6_R3.CraftServer; - -public class BukkitCommandUtil -{ - public static SimpleCommandMap getBukkitCommandMap() - { - CraftServer craftServer = (CraftServer)Bukkit.getServer(); - return craftServer.getCommandMap(); - } - - @SuppressWarnings("unchecked") - public static Map getKnownCommandsFromSimpleCommandMap(SimpleCommandMap scm) - { - try - { - Field field = SimpleCommandMap.class.getDeclaredField("knownCommands"); - field.setAccessible(true); - return (Map) field.get(scm); - } - catch (Exception e) - { - return null; - } - } -} diff --git a/src/com/massivecraft/mcore/util/ClassLoadHack.java b/src/com/massivecraft/mcore/util/ClassLoadHack.java index 84f43a67..d335fadd 100644 --- a/src/com/massivecraft/mcore/util/ClassLoadHack.java +++ b/src/com/massivecraft/mcore/util/ClassLoadHack.java @@ -47,4 +47,5 @@ public class ClassLoadHack return false; } } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/util/DiscUtil.java b/src/com/massivecraft/mcore/util/DiscUtil.java index 6e53a966..04e9119b 100644 --- a/src/com/massivecraft/mcore/util/DiscUtil.java +++ b/src/com/massivecraft/mcore/util/DiscUtil.java @@ -159,4 +159,4 @@ public class DiscUtil } } -} \ No newline at end of file +} diff --git a/src/com/massivecraft/mcore/util/IntervalUtil.java b/src/com/massivecraft/mcore/util/IntervalUtil.java index a85dedf6..506b00fa 100644 --- a/src/com/massivecraft/mcore/util/IntervalUtil.java +++ b/src/com/massivecraft/mcore/util/IntervalUtil.java @@ -10,6 +10,7 @@ public class IntervalUtil // -------------------------------------------- // // PARSING SIMPLE // -------------------------------------------- // + public static Double parseDouble(String str, Double def) { if (str == null) return def; @@ -144,4 +145,5 @@ public class IntervalUtil return parseInteger(data, def); } } + } diff --git a/src/com/massivecraft/mcore/util/InventoryUtil.java b/src/com/massivecraft/mcore/util/InventoryUtil.java index 1c5f45e5..21378923 100644 --- a/src/com/massivecraft/mcore/util/InventoryUtil.java +++ b/src/com/massivecraft/mcore/util/InventoryUtil.java @@ -6,6 +6,7 @@ import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventoryCustom; import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventoryPlayer; +import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; @@ -25,19 +26,21 @@ public class InventoryUtil // -------------------------------------------- // @SuppressWarnings("deprecation") - public static void update(Player player) + public static void update(HumanEntity human) { + if (!(human instanceof Player)) return; + Player player = (Player)human; player.updateInventory(); } - public static void updateSoon(final Player player) + public static void updateSoon(final HumanEntity human) { Bukkit.getScheduler().scheduleSyncDelayedTask(MCore.get(), new Runnable() { @Override public void run() { - update(player); + update(human); } }); } diff --git a/src/com/massivecraft/mcore/util/LibLoader.java b/src/com/massivecraft/mcore/util/LibLoader.java index 812cd5c0..b2c9f6d1 100644 --- a/src/com/massivecraft/mcore/util/LibLoader.java +++ b/src/com/massivecraft/mcore/util/LibLoader.java @@ -40,4 +40,5 @@ public class LibLoader { return new File("./lib/"+filename); } -} \ No newline at end of file + +} diff --git a/src/com/massivecraft/mcore/util/LightUtil.java b/src/com/massivecraft/mcore/util/LightUtil.java index ec6c3757..9f299130 100644 --- a/src/com/massivecraft/mcore/util/LightUtil.java +++ b/src/com/massivecraft/mcore/util/LightUtil.java @@ -38,4 +38,5 @@ public class LightUtil WorldServer worldServer = cworld.getHandle(); worldServer.A(x, y, z); } + } diff --git a/src/com/massivecraft/mcore/util/MUtil.java b/src/com/massivecraft/mcore/util/MUtil.java index 0ba1b2f9..b925fb84 100644 --- a/src/com/massivecraft/mcore/util/MUtil.java +++ b/src/com/massivecraft/mcore/util/MUtil.java @@ -45,7 +45,7 @@ import org.bukkit.potion.Potion; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import com.massivecraft.mcore.InternalListener; +import com.massivecraft.mcore.EngineMainMCore; import com.massivecraft.mcore.MCore; import com.massivecraft.mcore.EngineWorldNameSet; import com.massivecraft.mcore.util.extractor.Extractor; @@ -291,7 +291,7 @@ public class MUtil public static String kickReason(PlayerQuitEvent event) { - return InternalListener.kickedPlayerReasons.get(event.getPlayer().getName()); + return EngineMainMCore.kickedPlayerReasons.get(event.getPlayer().getName()); } public static boolean causedByKick(PlayerQuitEvent event) @@ -647,4 +647,5 @@ public class MUtil registerExtractor(String.class, "moneyUniverse", ExtractorMoneyUniverse.get()); registerExtractor(String.class, "accountId", ExtractorPlayerName.get()); } + } diff --git a/src/com/massivecraft/mcore/util/PermUtil.java b/src/com/massivecraft/mcore/util/PermUtil.java index ceb342aa..156cc0c8 100644 --- a/src/com/massivecraft/mcore/util/PermUtil.java +++ b/src/com/massivecraft/mcore/util/PermUtil.java @@ -395,4 +395,5 @@ public class PermUtil } return ret; } + } diff --git a/src/com/massivecraft/mcore/util/TextWrapper.java b/src/com/massivecraft/mcore/util/TextWrapper.java index 9aac1fb4..edb78b52 100644 --- a/src/com/massivecraft/mcore/util/TextWrapper.java +++ b/src/com/massivecraft/mcore/util/TextWrapper.java @@ -104,4 +104,5 @@ public class TextWrapper // Return it split return out.toString().split("\n"); } + }