Skip to content

Commit

Permalink
Fixed issue that prevented capital letters in hex codes working
Browse files Browse the repository at this point in the history
  • Loading branch information
OllieMartin committed Jul 20, 2020
1 parent 5a4578f commit 6188ae7
Showing 4 changed files with 23 additions and 4 deletions.
2 changes: 1 addition & 1 deletion multichat/dependency-reduced-pom.xml
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>xyz.olivermartin.multichat</groupId>
<artifactId>multichat</artifactId>
<version>1.9.4</version>
<version>1.9.5</version>
<build>
<plugins>
<plugin>
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@

import net.milkbowl.vault.chat.Chat;
import xyz.olivermartin.multichat.bungee.MultiChatUtil;
import xyz.olivermartin.multichat.local.common.LocalConsoleLogger;
import xyz.olivermartin.multichat.local.common.LocalMetaManager;
import xyz.olivermartin.multichat.local.common.MultiChatLocal;
import xyz.olivermartin.multichat.local.spigot.hooks.LocalSpigotVaultHook;
@@ -72,22 +73,40 @@ public String getWorld(UUID uuid) {
@Override
public String getDisplayName(UUID uuid) {

LocalConsoleLogger logger = MultiChatLocal.getInstance().getConsoleLogger();

Player player = Bukkit.getPlayer(uuid);

if (player == null) return "";

// If MultiChat is setting the display name...
if (MultiChatLocal.getInstance().getDataStore().isSetDisplayName()) {

logger.debug("[LocalSpigotMetaManager] We are setting the display name!");

String displayNameFormat = MultiChatLocal.getInstance().getDataStore().getDisplayNameFormatLastVal();

logger.debug("[LocalSpigotMetaManager] Format = " + displayNameFormat);
logger.debug("[LocalSpigotMetaManager] Format (using & only) = " + displayNameFormat.replaceAll("(?i)§(?=[a-f,0-9,k-o,r,x])", "&"));

// TODO This stuff could be refactored as it is duplicated between Spigot and Sponge
displayNameFormat = displayNameFormat.replaceAll("%NICK%", getNick(uuid));
displayNameFormat = displayNameFormat.replaceAll("%NAME%", player.getName());
displayNameFormat = displayNameFormat.replaceAll("%PREFIX%", getPrefix(uuid));
displayNameFormat = displayNameFormat.replaceAll("%SUFFIX%", getSuffix(uuid));

logger.debug("[LocalSpigotMetaManager] Format with placeholders = " + displayNameFormat);
logger.debug("[LocalSpigotMetaManager] Format with placeholders (using & only) = " + displayNameFormat.replaceAll("(?i)§(?=[a-f,0-9,k-o,r,x])", "&"));

displayNameFormat = MultiChatUtil.reformatRGB(displayNameFormat);
displayNameFormat = displayNameFormat.replaceAll("&(?=[a-f,0-9,k-o,r,x])", "§");

logger.debug("[LocalSpigotMetaManager] Format after reformatting RGB = " + displayNameFormat);
logger.debug("[LocalSpigotMetaManager] Format after reformatting RGB (using & only) = " + displayNameFormat.replaceAll("(?i)§(?=[a-f,0-9,k-o,r,x])", "&"));

displayNameFormat = displayNameFormat.replaceAll("(?i)&(?=[a-f,0-9,k-o,r,x])", "§");

logger.debug("[LocalSpigotMetaManager] FINAL = " + displayNameFormat);
logger.debug("[LocalSpigotMetaManager] FINAL (using & only) = " + displayNameFormat.replaceAll("(?i)§(?=[a-f,0-9,k-o,r,x])", "&"));

// LEGACY HACK
if (MultiChatLocal.getInstance().getDataStore().isLegacy()) {
Original file line number Diff line number Diff line change
@@ -93,7 +93,7 @@ public String getDisplayName(UUID uuid) {
displayNameFormat = displayNameFormat.replaceAll("%PREFIX%", getPrefix(uuid));
displayNameFormat = displayNameFormat.replaceAll("%SUFFIX%", getSuffix(uuid));
displayNameFormat = MultiChatUtil.reformatRGB(displayNameFormat);
displayNameFormat = displayNameFormat.replaceAll("&(?=[a-f,0-9,k-o,r,x])", "§");
displayNameFormat = displayNameFormat.replaceAll("(?i)&(?=[a-f,0-9,k-o,r,x])", "§");

displayNameFormat = MultiChatUtil.approximateHexCodes(displayNameFormat);

Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ public LocalSpongePlaceholderManager() {
public String buildChatFormat(UUID uuid, String format) {
// Reformat any hex codes in the format
format = MultiChatUtil.reformatRGB(format);
format = processMultiChatPlaceholders(uuid, format).replaceAll("&(?=[a-f,0-9,k-o,r,x])", "§");
format = processMultiChatPlaceholders(uuid, format).replaceAll("(?i)&(?=[a-f,0-9,k-o,r,x])", "§");
format = MultiChatUtil.approximateHexCodes(format);
return format;
}

0 comments on commit 6188ae7

Please sign in to comment.