From 249b02aa85bdc54eece2a008ac8d3c97412eb6eb Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Mon, 1 Feb 2021 20:49:27 +1300 Subject: [PATCH] Fix name not updated when setting name visible or deadmau, and hopefully fix empty names showing --- .../disguisetypes/PlayerDisguise.java | 66 +++++++++++-------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java b/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java index 796c905e..43f661ba 100644 --- a/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java +++ b/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java @@ -143,8 +143,12 @@ public class PlayerDisguise extends TargetedDisguise { return DisguiseConfig.isScoreboardNames(); } + /** + * The actual name that'll be sent in the game profile, not the name that they're known as + */ public String getProfileName() { - return isUpsideDown() ? "Dinnerbone" : isDeadmau5Ears() ? "deadmau5" : hasScoreboardName() ? getScoreboardName().getPlayer() : getName(); + return isUpsideDown() ? "Dinnerbone" : isDeadmau5Ears() ? "deadmau5" : + hasScoreboardName() ? getScoreboardName().getPlayer() : DisguiseConfig.isScoreboardNames() && getName().isEmpty() ? "LD_NoName" : getName(); } public UUID getUUID() { @@ -210,6 +214,10 @@ public class PlayerDisguise extends TargetedDisguise { getWatcher().setInternalUpsideDown(upsideDown); + if (gameProfile != null) { + gameProfile = ReflectionManager.getGameProfileWithThisSkin(uuid, getProfileName(), getGameProfile()); + } + if (isDisguiseInUse()) { resendDisguise(DisguiseConfig.isArmorstandsName() ? getName() : "Dinnerbone", true); } else { @@ -226,6 +234,10 @@ public class PlayerDisguise extends TargetedDisguise { this.deadmau5Ears = deadmau5Ears; + if (gameProfile != null) { + gameProfile = ReflectionManager.getGameProfileWithThisSkin(uuid, getProfileName(), getGameProfile()); + } + if (isDisguiseInUse()) { resendDisguise(DisguiseConfig.isArmorstandsName() ? getName() : "deadmau5", true); } else { @@ -468,8 +480,7 @@ public class PlayerDisguise extends TargetedDisguise { } }; - WrappedGameProfile gameProfile = DisguiseUtilities - .getProfileFromMojang(this.skinToUse, currentLookup, DisguiseConfig.isContactMojangServers()); + WrappedGameProfile gameProfile = DisguiseUtilities.getProfileFromMojang(this.skinToUse, currentLookup, DisguiseConfig.isContactMojangServers()); if (gameProfile != null) { setSkin(gameProfile); @@ -516,29 +527,31 @@ public class PlayerDisguise extends TargetedDisguise { } private void refreshDisguise() { - if (DisguiseUtilities.isDisguiseInUse(this)) { - if (isDisplayedInTab()) { - PacketContainer addTab = DisguiseUtilities.getTabPacket(this, PlayerInfoAction.ADD_PLAYER); - - PacketContainer deleteTab = addTab.shallowClone(); - deleteTab.getPlayerInfoAction().write(0, PlayerInfoAction.REMOVE_PLAYER); - - try { - for (Player player : Bukkit.getOnlinePlayers()) { - if (!canSee(player)) { - continue; - } - - ProtocolLibrary.getProtocolManager().sendServerPacket(player, deleteTab); - ProtocolLibrary.getProtocolManager().sendServerPacket(player, addTab); - } - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - } - - DisguiseUtilities.refreshTrackers(this); + if (!DisguiseUtilities.isDisguiseInUse(this)) { + return; } + + if (isDisplayedInTab()) { + PacketContainer addTab = DisguiseUtilities.getTabPacket(this, PlayerInfoAction.ADD_PLAYER); + + PacketContainer deleteTab = addTab.shallowClone(); + deleteTab.getPlayerInfoAction().write(0, PlayerInfoAction.REMOVE_PLAYER); + + try { + for (Player player : Bukkit.getOnlinePlayers()) { + if (!canSee(player)) { + continue; + } + + ProtocolLibrary.getProtocolManager().sendServerPacket(player, deleteTab); + ProtocolLibrary.getProtocolManager().sendServerPacket(player, addTab); + } + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + } + + DisguiseUtilities.refreshTrackers(this); } @Override @@ -634,8 +647,7 @@ public class PlayerDisguise extends TargetedDisguise { } }; - WrappedGameProfile gameProfile = DisguiseUtilities - .getProfileFromMojang(this.skinToUse, currentLookup, DisguiseConfig.isContactMojangServers()); + WrappedGameProfile gameProfile = DisguiseUtilities.getProfileFromMojang(this.skinToUse, currentLookup, DisguiseConfig.isContactMojangServers()); if (gameProfile != null) { setSkin(gameProfile);