Change nametag visibility to use &r and fix an issue where the tablist packet was wrong
This commit is contained in:
		@@ -1167,9 +1167,9 @@ public abstract class Disguise {
 | 
			
		||||
                }, 2);
 | 
			
		||||
 | 
			
		||||
        if (isHidePlayer() && getEntity() instanceof Player) {
 | 
			
		||||
            PacketContainer addTab = new PacketContainer(PacketType.Play.Server.PLAYER_INFO);
 | 
			
		||||
            addTab.getPlayerInfoAction().write(0, PlayerInfoAction.REMOVE_PLAYER);
 | 
			
		||||
            addTab.getPlayerInfoDataLists().write(0, Collections.singletonList(
 | 
			
		||||
            PacketContainer removeTab = new PacketContainer(PacketType.Play.Server.PLAYER_INFO);
 | 
			
		||||
            removeTab.getPlayerInfoAction().write(0, PlayerInfoAction.REMOVE_PLAYER);
 | 
			
		||||
            removeTab.getPlayerInfoDataLists().write(0, Collections.singletonList(
 | 
			
		||||
                    new PlayerInfoData(ReflectionManager.getGameProfile((Player) getEntity()), 0, NativeGameMode.SURVIVAL, WrappedChatComponent.fromText(""))));
 | 
			
		||||
 | 
			
		||||
            try {
 | 
			
		||||
@@ -1178,7 +1178,7 @@ public abstract class Disguise {
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    ProtocolLibrary.getProtocolManager().sendServerPacket(player, addTab);
 | 
			
		||||
                    ProtocolLibrary.getProtocolManager().sendServerPacket(player, removeTab);
 | 
			
		||||
                }
 | 
			
		||||
            } catch (InvocationTargetException e) {
 | 
			
		||||
                e.printStackTrace();
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ public class PlayerDisguise extends TargetedDisguise {
 | 
			
		||||
     * Has someone set name visible explicitly?
 | 
			
		||||
     */
 | 
			
		||||
    private boolean explicitNameVisible = false;
 | 
			
		||||
    private final UUID uuid = UUID.randomUUID();
 | 
			
		||||
    private final UUID uuid = ReflectionManager.getRandomUUID();
 | 
			
		||||
    private transient DisguiseUtilities.DScoreTeam scoreboardName;
 | 
			
		||||
    @Getter
 | 
			
		||||
    private boolean deadmau5Ears;
 | 
			
		||||
@@ -147,7 +147,8 @@ public class PlayerDisguise extends TargetedDisguise {
 | 
			
		||||
     * 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() : getName().isEmpty() ? "§r" : getName();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public UUID getUUID() {
 | 
			
		||||
 
 | 
			
		||||
@@ -1775,9 +1775,9 @@ public class DisguiseUtilities {
 | 
			
		||||
        if (mainTeam == null) {
 | 
			
		||||
            mainTeam = scoreboard.registerNewTeam("LD_NoName");
 | 
			
		||||
            mainTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
 | 
			
		||||
            mainTeam.addEntry("");
 | 
			
		||||
        } else if (!mainTeam.hasEntry("")) {
 | 
			
		||||
            mainTeam.addEntry("");
 | 
			
		||||
            mainTeam.addEntry("§r");
 | 
			
		||||
        } else if (!mainTeam.hasEntry("§r")) {
 | 
			
		||||
            mainTeam.addEntry("§r");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -165,9 +165,6 @@ public class PacketHandlerSpawn implements IPacketHandler {
 | 
			
		||||
            PlayerDisguise playerDisguise = (PlayerDisguise) disguise;
 | 
			
		||||
            boolean visibleOrNewCompat = playerDisguise.isNameVisible() || DisguiseConfig.isScoreboardNames();
 | 
			
		||||
 | 
			
		||||
            WrappedGameProfile spawnProfile = visibleOrNewCompat ? playerDisguise.getGameProfile() : ReflectionManager
 | 
			
		||||
                    .getGameProfileWithThisSkin(UUID.randomUUID(), playerDisguise.isNameVisible() ? playerDisguise.getName() : "", playerDisguise.getGameProfile());
 | 
			
		||||
 | 
			
		||||
            int entityId = disguisedEntity.getEntityId();
 | 
			
		||||
            PlayerSkinHandler.PlayerSkin skin;
 | 
			
		||||
 | 
			
		||||
@@ -178,7 +175,8 @@ public class PacketHandlerSpawn implements IPacketHandler {
 | 
			
		||||
                // Add player to the list, necessary to spawn them
 | 
			
		||||
                sendTab.getModifier().write(0, ReflectionManager.getEnumPlayerInfoAction(0));
 | 
			
		||||
 | 
			
		||||
                List playerList = Collections.singletonList(ReflectionManager.getPlayerInfoData(sendTab.getHandle(), spawnProfile));
 | 
			
		||||
                List playerList = Collections.singletonList(ReflectionManager.getPlayerInfoData(sendTab.getHandle(), ReflectionManager
 | 
			
		||||
                    .getGameProfileWithThisSkin(playerDisguise.getUUID(), playerDisguise.getProfileName(), playerDisguise.getGameProfile())));
 | 
			
		||||
                sendTab.getModifier().write(1, playerList);
 | 
			
		||||
 | 
			
		||||
                packets.addPacket(sendTab);
 | 
			
		||||
@@ -201,7 +199,7 @@ public class PacketHandlerSpawn implements IPacketHandler {
 | 
			
		||||
            PacketContainer spawnPlayer = new PacketContainer(PacketType.Play.Server.NAMED_ENTITY_SPAWN);
 | 
			
		||||
 | 
			
		||||
            spawnPlayer.getIntegers().write(0, entityId); // Id
 | 
			
		||||
            spawnPlayer.getModifier().write(1, spawnProfile.getUUID());
 | 
			
		||||
            spawnPlayer.getModifier().write(1, playerDisguise.getUUID());
 | 
			
		||||
 | 
			
		||||
            double dist = observer.getLocation().distanceSquared(disguisedEntity.getLocation());
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -720,7 +720,7 @@ public class ReflectionManager {
 | 
			
		||||
    /**
 | 
			
		||||
     * Used for generating a UUID with a custom version instead of the default 4. Workaround for China's NetEase servers
 | 
			
		||||
     */
 | 
			
		||||
    private static UUID getRandomUUID() {
 | 
			
		||||
    public static UUID getRandomUUID() {
 | 
			
		||||
        UUID uuid = UUID.randomUUID();
 | 
			
		||||
 | 
			
		||||
        if (DisguiseConfig.getUUIDGeneratedVersion() == 4) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user