From b324e7d0e00fd5244976eff806c676580afe72c6 Mon Sep 17 00:00:00 2001 From: Tastybento Date: Wed, 3 Jan 2018 20:43:58 -0800 Subject: [PATCH 1/3] Fixed teleport to island message. --- locales/BSB-en-US.yml | 2 ++ .../bskyblock/database/managers/island/IslandsManager.java | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/locales/BSB-en-US.yml b/locales/BSB-en-US.yml index 5d4b65090..8fc52bb20 100644 --- a/locales/BSB-en-US.yml +++ b/locales/BSB-en-US.yml @@ -43,6 +43,8 @@ commands: go: parameters: "" description: "teleport you to your island" + teleport: "&aTeleporting you to your island. &b/[label] help &afor help." + teleported: "&aTeleported you to home &e#[number]." help: description: "The main island command" spawn: diff --git a/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java b/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java index 037fbba99..ae4dfddf3 100644 --- a/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java +++ b/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java @@ -625,9 +625,9 @@ public class IslandsManager { //player.sendBlockChange(home, Material.GLOWSTONE, (byte)0); User user = User.getInstance(player); if (number == 1) { - user.sendMessage("island.teleport", "[label]", Settings.ISLANDCOMMAND); + user.sendMessage("commands.island.go.teleport", "[label]", Settings.ISLANDCOMMAND); } else { - user.sendMessage("island.teleported", "[number]", String.valueOf(number)); + user.sendMessage("commands.island.go.island.go.teleported", "[number]", String.valueOf(number)); } // Exit spectator mode if in it if (player.getGameMode().equals(GameMode.SPECTATOR)) { From 4aaab9f69f7fefcb7b0c41122cd272b3a1e97172 Mon Sep 17 00:00:00 2001 From: Tastybento Date: Wed, 3 Jan 2018 21:37:37 -0800 Subject: [PATCH 2/3] Added a depth limit to the help command. --- locales/BSB-en-US.yml | 2 ++ .../api/commands/DefaultHelpCommand.java | 32 ++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/locales/BSB-en-US.yml b/locales/BSB-en-US.yml index 8fc52bb20..4a557e378 100644 --- a/locales/BSB-en-US.yml +++ b/locales/BSB-en-US.yml @@ -30,6 +30,8 @@ commands: header: "&7=========== &c%bsb_plugin_name% &7===========" syntax: "&b[usage] &a[parameters] &7: &e[description]" end: "&7=================================" + parameters: "[command]" + description: "help command" admin: help: description: "Admin command" diff --git a/src/main/java/us/tastybento/bskyblock/api/commands/DefaultHelpCommand.java b/src/main/java/us/tastybento/bskyblock/api/commands/DefaultHelpCommand.java index 1b63696f1..1fa00bdd5 100644 --- a/src/main/java/us/tastybento/bskyblock/api/commands/DefaultHelpCommand.java +++ b/src/main/java/us/tastybento/bskyblock/api/commands/DefaultHelpCommand.java @@ -1,6 +1,10 @@ package us.tastybento.bskyblock.api.commands; +import java.util.Arrays; import java.util.List; +import java.util.Optional; + +import org.apache.commons.lang.math.NumberUtils; /** * Adds a default help to every command that will show the usage of the command @@ -10,6 +14,9 @@ import java.util.List; */ public class DefaultHelpCommand extends CompositeCommand { + // TODO: make this a setting + private static final int MAX_DEPTH = 2; + public DefaultHelpCommand(CompositeCommand parent) { super(parent, "help"); } @@ -23,10 +30,24 @@ public class DefaultHelpCommand extends CompositeCommand { @Override public boolean execute(User user, List args) { - if (parent.getLevel() == 0) { + int depth = 0; + if (args.size() == 1) { + if (NumberUtils.isDigits(args.get(0))) { + // Converts first argument into an int, or returns -1 if it cannot. Avoids exceptions. + depth = Optional.ofNullable(args.get(0)).map(NumberUtils::toInt).orElse(-1); + } else { + String usage = user.getTranslation(parent.getUsage()); + String params = user.getTranslation("commands.help.parameters"); + String desc = user.getTranslation("commands.help.description"); + user.sendMessage("commands.help.syntax", "[usage]", usage, "[parameters]", params, "[description]", desc); + return true; + } + } + if (depth == 0) { user.sendMessage("commands.help.header"); } - if (args.isEmpty()) { + //if (args.isEmpty()) { + if (depth < MAX_DEPTH) { if (!parent.getLabel().equals("help")) { // Get elements String usage = parent.getUsage().isEmpty() ? "" : user.getTranslation(parent.getUsage()); @@ -46,6 +67,8 @@ public class DefaultHelpCommand extends CompositeCommand { user.sendMessage("commands.help.syntax", "[usage]", usage, "[parameters]", params, "[description]", desc); } } + // Increment the depth + int newDepth = depth + 1; // Run through any subcommands and get their help for (CompositeCommand subCommand : parent.getSubCommands().values()) { // Ignore the help command @@ -53,12 +76,13 @@ public class DefaultHelpCommand extends CompositeCommand { // Every command should have help because every command has a default help if (subCommand.getSubCommand("help").isPresent()) { // This sub-sub command has a help, so use it - subCommand.getSubCommand("help").get().execute(user, args); + subCommand.getSubCommand("help").get().execute(user, Arrays.asList(String.valueOf(newDepth))); } } } } - if (parent.getLevel() == 0) { + + if (depth == 0) { user.sendMessage("commands.help.end"); } return true; From b7f1d68bcf73fbad181cf96a3d7868dc383a030c Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Thu, 4 Jan 2018 14:14:18 +0100 Subject: [PATCH 3/3] Store the locale files in their own "parent" folder, so it looks nicer, instead of having a prefix also renamed BSBLocale#add() to BSBLocale#merge() and renamed the locale files as well --- locales/{BSB-de-DE.yml => de-DE.yml} | 0 locales/{BSB-en-GB.yml => en-GB.yml} | 0 locales/{BSB-en-US.yml => en-US.yml} | 0 locales/{BSB-fr-FR.yml => fr-FR.yml} | 0 locales/{BSB-zh-CN.yml => zh-CN.yml} | 0 .../us/tastybento/bskyblock/api/localization/BSBLocale.java | 4 ++-- .../us/tastybento/bskyblock/managers/LocalesManager.java | 6 ++++-- 7 files changed, 6 insertions(+), 4 deletions(-) rename locales/{BSB-de-DE.yml => de-DE.yml} (100%) rename locales/{BSB-en-GB.yml => en-GB.yml} (100%) rename locales/{BSB-en-US.yml => en-US.yml} (100%) rename locales/{BSB-fr-FR.yml => fr-FR.yml} (100%) rename locales/{BSB-zh-CN.yml => zh-CN.yml} (100%) diff --git a/locales/BSB-de-DE.yml b/locales/de-DE.yml similarity index 100% rename from locales/BSB-de-DE.yml rename to locales/de-DE.yml diff --git a/locales/BSB-en-GB.yml b/locales/en-GB.yml similarity index 100% rename from locales/BSB-en-GB.yml rename to locales/en-GB.yml diff --git a/locales/BSB-en-US.yml b/locales/en-US.yml similarity index 100% rename from locales/BSB-en-US.yml rename to locales/en-US.yml diff --git a/locales/BSB-fr-FR.yml b/locales/fr-FR.yml similarity index 100% rename from locales/BSB-fr-FR.yml rename to locales/fr-FR.yml diff --git a/locales/BSB-zh-CN.yml b/locales/zh-CN.yml similarity index 100% rename from locales/BSB-zh-CN.yml rename to locales/zh-CN.yml diff --git a/src/main/java/us/tastybento/bskyblock/api/localization/BSBLocale.java b/src/main/java/us/tastybento/bskyblock/api/localization/BSBLocale.java index 95f4fee56..3ff6565b5 100644 --- a/src/main/java/us/tastybento/bskyblock/api/localization/BSBLocale.java +++ b/src/main/java/us/tastybento/bskyblock/api/localization/BSBLocale.java @@ -62,10 +62,10 @@ public class BSBLocale { } /** - * Adds language YAML file to this locale + * Merges a language YAML file to this locale * @param language */ - public void add(File language) { + public void merge(File language) { YamlConfiguration toBeMerged = YamlConfiguration.loadConfiguration(language); for (String key : toBeMerged.getKeys(true)) { if (!config.contains(key)) { diff --git a/src/main/java/us/tastybento/bskyblock/managers/LocalesManager.java b/src/main/java/us/tastybento/bskyblock/managers/LocalesManager.java index b4ff8338c..b974ecd96 100644 --- a/src/main/java/us/tastybento/bskyblock/managers/LocalesManager.java +++ b/src/main/java/us/tastybento/bskyblock/managers/LocalesManager.java @@ -65,8 +65,9 @@ public final class LocalesManager { return false; } }; + // Run through the files and store the locales - File localeDir = new File(plugin.getDataFolder(), LOCALE_FOLDER); + File localeDir = new File(plugin.getDataFolder(), LOCALE_FOLDER + "/" + parent); // If the folder does not exist, then make it and fill with the locale files from the jar // If it does exist, then new files will NOT be written! if (!localeDir.exists()) { @@ -80,6 +81,7 @@ public final class LocalesManager { e.printStackTrace(); } } + // Store all the locales available for (File language : localeDir.listFiles(ymlFilter)) { if (DEBUG) @@ -89,7 +91,7 @@ public final class LocalesManager { plugin.getLogger().info("DEBUG: locale country found = " + localeObject.getCountry()); if (languages.containsKey(localeObject)) { // Merge into current language - languages.get(localeObject).add(language); + languages.get(localeObject).merge(language); } else { // New language languages.put(localeObject, new BSBLocale(localeObject, language));