From d9652ba9eb0e6affe291c5dbe73fdb82fe6b7d28 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 2 Jul 2017 14:27:44 -0500 Subject: [PATCH] autoload message bundles based on plugin name --- .../main/java/co/aikar/commands/BukkitCommandManager.java | 3 ++- .../main/java/co/aikar/commands/BungeeCommandManager.java | 4 ++-- core/src/main/java/co/aikar/commands/CommandManager.java | 2 +- core/src/main/java/co/aikar/commands/Locales.java | 8 ++++++-- .../main/java/co/aikar/commands/SpongeCommandManager.java | 4 ++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java index 2dc33819..39d43feb 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java @@ -65,7 +65,8 @@ public class BukkitCommandManager extends CommandManager { @SuppressWarnings("JavaReflectionMemberAccess") public BukkitCommandManager(Plugin plugin) { this.plugin = plugin; - this.locales.addMessageBundle("acf-minecraft", Locale.ENGLISH); + String pluginName = "acf-" + plugin.getDescription().getName(); + this.locales.addMessageBundles("acf-minecraft", pluginName, pluginName.toLowerCase()); this.timingManager = TimingManager.of(plugin); this.commandTiming = this.timingManager.of("Commands"); CommandMap commandMap = null; diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java index 879ce531..8ee4ebde 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java @@ -41,14 +41,14 @@ import java.util.logging.Logger; public class BungeeCommandManager extends CommandManager { protected final Plugin plugin; - protected Map knownCommands = new HashMap<>(); protected Map registeredCommands = new HashMap<>(); protected BungeeCommandContexts contexts; protected BungeeCommandCompletions completions; public BungeeCommandManager(Plugin plugin) { this.plugin = plugin; - this.locales.addMessageBundle("acf-minecraft", Locale.ENGLISH); + String pluginName = "acf-" + plugin.getDescription().getName(); + this.locales.addMessageBundles("acf-minecraft", pluginName, pluginName.toLowerCase()); this.formatters.put(MessageType.ERROR, new BungeeMessageFormatter(ChatColor.RED, ChatColor.YELLOW, ChatColor.RED)); this.formatters.put(MessageType.SYNTAX, new BungeeMessageFormatter(ChatColor.YELLOW, ChatColor.GREEN, ChatColor.WHITE)); this.formatters.put(MessageType.INFO, new BungeeMessageFormatter(ChatColor.BLUE, ChatColor.DARK_GREEN, ChatColor.GREEN)); diff --git a/core/src/main/java/co/aikar/commands/CommandManager.java b/core/src/main/java/co/aikar/commands/CommandManager.java index 65f18dfd..4dc856f8 100644 --- a/core/src/main/java/co/aikar/commands/CommandManager.java +++ b/core/src/main/java/co/aikar/commands/CommandManager.java @@ -30,7 +30,7 @@ import java.lang.reflect.Parameter; import java.util.*; @SuppressWarnings("WeakerAccess") -abstract class CommandManager { +public abstract class CommandManager { static ThreadLocal> currentCommandManager = ThreadLocal.withInitial(Stack::new); static ThreadLocal> currentCommandIssuer = ThreadLocal.withInitial(Stack::new); diff --git a/core/src/main/java/co/aikar/commands/Locales.java b/core/src/main/java/co/aikar/commands/Locales.java index 5e6523fe..b45ef2e3 100644 --- a/core/src/main/java/co/aikar/commands/Locales.java +++ b/core/src/main/java/co/aikar/commands/Locales.java @@ -40,13 +40,18 @@ public class Locales { Locales(CommandManager manager) { this.manager = manager; this.localeManager = LocaleManager.create(manager::getIssuerLocale); - this.localeManager.addMessageBundle("acf-core", Locale.ENGLISH); + this.localeManager.addMessageBundles("acf-core"); } public Locale getDefaultLocale() { return this.localeManager.getDefaultLocale(); } + + public void addMessageBundles(String... bundleNames) { + this.localeManager.addMessageBundles(bundleNames); + } + public void addMessageBundle(String bundleName, Locale locale) { this.localeManager.addMessageBundle(bundleName, locale); } @@ -68,5 +73,4 @@ public class Locales { return message; } - } diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java index 41e83d6e..aa010f58 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java @@ -36,7 +36,6 @@ import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; @SuppressWarnings("WeakerAccess") @@ -50,7 +49,8 @@ public class SpongeCommandManager extends CommandManager { public SpongeCommandManager(PluginContainer plugin) { this.plugin = plugin; - this.locales.addMessageBundle("acf-minecraft", Locale.ENGLISH); + String pluginName = "acf-" + plugin.getName(); + this.locales.addMessageBundles("acf-minecraft", pluginName, pluginName.toLowerCase()); this.commandTiming = Timings.of(plugin, "Commands"); this.formatters.put(MessageType.ERROR, new SpongeMessageFormatter(TextColors.RED, TextColors.YELLOW, TextColors.RED));