mirror of
https://github.com/aikar/commands.git
synced 2026-06-02 23:32:17 +00:00
Implement Chat Formatting per platform
This commit is contained in:
@@ -23,21 +23,23 @@
|
||||
|
||||
package co.aikar.commands;
|
||||
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class BungeeCommandIssuer implements CommandIssuer{
|
||||
private final BungeeCommandManager manager;
|
||||
private final CommandSender sender;
|
||||
|
||||
BungeeCommandIssuer(CommandSender sender) {
|
||||
BungeeCommandIssuer(BungeeCommandManager manager, CommandSender sender) {
|
||||
this.manager = manager;
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T> T getIssuer() {
|
||||
//noinspection unchecked
|
||||
return (T) sender;
|
||||
}
|
||||
|
||||
@@ -48,14 +50,8 @@ public class BungeeCommandIssuer implements CommandIssuer{
|
||||
|
||||
@Override
|
||||
public void sendMessage(MessageType type, String message) {
|
||||
switch (type) {
|
||||
case ERROR:
|
||||
case SYNTAX:
|
||||
sender.sendMessage(new TextComponent(ChatColor.RED + ACFBungeeUtil.color(message)));
|
||||
break;
|
||||
default:
|
||||
sender.sendMessage(new TextComponent(ChatColor.YELLOW + ACFBungeeUtil.color(message)));
|
||||
}
|
||||
message = format(manager, type, message);
|
||||
sender.sendMessage(new TextComponent(ACFBungeeUtil.color(message)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package co.aikar.commands;
|
||||
|
||||
import co.aikar.commands.apachecommonslang.ApacheCommonsExceptionUtil;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
@@ -46,6 +47,9 @@ public class BungeeCommandManager extends CommandManager {
|
||||
|
||||
public BungeeCommandManager(Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
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));
|
||||
}
|
||||
|
||||
public Plugin getPlugin() {
|
||||
@@ -97,7 +101,7 @@ public class BungeeCommandManager extends CommandManager {
|
||||
if (!(issuer instanceof CommandSender)) {
|
||||
throw new IllegalArgumentException(issuer.getClass().getName() + " is not a Command Issuer.");
|
||||
}
|
||||
return new BungeeCommandIssuer((CommandSender) issuer);
|
||||
return new BungeeCommandIssuer(this, (CommandSender) issuer);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -107,6 +111,7 @@ public class BungeeCommandManager extends CommandManager {
|
||||
|
||||
@Override
|
||||
public <R extends CommandExecutionContext> R createCommandContext(RegisteredCommand command, Parameter parameter, CommandIssuer sender, List<String> args, int i, Map<String, Object> passedArgs) {
|
||||
//noinspection unchecked
|
||||
return (R) new BungeeCommandExecutionContext(command, parameter, sender, args, i, passedArgs);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package co.aikar.commands;
|
||||
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
|
||||
public class BungeeMessageFormatter implements MessageFormatter {
|
||||
private final ChatColor color1;
|
||||
private final ChatColor color2;
|
||||
private final ChatColor color3;
|
||||
|
||||
public BungeeMessageFormatter(ChatColor color1) {
|
||||
this(color1, color1);
|
||||
}
|
||||
public BungeeMessageFormatter(ChatColor color1, ChatColor color2) {
|
||||
this(color1, color2, color2);
|
||||
}
|
||||
public BungeeMessageFormatter(ChatColor color1, ChatColor color2, ChatColor color3) {
|
||||
this.color1 = color1;
|
||||
this.color2 = color2;
|
||||
this.color3 = color3;
|
||||
}
|
||||
@Override
|
||||
public String c1(String message) {
|
||||
return color1 + message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String c2(String message) {
|
||||
return color2 + message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String c3(String message) {
|
||||
return color3 + message;
|
||||
}
|
||||
}
|
||||
@@ -77,7 +77,7 @@ public class BungeeRootCommand extends Command implements RootCommand, TabExecut
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
execute(new BungeeCommandIssuer(sender), getName(), args);
|
||||
execute(new BungeeCommandIssuer(manager, sender), getName(), args);
|
||||
}
|
||||
|
||||
private void execute(CommandIssuer sender, String commandLabel, String[] args) {
|
||||
@@ -95,7 +95,7 @@ public class BungeeRootCommand extends Command implements RootCommand, TabExecut
|
||||
|
||||
@Override
|
||||
public Iterable<String> onTabComplete(CommandSender commandSender, String[] strings) {
|
||||
return onTabComplete(new BungeeCommandIssuer(commandSender), getName(), strings);
|
||||
return onTabComplete(new BungeeCommandIssuer(manager, commandSender), getName(), strings);
|
||||
}
|
||||
|
||||
private List<String> onTabComplete(CommandIssuer sender, String alias, String[] args) throws IllegalArgumentException {
|
||||
|
||||
Reference in New Issue
Block a user