Changed to the new command system

This commit is contained in:
alisolarflare 2017-05-22 14:51:32 -04:00
parent 9b145bef9a
commit 99a0b25885
15 changed files with 118 additions and 169 deletions

View file

@ -1,70 +1,70 @@
package buttondevteam.presents.architecture; package buttondevteam.presents.architecture;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import buttondevteam.lib.TBMCCoreAPI; import buttondevteam.lib.TBMCCoreAPI;
import buttondevteam.lib.chat.TBMCChatAPI; import buttondevteam.lib.chat.TBMCChatAPI;
import buttondevteam.presents.architecture.commands.BaseCommand; import buttondevteam.lib.chat.TBMCCommandBase;
/** /**
* A Module class allows the compacting of projects into one single package. * 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, * 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. * 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, * 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 * 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. * contained in the moved package, or moved along with it.
* @author Alisolarflare * @author Alisolarflare
* *
*/ */
public abstract class Component{ public abstract class Component{
/** /**
* Registers the module, when called by the JavaPlugin class. Call * Registers the module, when called by the JavaPlugin class. Call
* registerCommand() and registerListener() within this method. * registerCommand() and registerListener() within this method.
* *
* @param plugin Plugin class called to register commands and listeners * @param plugin Plugin class called to register commands and listeners
*/ */
public abstract void register(JavaPlugin plugin); public abstract void register(JavaPlugin plugin);
/** /**
* Registers a TBMCCommand to the plugin * Registers a TBMCCommand to the plugin
* @param plugin Main plugin responsible for stuff * @param plugin Main plugin responsible for stuff
* @param label Name of the command in plugin.yml * @param label Name of the command in plugin.yml
* @param commandExecutor Custom coded CommandExecutor class * @param commandExecutor Custom coded CommandExecutor class
*/ */
protected void registerCommand(JavaPlugin plugin, BaseCommand commandBase){ protected void registerCommand(JavaPlugin plugin, TBMCCommandBase commandBase){
TBMCChatAPI.AddCommand(plugin, commandBase); TBMCChatAPI.AddCommand(plugin, commandBase);
//plugin.getCommand(commandBase.getClass().getSimpleName().toString()).setExecutor(commandBase); //plugin.getCommand(commandBase.getClass().getSimpleName().toString()).setExecutor(commandBase);
} }
/** /**
* Registers a Listener to this plugin * Registers a Listener to this plugin
* @param plugin Main plugin responsible for stuff * @param plugin Main plugin responsible for stuff
* @param label Name of the command in plugin.yml * @param label Name of the command in plugin.yml
* @param commandExecutor Custom coded CommandExecutor class * @param commandExecutor Custom coded CommandExecutor class
*/ */
protected Listener registerListener(JavaPlugin plugin, Listener listener){ protected Listener registerListener(JavaPlugin plugin, Listener listener){
TBMCCoreAPI.RegisterEventsForExceptions(listener, plugin); TBMCCoreAPI.RegisterEventsForExceptions(listener, plugin);
return listener; return listener;
} }
public void saveData(FileConfiguration config, String pathToData, Object data){ public void saveData(FileConfiguration config, String pathToData, Object data){
config.set("moduledata." + this.getClassName() + "." + pathToData, data); config.set("moduledata." + this.getClassName() + "." + pathToData, data);
} }
public Object getData(FileConfiguration config, String pathToData, Object data){ public Object getData(FileConfiguration config, String pathToData, Object data){
return config.get("moduledata." + this.getClassName() + "." + pathToData, data); return config.get("moduledata." + this.getClassName() + "." + pathToData, data);
} }
public String getClassName(){ public String getClassName(){
Class<?> enclosingClass = getClass().getEnclosingClass(); Class<?> enclosingClass = getClass().getEnclosingClass();
String className = "nullModule"; String className = "nullModule";
if (enclosingClass != null) { if (enclosingClass != null) {
className = (enclosingClass.getName()); className = (enclosingClass.getName());
} else { } else {
className = (getClass().getName()); className = (getClass().getName());
} }
return className; return className;
} }
} }

View file

@ -8,8 +8,8 @@ import buttondevteam.lib.chat.TBMCCommandBase;
public abstract class BaseCommand extends TBMCCommandBase implements CommandExecutor{ public abstract class BaseCommand extends TBMCCommandBase implements CommandExecutor{
/**replaces CommandExecutor functionality**/
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
// TODO Auto-generated method stub
return OnCommand(sender, label, args); return OnCommand(sender, label, args);
} }
@Override @Override

View file

@ -1,17 +1,15 @@
package buttondevteam.presents.architecture.commands; package buttondevteam.presents.architecture.commands;
public abstract class ModCommand extends PlayerCommand{ import buttondevteam.lib.chat.CommandClass;
@Override @CommandClass(modOnly = true)
public String[] GetHelpText(String alias){ public abstract class ModCommand extends PlayerCommand{
return new String[] {
"This command doesn't have help text, ask a dev to add one", @Override
"If you're a dev, write the help text you lazy bastard. -Ali" 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; }
}
}

View file

@ -1,30 +1,15 @@
package buttondevteam.presents.architecture.commands; package buttondevteam.presents.architecture.commands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public abstract class PlayerCommand extends BaseCommand{ import buttondevteam.lib.chat.CommandClass;
/**replaces CommandExecutor functionality*/ import buttondevteam.lib.chat.PlayerCommandBase;
@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;
}
@Override @CommandClass(modOnly = false)
public boolean GetModOnly() { public abstract class PlayerCommand extends PlayerCommandBase{
return false;
} public abstract boolean OnCommand(Player player, String alias, String[] args);
@Override @Override
public String[] GetHelpText(String alias){ public String[] GetHelpText(String alias){
return new String[] { return new String[] {

View file

@ -1,21 +1,13 @@
package buttondevteam.presents.architecture.commands; package buttondevteam.presents.architecture.commands;
import buttondevteam.lib.chat.CommandClass;
@CommandClass(modOnly = false)
public abstract class UniversalCommand extends BaseCommand{ public abstract class UniversalCommand extends BaseCommand{
@Override @Override
public String[] GetHelpText(String alias){ public String[] GetHelpText(String alias){
return new String[] { return new String[] {
"This command doesn't have help text. ", "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;
}
} }

View file

@ -2,8 +2,10 @@ package buttondevteam.presents.hello.commands;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.UniversalCommand; import buttondevteam.presents.architecture.commands.UniversalCommand;
@CommandClass(modOnly = false, path="hello command")
public class HelloCommand extends UniversalCommand { public class HelloCommand extends UniversalCommand {
@Override @Override
@ -11,9 +13,4 @@ public class HelloCommand extends UniversalCommand {
sender.sendMessage("Hello World!"); sender.sendMessage("Hello World!");
return false; return false;
} }
@Override
public String GetCommandPath(){
return "hello command";
}
} }

View file

@ -6,8 +6,10 @@ import java.util.List;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.UniversalCommand; import buttondevteam.presents.architecture.commands.UniversalCommand;
@CommandClass(path = "hello load")
public class HelloLoad extends UniversalCommand { public class HelloLoad extends UniversalCommand {
@Override @Override
@ -21,7 +23,4 @@ public class HelloLoad extends UniversalCommand {
} }
return true; return true;
} }
public String GetCommandPath(){
return "hello load";
}
} }

View file

@ -4,8 +4,10 @@ import java.util.Arrays;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.UniversalCommand; import buttondevteam.presents.architecture.commands.UniversalCommand;
@CommandClass(path = "hello save")
public class HelloSave extends UniversalCommand { public class HelloSave extends UniversalCommand {
@Override @Override
public boolean OnCommand(CommandSender sender, String alias, String[] args) { public boolean OnCommand(CommandSender sender, String alias, String[] args) {
@ -23,7 +25,4 @@ public class HelloSave extends UniversalCommand {
} }
return false; return false;
} }
public String GetCommandPath(){
return "hello save";
}
} }

View file

@ -6,8 +6,9 @@ import java.util.Date;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.UniversalCommand; import buttondevteam.presents.architecture.commands.UniversalCommand;
@CommandClass(path = "hello time")
public class HelloTime extends UniversalCommand { public class HelloTime extends UniversalCommand {
final String path = "hellotime.lastincident"; 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"); SimpleDateFormat dateformatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z");
return dateformatter.format(dateTime); return dateformatter.format(dateTime);
} }
public String GetCommandPath(){
return "hello time";
}
} }

View file

@ -16,8 +16,5 @@ public class HelloBlock extends PlayerCommand {
return false; return false;
} }
public String GetCommandPath(){
return "hello block";
}
} }

View file

@ -3,8 +3,9 @@ package buttondevteam.presents.hello.effects;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.PlayerCommand; import buttondevteam.presents.architecture.commands.PlayerCommand;
@CommandClass(path = "hello cow")
public class HelloCow extends PlayerCommand { public class HelloCow extends PlayerCommand {
@Override @Override
@ -15,14 +16,4 @@ public class HelloCow extends PlayerCommand {
); );
return true; return true;
} }
@Override
public boolean GetModOnly() {
// TODO Auto-generated method stub
return true;
}
@Override
public String GetCommandPath(){
return "hello cow";
}
} }

View file

@ -4,9 +4,11 @@ import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; 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 @Override
public boolean OnCommand(Player player, String alias, String[] args) { public boolean OnCommand(Player player, String alias, String[] args) {
@ -15,14 +17,6 @@ public class HelloItem extends PlayerCommand {
return true; return true;
} }
@Override
public boolean GetModOnly() {
// TODO Auto-generated method stub
return true;
}
@Override
public String GetCommandPath(){
return "hello item";
}
} }

View file

@ -8,8 +8,10 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.ModCommand; import buttondevteam.presents.architecture.commands.ModCommand;
@CommandClass(path = "hello magicpotato")
public class HelloMagicPotato extends ModCommand { public class HelloMagicPotato extends ModCommand {
@Override @Override
@ -31,7 +33,4 @@ public class HelloMagicPotato extends ModCommand {
return true; return true;
} }
public String GetCommandPath(){
return "hello magicpotato";
}
} }

View file

@ -3,8 +3,10 @@ package buttondevteam.presents.hello.effects;
import org.bukkit.Particle; import org.bukkit.Particle;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.PlayerCommand; import buttondevteam.presents.architecture.commands.PlayerCommand;
@CommandClass(path = "hello particle")
public class HelloParticle extends PlayerCommand { public class HelloParticle extends PlayerCommand {
@Override @Override

View file

@ -3,8 +3,10 @@ package buttondevteam.presents.hello.effects;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.presents.architecture.commands.PlayerCommand; import buttondevteam.presents.architecture.commands.PlayerCommand;
@CommandClass(path = "hello sound")
public class HelloSound extends PlayerCommand{ public class HelloSound extends PlayerCommand{
@Override @Override
@ -31,8 +33,5 @@ public class HelloSound extends PlayerCommand{
return false; return false;
} }
public String GetCommandPath(){
return "hello sound";
}
} }