Fix MiniMessage color parsing in commands - Added send() method to GradientMessages for proper Component parsing - Updated all gradient commands to use msg.send() instead of player.sendMessage(msg.get()) - Now <#RRGGBB> tags are properly converted to colors in chat

This commit is contained in:
loki5512344 2025-12-30 21:59:33 +01:00
parent 29ae373554
commit d2c45b3f0c
5 changed files with 89 additions and 53 deletions

View file

@ -41,7 +41,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
GradientMessages msg = module.getMessages();
if (!sender.hasPermission("gradient.admin")) {
sender.sendMessage(msg.get("no-permission"));
msg.send(sender, "no-permission");
return true;
}
@ -55,7 +55,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
switch (subCommand) {
case "reload" -> {
module.reload();
sender.sendMessage(msg.get("reload-success"));
msg.send(sender, "reload-success");
}
case "info" -> {
if (args.length < 2) {
@ -105,24 +105,24 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
private void handleInfo(CommandSender sender, String playerName, GradientMessages msg) {
OfflinePlayer target = Bukkit.getOfflinePlayer(playerName);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}
GradientPlayerData data = module.getDataManager().getPlayerData(target.getUniqueId());
sender.sendMessage(msg.get("info-header", "player", playerName));
sender.sendMessage(msg.get("info-prefix", "prefix", data.hasPrefix() ? data.getPrefix() : "нет"));
sender.sendMessage(msg.get("info-prefix-enabled", "enabled", data.isPrefixEnabled() ? "да" : "нет"));
sender.sendMessage(msg.get("info-colors", "colors", data.hasColors() ? String.join(", ", data.getColors()) : "нет"));
sender.sendMessage(msg.get("info-color-enabled", "enabled", data.isColorEnabled() ? "да" : "нет"));
sender.sendMessage(msg.get("info-prefix-purchased", "purchased", data.isPrefixPurchased() ? "да" : "нет"));
msg.send(sender, "info-header", "player", playerName);
msg.send(sender, "info-prefix", "prefix", data.hasPrefix() ? data.getPrefix() : "нет");
msg.send(sender, "info-prefix-enabled", "enabled", data.isPrefixEnabled() ? "да" : "нет");
msg.send(sender, "info-colors", "colors", data.hasColors() ? String.join(", ", data.getColors()) : "нет");
msg.send(sender, "info-color-enabled", "enabled", data.isColorEnabled() ? "да" : "нет");
msg.send(sender, "info-prefix-purchased", "purchased", data.isPrefixPurchased() ? "да" : "нет");
}
private void handleSetColor(CommandSender sender, String[] args, GradientMessages msg) {
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}
@ -130,7 +130,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
for (int i = 2; i < args.length; i++) {
String color = args[i].startsWith("#") ? args[i] : "#" + args[i];
if (!GradientUtil.isValidHex(color)) {
sender.sendMessage(msg.get("invalid-color", "color", args[i]));
msg.send(sender, "invalid-color", "color", args[i]);
return;
}
colors.add(color.toUpperCase());
@ -138,7 +138,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
GradientConfig cfg = module.getConfig();
if (colors.size() > cfg.getMaxColors()) {
sender.sendMessage(msg.get("too-many-colors", "max", String.valueOf(cfg.getMaxColors())));
msg.send(sender, "too-many-colors", "max", String.valueOf(cfg.getMaxColors()));
return;
}
@ -161,7 +161,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
private void handleSetPrefix(CommandSender sender, String[] args, GradientMessages msg) {
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}
@ -174,7 +174,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
GradientConfig cfg = module.getConfig();
if (prefix.length() > cfg.getMaxPrefixLength()) {
sender.sendMessage(msg.get("prefix-too-long", "max", String.valueOf(cfg.getMaxPrefixLength())));
msg.send(sender, "prefix-too-long", "max", String.valueOf(cfg.getMaxPrefixLength()));
return;
}
@ -205,7 +205,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}
@ -232,7 +232,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}
@ -265,7 +265,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}
@ -293,7 +293,7 @@ public class GradientAdminCommand implements CommandExecutor, TabCompleter {
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
sender.sendMessage(msg.get("player-not-found"));
msg.send(sender, "player-not-found");
return;
}