Skip to content

Commit 2a0ffd7

Browse files
committed
Fix friendlist display name resolving
1 parent 73d2ce5 commit 2a0ffd7

2 files changed

Lines changed: 26 additions & 11 deletions

File tree

service.friend/src/main/java/net/swofty/service/friend/FriendCache.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,11 @@ private static Map<UUID, String> fetchNamesFromCollection(String collectionName,
448448
if (ign == null && doc.containsKey("ignLowercase")) {
449449
ign = parseStoredName(doc.getString("ignLowercase"));
450450
}
451+
String rank = parseStoredName(doc.getString("rank"));
452+
String prefix = rank != null ? rankToPrefix(rank) : "§7";
451453

452454
if (ign != null) {
453-
names.put(UUID.fromString(id), ign);
455+
names.put(UUID.fromString(id), prefix + ign);
454456
}
455457
}
456458
} catch (Exception e) {
@@ -459,6 +461,25 @@ private static Map<UUID, String> fetchNamesFromCollection(String collectionName,
459461
return names;
460462
}
461463

464+
private static String rankToPrefix(String rank) { //display name wasn't resolving correctly if player was on a different minestom instance, this is hacky but works
465+
return switch (rank.toUpperCase()) {
466+
case "OWNER" -> "§c[OWNER] ";
467+
case "ADMIN" -> "§c[ADMIN] ";
468+
case "DEVELOPER" -> "§d[DEV] ";
469+
case "GAMEMASTER" -> "§2[GM] ";
470+
case "MOD" -> "§2[MOD] ";
471+
case "HELPER" -> "§9[HELPER] ";
472+
case "JRHELPER" -> "§9[JR HELPER] ";
473+
case "BT" -> "§d[BT] ";
474+
case "YOUTUBE" -> "§c[§fYOUTUBE§c] ";
475+
case "MVP_PLUS" -> "§b[MVP§c+§b] ";
476+
case "MVP" -> "§b[MVP] ";
477+
case "VIP_PLUS" -> "§a[VIP§6+§a] ";
478+
case "VIP" -> "§a[VIP] ";
479+
default -> "§7";
480+
};
481+
}
482+
462483
private static String parseStoredName(String raw) {
463484
if (raw == null) return null;
464485
raw = raw.trim();

type.generic/src/main/java/net/swofty/type/generic/redis/service/RedisPropagateFriendEvent.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -224,16 +224,10 @@ private void handleFriendList(HypixelPlayer player, FriendListResponseEvent even
224224
sb.append("§6✦ ");
225225
}
226226

227-
// Name (rank-colored, matches tablist). Fallback to plain name if unavailable or failure.
228-
String displayName;
229-
try {
230-
displayName = HypixelPlayer.getDisplayName(friend.getUuid());
231-
} catch (Exception e) {
232-
displayName = "§e" + friend.getName();
233-
}
234-
if (displayName == null || displayName.isEmpty()) {
235-
displayName = "§e" + friend.getName();
236-
}
227+
// Name already comes formatted from service (rank prefix + ign).
228+
String displayName = friend.getName() != null && !friend.getName().isEmpty()
229+
? friend.getName()
230+
: "§e" + HypixelPlayer.getDisplayName(friend.getUuid());
237231

238232
// Append nickname if set
239233
if (friend.getNickname() != null && !friend.getNickname().isEmpty()) {

0 commit comments

Comments
 (0)