diff --git a/src/main/java/net/tfminecraft/games/voice/RpNames.java b/src/main/java/net/tfminecraft/games/voice/RpNames.java index 73b7dd5..625e898 100644 --- a/src/main/java/net/tfminecraft/games/voice/RpNames.java +++ b/src/main/java/net/tfminecraft/games/voice/RpNames.java @@ -37,7 +37,7 @@ public static String of(UUID id) { private static String characterDisplay(Player player) { try { String display = Characters.displayName(player); - return !display.isBlank() ? display : null; + return display != null && !display.isBlank() ? display : null; } catch (RuntimeException | LinkageError ex) { if (!loggedFail) { loggedFail = true; diff --git a/src/test/java/net/tfminecraft/games/voice/VoiceIntegrationTest.java b/src/test/java/net/tfminecraft/games/voice/VoiceIntegrationTest.java index bd5ce2f..301502c 100644 --- a/src/test/java/net/tfminecraft/games/voice/VoiceIntegrationTest.java +++ b/src/test/java/net/tfminecraft/games/voice/VoiceIntegrationTest.java @@ -101,11 +101,16 @@ void namesUseFreshSharedAliasesWithoutCanonicalCharacterLookups() { } @Test - void blankOrNullSharedDisplayUsesAccountName() { + void blankOrNullSharedDisplayUsesAccountNameWithoutLoggingAFailure() { when(identity.displayName(player)).thenReturn(" "); assertEquals("AccountName", RpNames.of(id)); when(identity.displayName(player)).thenReturn(null); assertEquals("AccountName", RpNames.of(id)); + try (var names = mockStatic(net.tfminecraft.tlibs.character.Characters.class)) { + names.when(() -> net.tfminecraft.tlibs.character.Characters.displayName(player)).thenReturn(null); + assertEquals("AccountName", RpNames.of(id)); + } + verifyNoInteractions(logger); } @Test