From 99a0b258857c4ee76842c2a2e6a0695df90e5fcd Mon Sep 17 00:00:00 2001 From: alisolarflare Date: Mon, 22 May 2017 14:51:32 -0400 Subject: [PATCH] Changed to the new command system --- .../presents/architecture/Component.java | 140 +++++++++--------- .../architecture/commands/BaseCommand.java | 2 +- .../architecture/commands/ModCommand.java | 32 ++-- .../architecture/commands/PlayerCommand.java | 29 +--- .../commands/UniversalCommand.java | 16 +- .../presents/hello/commands/HelloCommand.java | 7 +- .../presents/hello/commands/HelloLoad.java | 5 +- .../presents/hello/commands/HelloSave.java | 5 +- .../presents/hello/commands/HelloTime.java | 7 +- .../presents/hello/effects/HelloBlock.java | 3 - .../presents/hello/effects/HelloCow.java | 13 +- .../presents/hello/effects/HelloItem.java | 16 +- .../hello/effects/HelloMagicPotato.java | 5 +- .../presents/hello/effects/HelloParticle.java | 2 + .../presents/hello/effects/HelloSound.java | 5 +- 15 files changed, 118 insertions(+), 169 deletions(-) diff --git a/src/main/java/buttondevteam/presents/architecture/Component.java b/src/main/java/buttondevteam/presents/architecture/Component.java index cf79f87..0d6a98c 100644 --- a/src/main/java/buttondevteam/presents/architecture/Component.java +++ b/src/main/java/buttondevteam/presents/architecture/Component.java @@ -1,70 +1,70 @@ -package buttondevteam.presents.architecture; - -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.event.Listener; -import org.bukkit.plugin.java.JavaPlugin; - -import buttondevteam.lib.TBMCCoreAPI; -import buttondevteam.lib.chat.TBMCChatAPI; -import buttondevteam.presents.architecture.commands.BaseCommand; - -/** - * A Module class allows the compacting of projects into one single package. - * - * Each feature can have its commands and listeners coded into the Module class, - * as well as any other pointers to memory units, or other classes in the package. - * - * This package can then be moved from eclipse project to eclipse project smoothly, - * as long as the destination project has the Module abstract class, and as long as all dependencies are either - * contained in the moved package, or moved along with it. - * @author Alisolarflare - * - */ -public abstract class Component{ - /** - * Registers the module, when called by the JavaPlugin class. Call - * registerCommand() and registerListener() within this method. - * - * @param plugin Plugin class called to register commands and listeners - */ - public abstract void register(JavaPlugin plugin); - /** - * Registers a TBMCCommand to the plugin - * @param plugin Main plugin responsible for stuff - * @param label Name of the command in plugin.yml - * @param commandExecutor Custom coded CommandExecutor class - */ - protected void registerCommand(JavaPlugin plugin, BaseCommand commandBase){ - TBMCChatAPI.AddCommand(plugin, commandBase); - //plugin.getCommand(commandBase.getClass().getSimpleName().toString()).setExecutor(commandBase); - } - /** - * Registers a Listener to this plugin - * @param plugin Main plugin responsible for stuff - * @param label Name of the command in plugin.yml - * @param commandExecutor Custom coded CommandExecutor class - */ - protected Listener registerListener(JavaPlugin plugin, Listener listener){ - TBMCCoreAPI.RegisterEventsForExceptions(listener, plugin); - return listener; - } - - public void saveData(FileConfiguration config, String pathToData, Object data){ - config.set("moduledata." + this.getClassName() + "." + pathToData, data); - } - public Object getData(FileConfiguration config, String pathToData, Object data){ - return config.get("moduledata." + this.getClassName() + "." + pathToData, data); - } - - public String getClassName(){ - Class enclosingClass = getClass().getEnclosingClass(); - String className = "nullModule"; - if (enclosingClass != null) { - className = (enclosingClass.getName()); - } else { - className = (getClass().getName()); - } - return className; - } - -} +package buttondevteam.presents.architecture; + +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.event.Listener; +import org.bukkit.plugin.java.JavaPlugin; + +import buttondevteam.lib.TBMCCoreAPI; +import buttondevteam.lib.chat.TBMCChatAPI; +import buttondevteam.lib.chat.TBMCCommandBase; + +/** + * A Module class allows the compacting of projects into one single package. + * + * Each feature can have its commands and listeners coded into the Module class, + * as well as any other pointers to memory units, or other classes in the package. + * + * This package can then be moved from eclipse project to eclipse project smoothly, + * as long as the destination project has the Module abstract class, and as long as all dependencies are either + * contained in the moved package, or moved along with it. + * @author Alisolarflare + * + */ +public abstract class Component{ + /** + * Registers the module, when called by the JavaPlugin class. Call + * registerCommand() and registerListener() within this method. + * + * @param plugin Plugin class called to register commands and listeners + */ + public abstract void register(JavaPlugin plugin); + /** + * Registers a TBMCCommand to the plugin + * @param plugin Main plugin responsible for stuff + * @param label Name of the command in plugin.yml + * @param commandExecutor Custom coded CommandExecutor class + */ + protected void registerCommand(JavaPlugin plugin, TBMCCommandBase commandBase){ + TBMCChatAPI.AddCommand(plugin, commandBase); + //plugin.getCommand(commandBase.getClass().getSimpleName().toString()).setExecutor(commandBase); + } + /** + * Registers a Listener to this plugin + * @param plugin Main plugin responsible for stuff + * @param label Name of the command in plugin.yml + * @param commandExecutor Custom coded CommandExecutor class + */ + protected Listener registerListener(JavaPlugin plugin, Listener listener){ + TBMCCoreAPI.RegisterEventsForExceptions(listener, plugin); + return listener; + } + + public void saveData(FileConfiguration config, String pathToData, Object data){ + config.set("moduledata." + this.getClassName() + "." + pathToData, data); + } + public Object getData(FileConfiguration config, String pathToData, Object data){ + return config.get("moduledata." + this.getClassName() + "." + pathToData, data); + } + + public String getClassName(){ + Class enclosingClass = getClass().getEnclosingClass(); + String className = "nullModule"; + if (enclosingClass != null) { + className = (enclosingClass.getName()); + } else { + className = (getClass().getName()); + } + return className; + } + +} diff --git a/src/main/java/buttondevteam/presents/architecture/commands/BaseCommand.java b/src/main/java/buttondevteam/presents/architecture/commands/BaseCommand.java index 13da81d..7853f47 100644 --- a/src/main/java/buttondevteam/presents/architecture/commands/BaseCommand.java +++ b/src/main/java/buttondevteam/presents/architecture/commands/BaseCommand.java @@ -8,8 +8,8 @@ import buttondevteam.lib.chat.TBMCCommandBase; public abstract class BaseCommand extends TBMCCommandBase implements CommandExecutor{ + /**replaces CommandExecutor functionality**/ public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - // TODO Auto-generated method stub return OnCommand(sender, label, args); } @Override diff --git a/src/main/java/buttondevteam/presents/architecture/commands/ModCommand.java b/src/main/java/buttondevteam/presents/architecture/commands/ModCommand.java index eaafbbf..473b121 100644 --- a/src/main/java/buttondevteam/presents/architecture/commands/ModCommand.java +++ b/src/main/java/buttondevteam/presents/architecture/commands/ModCommand.java @@ -1,17 +1,15 @@ -package buttondevteam.presents.architecture.commands; - -public abstract class ModCommand extends PlayerCommand{ - - @Override - public String[] GetHelpText(String alias){ - return new String[] { - "This command doesn't have help text, ask a dev to add one", - "If you're a dev, write the help text you lazy bastard. -Ali" - }; - } - - @Override - public boolean GetModOnly() { - return true; - } -} +package buttondevteam.presents.architecture.commands; + +import buttondevteam.lib.chat.CommandClass; + +@CommandClass(modOnly = true) +public abstract class ModCommand extends PlayerCommand{ + + @Override + public String[] GetHelpText(String alias){ + return new String[] { + "This command doesn't have help text, ask a dev to add one", + "If you're a dev, write the help text you lazy bastard. -Ali" + }; + } +} diff --git a/src/main/java/buttondevteam/presents/architecture/commands/PlayerCommand.java b/src/main/java/buttondevteam/presents/architecture/commands/PlayerCommand.java index f374db4..1175b54 100644 --- a/src/main/java/buttondevteam/presents/architecture/commands/PlayerCommand.java +++ b/src/main/java/buttondevteam/presents/architecture/commands/PlayerCommand.java @@ -1,30 +1,15 @@ package buttondevteam.presents.architecture.commands; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -public abstract class PlayerCommand extends BaseCommand{ - /**replaces CommandExecutor functionality*/ - @Override - public boolean onCommand(CommandSender sender, Command command, String string, String[] args){ - return OnCommand(sender, string, args); - } - /**replaces TBMCCommandBase functionality*/ - @Override - public boolean OnCommand(CommandSender sender, String alias, String[] args){ - return OnCommand((Player) sender, alias, args); - } - public abstract boolean OnCommand(Player player, String alias, String[] args); - @Override - public boolean GetPlayerOnly() { - return true; - } +import buttondevteam.lib.chat.CommandClass; +import buttondevteam.lib.chat.PlayerCommandBase; - @Override - public boolean GetModOnly() { - return false; - } +@CommandClass(modOnly = false) +public abstract class PlayerCommand extends PlayerCommandBase{ + + public abstract boolean OnCommand(Player player, String alias, String[] args); + @Override public String[] GetHelpText(String alias){ return new String[] { diff --git a/src/main/java/buttondevteam/presents/architecture/commands/UniversalCommand.java b/src/main/java/buttondevteam/presents/architecture/commands/UniversalCommand.java index 183e65e..6e1f308 100644 --- a/src/main/java/buttondevteam/presents/architecture/commands/UniversalCommand.java +++ b/src/main/java/buttondevteam/presents/architecture/commands/UniversalCommand.java @@ -1,21 +1,13 @@ package buttondevteam.presents.architecture.commands; +import buttondevteam.lib.chat.CommandClass; + +@CommandClass(modOnly = false) public abstract class UniversalCommand extends BaseCommand{ @Override public String[] GetHelpText(String alias){ return new String[] { "This command doesn't have help text. ", }; - } - - public boolean GetPlayerOnly() { - // TODO Auto-generated method stub - return false; - } - - public boolean GetModOnly() { - // TODO Auto-generated method stub - return false; - } - + } } diff --git a/src/main/java/buttondevteam/presents/hello/commands/HelloCommand.java b/src/main/java/buttondevteam/presents/hello/commands/HelloCommand.java index 551bae5..a6fb4e8 100644 --- a/src/main/java/buttondevteam/presents/hello/commands/HelloCommand.java +++ b/src/main/java/buttondevteam/presents/hello/commands/HelloCommand.java @@ -2,8 +2,10 @@ package buttondevteam.presents.hello.commands; import org.bukkit.command.CommandSender; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.UniversalCommand; +@CommandClass(modOnly = false, path="hello command") public class HelloCommand extends UniversalCommand { @Override @@ -11,9 +13,4 @@ public class HelloCommand extends UniversalCommand { sender.sendMessage("Hello World!"); return false; } - @Override - public String GetCommandPath(){ - return "hello command"; - - } } diff --git a/src/main/java/buttondevteam/presents/hello/commands/HelloLoad.java b/src/main/java/buttondevteam/presents/hello/commands/HelloLoad.java index b367cf7..af24922 100644 --- a/src/main/java/buttondevteam/presents/hello/commands/HelloLoad.java +++ b/src/main/java/buttondevteam/presents/hello/commands/HelloLoad.java @@ -6,8 +6,10 @@ import java.util.List; import org.bukkit.command.CommandSender; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.UniversalCommand; +@CommandClass(path = "hello load") public class HelloLoad extends UniversalCommand { @Override @@ -21,7 +23,4 @@ public class HelloLoad extends UniversalCommand { } return true; } - public String GetCommandPath(){ - return "hello load"; - } } diff --git a/src/main/java/buttondevteam/presents/hello/commands/HelloSave.java b/src/main/java/buttondevteam/presents/hello/commands/HelloSave.java index 47cc689..f741b02 100644 --- a/src/main/java/buttondevteam/presents/hello/commands/HelloSave.java +++ b/src/main/java/buttondevteam/presents/hello/commands/HelloSave.java @@ -4,8 +4,10 @@ import java.util.Arrays; import org.bukkit.command.CommandSender; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.UniversalCommand; +@CommandClass(path = "hello save") public class HelloSave extends UniversalCommand { @Override public boolean OnCommand(CommandSender sender, String alias, String[] args) { @@ -23,7 +25,4 @@ public class HelloSave extends UniversalCommand { } return false; } - public String GetCommandPath(){ - return "hello save"; - } } diff --git a/src/main/java/buttondevteam/presents/hello/commands/HelloTime.java b/src/main/java/buttondevteam/presents/hello/commands/HelloTime.java index 0fcdf25..ab90644 100644 --- a/src/main/java/buttondevteam/presents/hello/commands/HelloTime.java +++ b/src/main/java/buttondevteam/presents/hello/commands/HelloTime.java @@ -6,8 +6,9 @@ import java.util.Date; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.UniversalCommand; - +@CommandClass(path = "hello time") public class HelloTime extends UniversalCommand { final String path = "hellotime.lastincident"; @@ -34,9 +35,5 @@ public class HelloTime extends UniversalCommand { SimpleDateFormat dateformatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z"); return dateformatter.format(dateTime); } - - public String GetCommandPath(){ - return "hello time"; - } } diff --git a/src/main/java/buttondevteam/presents/hello/effects/HelloBlock.java b/src/main/java/buttondevteam/presents/hello/effects/HelloBlock.java index e53d881..3518011 100644 --- a/src/main/java/buttondevteam/presents/hello/effects/HelloBlock.java +++ b/src/main/java/buttondevteam/presents/hello/effects/HelloBlock.java @@ -16,8 +16,5 @@ public class HelloBlock extends PlayerCommand { return false; } - public String GetCommandPath(){ - return "hello block"; - } } diff --git a/src/main/java/buttondevteam/presents/hello/effects/HelloCow.java b/src/main/java/buttondevteam/presents/hello/effects/HelloCow.java index 64951c3..6ce0318 100644 --- a/src/main/java/buttondevteam/presents/hello/effects/HelloCow.java +++ b/src/main/java/buttondevteam/presents/hello/effects/HelloCow.java @@ -3,8 +3,9 @@ package buttondevteam.presents.hello.effects; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.PlayerCommand; - +@CommandClass(path = "hello cow") public class HelloCow extends PlayerCommand { @Override @@ -15,14 +16,4 @@ public class HelloCow extends PlayerCommand { ); return true; } - - @Override - public boolean GetModOnly() { - // TODO Auto-generated method stub - return true; - } - @Override - public String GetCommandPath(){ - return "hello cow"; - } } diff --git a/src/main/java/buttondevteam/presents/hello/effects/HelloItem.java b/src/main/java/buttondevteam/presents/hello/effects/HelloItem.java index a50bdf0..a695d1c 100644 --- a/src/main/java/buttondevteam/presents/hello/effects/HelloItem.java +++ b/src/main/java/buttondevteam/presents/hello/effects/HelloItem.java @@ -4,9 +4,11 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import buttondevteam.presents.architecture.commands.PlayerCommand; +import buttondevteam.lib.chat.CommandClass; +import buttondevteam.presents.architecture.commands.ModCommand; -public class HelloItem extends PlayerCommand { +@CommandClass(path = "hello item") +public class HelloItem extends ModCommand { @Override public boolean OnCommand(Player player, String alias, String[] args) { @@ -15,14 +17,6 @@ public class HelloItem extends PlayerCommand { return true; } - @Override - public boolean GetModOnly() { - // TODO Auto-generated method stub - return true; - } - @Override - public String GetCommandPath(){ - return "hello item"; - } + } diff --git a/src/main/java/buttondevteam/presents/hello/effects/HelloMagicPotato.java b/src/main/java/buttondevteam/presents/hello/effects/HelloMagicPotato.java index 51e044a..dc3639a 100644 --- a/src/main/java/buttondevteam/presents/hello/effects/HelloMagicPotato.java +++ b/src/main/java/buttondevteam/presents/hello/effects/HelloMagicPotato.java @@ -8,8 +8,10 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.ModCommand; +@CommandClass(path = "hello magicpotato") public class HelloMagicPotato extends ModCommand { @Override @@ -31,7 +33,4 @@ public class HelloMagicPotato extends ModCommand { return true; } - public String GetCommandPath(){ - return "hello magicpotato"; - } } diff --git a/src/main/java/buttondevteam/presents/hello/effects/HelloParticle.java b/src/main/java/buttondevteam/presents/hello/effects/HelloParticle.java index 996e28e..2c82fe7 100644 --- a/src/main/java/buttondevteam/presents/hello/effects/HelloParticle.java +++ b/src/main/java/buttondevteam/presents/hello/effects/HelloParticle.java @@ -3,8 +3,10 @@ package buttondevteam.presents.hello.effects; import org.bukkit.Particle; import org.bukkit.entity.Player; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.PlayerCommand; +@CommandClass(path = "hello particle") public class HelloParticle extends PlayerCommand { @Override diff --git a/src/main/java/buttondevteam/presents/hello/effects/HelloSound.java b/src/main/java/buttondevteam/presents/hello/effects/HelloSound.java index 7d82f4e..51f934d 100644 --- a/src/main/java/buttondevteam/presents/hello/effects/HelloSound.java +++ b/src/main/java/buttondevteam/presents/hello/effects/HelloSound.java @@ -3,8 +3,10 @@ package buttondevteam.presents.hello.effects; import org.bukkit.Sound; import org.bukkit.entity.Player; +import buttondevteam.lib.chat.CommandClass; import buttondevteam.presents.architecture.commands.PlayerCommand; +@CommandClass(path = "hello sound") public class HelloSound extends PlayerCommand{ @Override @@ -31,8 +33,5 @@ public class HelloSound extends PlayerCommand{ return false; } - public String GetCommandPath(){ - return "hello sound"; - } }