@@ -420,14 +420,19 @@ private void joinFlow(final User user, final long currentTime, final String mess
420420
421421 final String lastAccountName = user .getLastAccountName (); // For comparison
422422 user .setLastAccountName (user .getBase ().getName ());
423+
424+ final boolean newUsername = lastAccountName != null && !lastAccountName .equals (user .getBase ().getName ());
425+
426+ // If the Minecraft account name changed, reset the nickname so the old one doesn't persist
427+ if (ess .getSettings ().isResetNickOnNameChange () && newUsername && user .getNickname () != null ) {
428+ user .setNickname (null );
429+ }
430+
423431 user .setLastLogin (currentTime );
424432 user .setDisplayNick ();
425433 updateCompass (user );
426434 user .setLeavingHidden (false );
427435
428- // Check for new username. If they don't want the message, let's just say it's false.
429- final boolean newUsername = ess .getSettings ().isCustomNewUsernameMessage () && lastAccountName != null && !lastAccountName .equals (user .getBase ().getName ());
430-
431436 if (!ess .getVanishedPlayersNew ().isEmpty () && !user .isAuthorized ("essentials.vanish.see" )) {
432437 for (final String p : ess .getVanishedPlayersNew ()) {
433438 final Player toVanish = ess .getServer ().getPlayerExact (p );
@@ -453,7 +458,7 @@ private void joinFlow(final User user, final long currentTime, final String mess
453458 } else if (message == null || hideJoinQuitMessages ()) {
454459 effectiveMessage = null ;
455460 } else if (ess .getSettings ().isCustomJoinMessage ()) {
456- final String msg = (newUsername ? ess .getSettings ().getCustomNewUsernameMessage () : ess .getSettings ().getCustomJoinMessage ())
461+ final String msg = (newUsername && ess . getSettings (). isCustomNewUsernameMessage () ? ess .getSettings ().getCustomNewUsernameMessage () : ess .getSettings ().getCustomJoinMessage ())
457462 .replace ("{PLAYER}" , user .getDisplayName ()).replace ("{USERNAME}" , user .getName ())
458463 .replace ("{UNIQUE}" , NumberFormat .getInstance ().format (ess .getUsers ().getUserCount ()))
459464 .replace ("{ONLINE}" , NumberFormat .getInstance ().format (ess .getOnlinePlayers ().size ()))
0 commit comments