From ef3b844ffaa6db2331b4291b8a012733f6ab9dd8 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 18 Jul 2017 21:52:42 -0400 Subject: [PATCH] Move MessageFormatter stuff to base class using generics, readd default formatter G/S --- .../aikar/commands/BukkitCommandManager.java | 22 +------------- .../aikar/commands/BungeeCommandManager.java | 22 +------------- .../java/co/aikar/commands/BaseCommand.java | 2 +- .../co/aikar/commands/CommandManager.java | 30 ++++++++++++++++++- .../main/java/co/aikar/commands/Locales.java | 2 +- .../aikar/commands/SpongeCommandManager.java | 22 +------------- 6 files changed, 34 insertions(+), 66 deletions(-) diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java index f645f704..702933a4 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java @@ -49,7 +49,7 @@ import java.util.logging.Level; import java.util.logging.Logger; @SuppressWarnings("WeakerAccess") -public class BukkitCommandManager extends CommandManager { +public class BukkitCommandManager extends CommandManager { @SuppressWarnings("WeakerAccess") protected final Plugin plugin; @@ -106,26 +106,6 @@ public class BukkitCommandManager extends CommandManager type) { return CommandSender.class.isAssignableFrom(type); diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java index b3197d8d..8086b452 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java @@ -38,7 +38,7 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -public class BungeeCommandManager extends CommandManager { +public class BungeeCommandManager extends CommandManager { protected final Plugin plugin; protected Map registeredCommands = new HashMap<>(); @@ -58,26 +58,6 @@ public class BungeeCommandManager extends CommandManager getCommandContexts() { if (this.contexts == null) { diff --git a/core/src/main/java/co/aikar/commands/BaseCommand.java b/core/src/main/java/co/aikar/commands/BaseCommand.java index fff9d645..72ef681b 100644 --- a/core/src/main/java/co/aikar/commands/BaseCommand.java +++ b/core/src/main/java/co/aikar/commands/BaseCommand.java @@ -58,7 +58,7 @@ public abstract class BaseCommand { private String execSubcommand; @SuppressWarnings("WeakerAccess") private String[] origArgs; - CommandManager manager = null; + CommandManager manager = null; BaseCommand parentCommand; Map registeredCommands = new HashMap<>(); String description; diff --git a/core/src/main/java/co/aikar/commands/CommandManager.java b/core/src/main/java/co/aikar/commands/CommandManager.java index 689a417c..172cced9 100644 --- a/core/src/main/java/co/aikar/commands/CommandManager.java +++ b/core/src/main/java/co/aikar/commands/CommandManager.java @@ -31,7 +31,7 @@ import java.lang.reflect.Parameter; import java.util.*; @SuppressWarnings("WeakerAccess") -public abstract class CommandManager > { +public abstract class CommandManager > { /** * This is a stack incase a command calls a command @@ -58,6 +58,34 @@ public abstract class CommandManager > { return context != null ? context.getCommandManager() : null; } + public F setFormat(MessageType type, F formatter) { + return formatters.put(type, formatter); + } + + public F getFormat(MessageType type) { + return formatters.getOrDefault(type, defaultFormatter); + } + + public void setFormat(MessageType type, FT... colors) { + F format = getFormat(type); + for (int i = 0; i < colors.length; i++) { + format.setColor(i, colors[i]); + } + } + + public void setFormat(MessageType type, int i, FT color) { + F format = getFormat(type); + format.setColor(i, color); + } + + public F getDefaultFormatter() { + return defaultFormatter; + } + + public void setDefaultFormatter(F defaultFormatter) { + this.defaultFormatter = defaultFormatter; + } + /** * Gets the command contexts manager * @return Command Contexts diff --git a/core/src/main/java/co/aikar/commands/Locales.java b/core/src/main/java/co/aikar/commands/Locales.java index bb987316..c340ae1f 100644 --- a/core/src/main/java/co/aikar/commands/Locales.java +++ b/core/src/main/java/co/aikar/commands/Locales.java @@ -35,7 +35,7 @@ import java.util.Map; @SuppressWarnings("WeakerAccess") public class Locales { - private final CommandManager manager; + private final CommandManager manager; private final LocaleManager localeManager; private final SetMultimap loadedBundles = HashMultimap.create(); diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java index 90e95d37..b0964f68 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java @@ -40,7 +40,7 @@ import java.util.List; import java.util.Map; @SuppressWarnings("WeakerAccess") -public class SpongeCommandManager extends CommandManager { +public class SpongeCommandManager extends CommandManager { protected final PluginContainer plugin; protected Map registeredCommands = new HashMap<>(); @@ -65,26 +65,6 @@ public class SpongeCommandManager extends CommandManager type) { return CommandSource.class.isAssignableFrom(type);