diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandIssuer.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandIssuer.java index 8eaf61b9..30f672c3 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandIssuer.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandIssuer.java @@ -47,6 +47,11 @@ public class BukkitCommandIssuer implements CommandIssuer { return (T) sender; } + @Override + public CommandManager getManager() { + return manager; + } + @Override public void sendMessage(MessageType type, String message) { sender.sendMessage(ACFBukkitUtil.color(format(manager, type, message))); diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandIssuer.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandIssuer.java index 31dfaf28..c43b22fc 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandIssuer.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandIssuer.java @@ -43,6 +43,11 @@ public class BungeeCommandIssuer implements CommandIssuer{ return (T) sender; } + @Override + public CommandManager getManager() { + return manager; + } + @Override public boolean isPlayer() { return sender instanceof ProxiedPlayer; diff --git a/core/src/main/java/co/aikar/commands/CommandIssuer.java b/core/src/main/java/co/aikar/commands/CommandIssuer.java index 8f46f5b4..bef9d873 100644 --- a/core/src/main/java/co/aikar/commands/CommandIssuer.java +++ b/core/src/main/java/co/aikar/commands/CommandIssuer.java @@ -23,6 +23,8 @@ package co.aikar.commands; +import co.aikar.locales.MessageKey; + public interface CommandIssuer { /** * Gets the issuer in the platforms native object @@ -31,6 +33,8 @@ public interface CommandIssuer { */ T getIssuer(); + CommandManager getManager(); + /** * Is this issue a player, or server/console sender * @return @@ -52,7 +56,12 @@ public interface CommandIssuer { */ boolean hasPermission(String permission); + default void sendMessage(MessageType type, MessageKey key, String... replacements) { + getManager().sendMessage(this, type, key, replacements); + } + void sendMessage(MessageType type, String message); + default String format(CommandManager manager, MessageType type, String message) { MessageFormatter formatter = manager.formatters.get(type); if (formatter != null) { diff --git a/core/src/main/java/co/aikar/commands/MessageKeys.java b/core/src/main/java/co/aikar/commands/MessageKeys.java new file mode 100644 index 00000000..11a3817f --- /dev/null +++ b/core/src/main/java/co/aikar/commands/MessageKeys.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2016-2017 Daniel Ennis (Aikar) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package co.aikar.commands; + +import co.aikar.locales.MessageKey; + +public class MessageKeys { + public static final MessageKey KEY = MessageKey.of(""); +} diff --git a/core/src/main/java/co/aikar/commands/MessageType.java b/core/src/main/java/co/aikar/commands/MessageType.java index 3e74dfb2..b50d297b 100644 --- a/core/src/main/java/co/aikar/commands/MessageType.java +++ b/core/src/main/java/co/aikar/commands/MessageType.java @@ -26,7 +26,6 @@ package co.aikar.commands; import java.util.concurrent.atomic.AtomicInteger; @SuppressWarnings("WeakerAccess") -@Deprecated public class MessageType { public static MessageType INFO = new MessageType(); public static MessageType SYNTAX = new MessageType(); diff --git a/paper/acf-paper.iml b/paper/acf-paper.iml index 70d01850..c0af5632 100644 --- a/paper/acf-paper.iml +++ b/paper/acf-paper.iml @@ -2,7 +2,11 @@ - + + + PAPER + + @@ -18,7 +22,23 @@ - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java index caa8dc82..af4fe985 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java @@ -50,6 +50,11 @@ public class SpongeCommandIssuer implements CommandIssuer { return (T) this.source; } + @Override + public CommandManager getManager() { + return manager; + } + @Override public void sendMessage(MessageType type, String message) { message = format(manager, type, message);