Add hex support using &#abcabc

This commit is contained in:
libraryaddict 2021-05-08 05:10:50 +12:00
parent 01cf995914
commit 3fb325b0e1
7 changed files with 27 additions and 19 deletions

View File

@ -796,7 +796,7 @@ public class DisguiseConfig {
}
if (requireMessage != null) {
requireMessage = ChatColor.translateAlternateColorCodes('&', requireMessage);
requireMessage = DisguiseUtilities.translateAlternateColorCodes(requireMessage);
}
ModdedEntity entity = new ModdedEntity(null, name, living, mod, version, requireMessage, 0);

View File

@ -224,7 +224,7 @@ public abstract class DisguiseBaseCommand implements CommandExecutor {
name = name.replace("%complex%", DisguiseUtilities.getDisplayName(player));
}
return ChatColor.translateAlternateColorCodes('&', name);
return DisguiseUtilities.translateAlternateColorCodes(name);
}
protected ArrayList<String> getAllowedDisguises(DisguisePermissions permissions) {

View File

@ -109,6 +109,6 @@ public class DisguiseEntityInteraction implements LibsEntityInteract {
name = name.replace("%complex%", DisguiseUtilities.getDisplayName(player));
}
return ChatColor.translateAlternateColorCodes('&', name);
return DisguiseUtilities.translateAlternateColorCodes(name);
}
}

View File

@ -2444,6 +2444,16 @@ public class DisguiseUtilities {
return builder.toString();
}
public static String translateAlternateColorCodes(String string) {
string = DisguiseUtilities.translateAlternateColorCodes(string);
if (NmsVersion.v1_16.isSupported()) {
return string.replaceAll("&(?=#[0-9a-fA-F]{6})", ChatColor.COLOR_CHAR + "");
}
return string;
}
/**
* Modification of TextComponent.fromLegacyText
*/
@ -2461,23 +2471,20 @@ public class DisguiseUtilities {
char c = message.charAt(i);
TextComponent old;
if (c == ChatColor.COLOR_CHAR || (c == '<' && i + 9 < message.length() && NmsVersion.v1_16.isSupported() &&
Pattern.matches("<#[0-9a-fA-F]{6}>", message.substring(i, i + 9)))) {
// If normal color char
if (c == ChatColor.COLOR_CHAR) {
++i;
if (i >= message.length()) {
if (c == ChatColor.COLOR_CHAR && i + 1 >= message.length()) {
break;
}
}
if (c == ChatColor.COLOR_CHAR || (NmsVersion.v1_16.isSupported() && c == '<' && i + 9 < message.length() &&
Pattern.matches("<#[0-9a-fA-F]{6}>", message.substring(i, i + 9)))) {
i++;
net.md_5.bungee.api.ChatColor format;
if (c != ChatColor.COLOR_CHAR) {
format = net.md_5.bungee.api.ChatColor.of(message.substring(i + 1, i + 8));
if (c != ChatColor.COLOR_CHAR || (message.length() - i >= 7 && Pattern.matches("#[0-9a-fA-F]{6}", message.substring(i, i + 7)))) {
format = net.md_5.bungee.api.ChatColor.of(message.substring(i, i + 7));
i += 8;
i += c == ChatColor.COLOR_CHAR ? 7 : 8;
} else {
c = message.charAt(i);

View File

@ -1,5 +1,6 @@
package me.libraryaddict.disguise.utilities.params.types.base;
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
import me.libraryaddict.disguise.utilities.params.ParamInfo;
import org.bukkit.ChatColor;
@ -15,7 +16,7 @@ public class ParamInfoString extends ParamInfo {
@Override
protected Object fromString(String string) {
return ChatColor.translateAlternateColorCodes('&', string);
return DisguiseUtilities.translateAlternateColorCodes(string);
}
@Override

View File

@ -744,7 +744,7 @@ public class DisguiseParser {
}
// Construct the player disguise
disguise = new PlayerDisguise(ChatColor.translateAlternateColorCodes('&', args[1]));
disguise = new PlayerDisguise(DisguiseUtilities.translateAlternateColorCodes(args[1]));
if (!customName) {
name = ((PlayerDisguise) disguise).getName();

View File

@ -96,7 +96,7 @@ public enum TranslateType {
DisguiseUtilities.getLogger()
.severe("Translation for " + name() + " has a null value for the key '" + key + "'");
} else {
String newKey = ChatColor.translateAlternateColorCodes('&', key);
String newKey = DisguiseUtilities.translateAlternateColorCodes(key);
if (translated.containsKey(newKey)) {
if (dupes++ < 5) {
@ -115,7 +115,7 @@ public enum TranslateType {
}
}
translated.put(newKey, ChatColor.translateAlternateColorCodes('&', value));
translated.put(newKey, DisguiseUtilities.translateAlternateColorCodes(value));
if (!newKey.equals(translated.get(newKey))) {
diff++;