From 874782545cfb025ead2ccce17a09b7e985dbf484 Mon Sep 17 00:00:00 2001 From: Firepup6500 Date: Tue, 16 Jan 2024 14:20:35 -0600 Subject: [PATCH] Add support for %NICKNAME% --- .../purpleirc/Hooks/EssentialsHook.java | 10 ++++++++ .../java/com/cnaude/purpleirc/PurpleIRC.java | 25 +++++++++++++++++++ .../purpleirc/Utilities/ChatTokenizer.java | 9 +++++++ 3 files changed, 44 insertions(+) diff --git a/src/main/java/com/cnaude/purpleirc/Hooks/EssentialsHook.java b/src/main/java/com/cnaude/purpleirc/Hooks/EssentialsHook.java index 22e5c3e..1259cdb 100644 --- a/src/main/java/com/cnaude/purpleirc/Hooks/EssentialsHook.java +++ b/src/main/java/com/cnaude/purpleirc/Hooks/EssentialsHook.java @@ -49,4 +49,14 @@ public class EssentialsHook { return false; } + public String getNickname(Player player) { + if (essentials != null) { + User user = essentials.getUser(player); + if (user != null) { + return user.getNickname(); + } + } + return ""; + } + } diff --git a/src/main/java/com/cnaude/purpleirc/PurpleIRC.java b/src/main/java/com/cnaude/purpleirc/PurpleIRC.java index f106654..98d00ef 100644 --- a/src/main/java/com/cnaude/purpleirc/PurpleIRC.java +++ b/src/main/java/com/cnaude/purpleirc/PurpleIRC.java @@ -1232,6 +1232,31 @@ public class PurpleIRC extends JavaPlugin { return displayName; } + /** + * + * @param player + * @return + */ + public String getNickname(String player) { + String nickname = ""; + try { + UUID uuid = getPlayerUuid(player); + if (essentialsChatHook != null && uuid != null) { + Player user = getServer().getPlayer(uuid); + if (user != null) { + logDebug("getNickname: " + user.getName()); + nickname = essentialsChatHook.getNickname(user); + } + } + } catch (Exception ex) { + logDebug("getNickname (" + player + "): " + ex.getMessage()); + } + if (nickname == null) { + nickname = ""; + } + return ChatColor.translateAlternateColorCodes('&', nickname); + } + /** * * @param player diff --git a/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java b/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java index 88b0e89..d2d528b 100644 --- a/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java +++ b/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java @@ -941,11 +941,14 @@ public class ChatTokenizer { public String playerTokenizer(Player player, String message) { String pName; String displayName; + String pNickname; if (plugin.pingFixTemplate) { pName = addZeroWidthSpace(player.getName()); + pNickname = addZeroWidthSpace(plugin.getNickname(player.getName())); displayName = player.getDisplayName().replace(player.getName(), pName); } else { pName = player.getName(); + pNickname = plugin.getNickname(pName); displayName = player.getDisplayName(); } plugin.logDebug("Tokenizing " + pName + "(O: " + player.isOnline() + ")"); @@ -968,6 +971,9 @@ public class ChatTokenizer { String worldColor = ""; String jobShort = ""; String job = ""; + if (pNickname == null) { + pNickname = ""; + } if (pSuffix == null) { pSuffix = ""; } @@ -1007,6 +1013,7 @@ public class ChatTokenizer { } return message.replace("%DISPLAYNAME%", displayName) + .replace("%NICKNAME%", pNickname) .replace("%UUID%", uuid.toString()) .replace("%JOBS%", job) .replace("%JOBSSHORT%", jobShort) @@ -1051,6 +1058,7 @@ public class ChatTokenizer { } String displayName = plugin.getDisplayName(playerName); + String nickname = plugin.getNickname(playerName); String uuid = ""; plugin.logDebug("playerTokenizer: 7 "); String worldAlias = ""; @@ -1099,6 +1107,7 @@ public class ChatTokenizer { plugin.logDebug("[S]Raw message: " + message); return message.replace("%DISPLAYNAME%", displayName) + .replace("%NICKNAME%", nickname) .replace("%UUID%", uuid) .replace("%JOBS%", job) .replace("%JOBSSHORT%", jobShort)