From 1f5b474e195f1bc3e357df4898c5f1b0e2d51437 Mon Sep 17 00:00:00 2001 From: sekwah Date: Tue, 23 Jan 2018 06:28:17 +0000 Subject: [PATCH 1/2] Update to have a invalid sub command message --- Resources/lang/en_GB.lang | 1 + .../advancedportals/core/commands/CommandWithSubCommands.java | 1 + 2 files changed, 2 insertions(+) diff --git a/Resources/lang/en_GB.lang b/Resources/lang/en_GB.lang index ff608b3..fd1b5d0 100644 --- a/Resources/lang/en_GB.lang +++ b/Resources/lang/en_GB.lang @@ -22,6 +22,7 @@ logger.plugindisable=Advanced portals are being disabled! logger.plugincrafterror=This version of craftbukkit is not yet supported or something went wrong, please post this message with the version number and the above stacktrace in an issue on GitHub v:%1$s command.noargs= Sorry but you need to specify a sub command, please use \u00A7e/%1$s help \u00A7cif you would like a list of possible sub commands. +command.subcommand.invalid= Sorry but that is not a valid sub command. command.help.header=\u00A7e--------- \u00A7a%1$s Help - Page %2$s of %3$s\u00A7e --------------- command.help.invalidnum= Sorry but \u00A7e%1$s\u00A7c is not a valid page number. diff --git a/src/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java b/src/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java index ae900fd..10e358e 100644 --- a/src/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java +++ b/src/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java @@ -83,6 +83,7 @@ public class CommandWithSubCommands implements CommandTemplate { return; } } + sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translateColor("command.subcommand.invalid")); } } else { From 6ffa9ce979d84e343d64a0c7de1dfecba63b3173 Mon Sep 17 00:00:00 2001 From: sekwah Date: Tue, 23 Jan 2018 16:26:53 +0000 Subject: [PATCH 2/2] Added a simple subcommand as a test --- .../core/AdvancedPortalsCore.java | 32 ++++++++++++++--- .../advancedportals/core/CoreListeners.java | 2 +- .../core/api/commands/SubCommand.java | 2 +- .../subcommands/desti/TestSubCommand.java | 4 +++ .../subcommands/portal/VersionSubCommand.java | 35 +++++++++++++++++++ 5 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 src/com/sekwah/advancedportals/core/commands/subcommands/desti/TestSubCommand.java create mode 100644 src/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java diff --git a/src/com/sekwah/advancedportals/core/AdvancedPortalsCore.java b/src/com/sekwah/advancedportals/core/AdvancedPortalsCore.java index b518142..d272112 100644 --- a/src/com/sekwah/advancedportals/core/AdvancedPortalsCore.java +++ b/src/com/sekwah/advancedportals/core/AdvancedPortalsCore.java @@ -1,6 +1,8 @@ package com.sekwah.advancedportals.core; +import com.sekwah.advancedportals.core.api.commands.SubCommand; import com.sekwah.advancedportals.core.commands.CommandWithSubCommands; +import com.sekwah.advancedportals.core.commands.subcommands.portal.VersionSubCommand; import com.sekwah.advancedportals.core.util.Config; import com.sekwah.advancedportals.core.util.DataStorage; import com.sekwah.advancedportals.core.util.InfoLogger; @@ -21,6 +23,9 @@ public class AdvancedPortalsCore { private CommandWithSubCommands portalCommand; private CommandWithSubCommands destiCommand; + public static final String version = "1.0.0"; + public static final String lastTranslationUpdate = "1.0.0"; + public AdvancedPortalsCore(DataStorage dataStorage, InfoLogger infoLogger, CommandRegister commandRegister) { this.dataStorage = dataStorage; this.infoLogger = infoLogger; @@ -36,14 +41,33 @@ public class AdvancedPortalsCore { this.loadPortalConfig(); Lang.loadLanguage(config.getTranslation()); - this.portalCommand = new CommandWithSubCommands(); - this.destiCommand = new CommandWithSubCommands(); - this.commandRegister.registerCommand("portal", this.portalCommand); - this.commandRegister.registerCommand("destination", this.destiCommand); + this.registerPortalCommand(); + this.registerDestinationCommand(); infoLogger.log(Lang.translate("logger.pluginenable")); } + private void registerPortalCommand() { + this.portalCommand = new CommandWithSubCommands(); + + this.portalCommand.registerSubCommand("version", new VersionSubCommand()); + + this.commandRegister.registerCommand("portal", this.portalCommand); + } + + private void registerDestinationCommand() { + this.destiCommand = new CommandWithSubCommands(); + this.commandRegister.registerCommand("destination", this.destiCommand); + } + + public static boolean registerDestiSubCommand(String arg, SubCommand subCommand) { + return instance.destiCommand.registerSubCommand(arg, subCommand); + } + + public static boolean registerPortalSubCommand(String arg, SubCommand subCommand) { + return instance.portalCommand.registerSubCommand(arg, subCommand); + } + /** * Loads the portal config into the memory and saves from the memory to check in case certain things have changed * (basically if values are missing or whatever) diff --git a/src/com/sekwah/advancedportals/core/CoreListeners.java b/src/com/sekwah/advancedportals/core/CoreListeners.java index 6e21a3d..d958440 100644 --- a/src/com/sekwah/advancedportals/core/CoreListeners.java +++ b/src/com/sekwah/advancedportals/core/CoreListeners.java @@ -7,7 +7,7 @@ public class CoreListeners { public void playerJoin(PlayerContainer player) { if(player.isOp()) { - if(!Lang.translate("translatedata.lastchange").equals("1.0.0")) { + if(!Lang.translate("translatedata.lastchange").equals(AdvancedPortalsCore.lastTranslationUpdate)) { player.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translateColor("translatedata.translationsoutdated")); } } diff --git a/src/com/sekwah/advancedportals/core/api/commands/SubCommand.java b/src/com/sekwah/advancedportals/core/api/commands/SubCommand.java index a7131ff..d939b87 100644 --- a/src/com/sekwah/advancedportals/core/api/commands/SubCommand.java +++ b/src/com/sekwah/advancedportals/core/api/commands/SubCommand.java @@ -16,7 +16,7 @@ public interface SubCommand { * @param args arguments including the subcommand that has been specified. * @return if the command has worked (if false it will just display a message from the command suggesting to check help) */ - boolean onCommand(CommandSenderContainer sender, String[] args); + void onCommand(CommandSenderContainer sender, String[] args); boolean hasPermission(CommandSenderContainer sender); diff --git a/src/com/sekwah/advancedportals/core/commands/subcommands/desti/TestSubCommand.java b/src/com/sekwah/advancedportals/core/commands/subcommands/desti/TestSubCommand.java new file mode 100644 index 0000000..c117e4e --- /dev/null +++ b/src/com/sekwah/advancedportals/core/commands/subcommands/desti/TestSubCommand.java @@ -0,0 +1,4 @@ +package com.sekwah.advancedportals.core.commands.subcommands.desti; + +public class TestSubCommand { +} diff --git a/src/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java b/src/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java new file mode 100644 index 0000000..6121462 --- /dev/null +++ b/src/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java @@ -0,0 +1,35 @@ +package com.sekwah.advancedportals.core.commands.subcommands.portal; + +import com.sekwah.advancedportals.core.AdvancedPortalsCore; +import com.sekwah.advancedportals.core.api.commands.SubCommand; +import com.sekwah.advancedportals.core.util.Lang; +import com.sekwah.advancedportals.coreconnector.container.CommandSenderContainer; + +import java.util.List; + +public class VersionSubCommand implements SubCommand { + @Override + public void onCommand(CommandSenderContainer sender, String[] args) { + sender.sendMessage(Lang.translateColor("messageprefix.positive") + " Advanced Portals v" + AdvancedPortalsCore.version); + } + + @Override + public boolean hasPermission(CommandSenderContainer sender) { + return true; + } + + @Override + public List onTabComplete(CommandSenderContainer sender, String[] args) { + return null; + } + + @Override + public String getBasicHelpText() { + return "This is basic help text"; + } + + @Override + public String getDetailedHelpText() { + return "This help text is a lot more detailed than the basic one"; + } +}