diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index a23ba020e..9b417066a 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -143,7 +143,7 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev private final EventNode eventNode; private final Set permissions = new CopyOnWriteArraySet<>(); - protected UUID uuid; + private final UUID uuid; private boolean isActive; // False if entity has only been instanced without being added somewhere protected boolean removed; @@ -666,19 +666,6 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev return uuid; } - /** - * Changes the internal entity UUID, mostly unsafe. - * - * @param uuid the new entity uuid - */ - public void setUuid(@NotNull UUID uuid) { - if (instance != null) { - instance.getEntityTracker().changeUuid(this, this.uuid); - } - - this.uuid = uuid; - } - /** * Returns false just after instantiation, set to true after calling {@link #setInstance(Instance)}. * diff --git a/src/main/java/net/minestom/server/entity/LivingEntity.java b/src/main/java/net/minestom/server/entity/LivingEntity.java index efac09af6..04324a1c5 100644 --- a/src/main/java/net/minestom/server/entity/LivingEntity.java +++ b/src/main/java/net/minestom/server/entity/LivingEntity.java @@ -36,7 +36,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.time.Duration; -import java.time.temporal.TemporalUnit; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -568,7 +567,7 @@ public class LivingEntity extends Entity implements EquipmentHandler { */ public void setTeam(@Nullable Team team) { if (this.team == team) return; - String member = this instanceof Player player ? player.getUsername() : uuid.toString(); + String member = this instanceof Player player ? player.getUsername() : getUuid().toString(); if (this.team != null) { this.team.removeMember(member); } diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index f19e8e22f..7a3a073ce 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -229,7 +229,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable, private final PlayerVehicleInformation vehicleInformation = new PlayerVehicleInformation(); // Adventure - private Identity identity; + private final Identity identity; private final Pointers pointers; // Resource packs @@ -544,7 +544,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable, this.instance.getEntityTracker().nearbyEntitiesByChunkRange(respawnPosition, settings.getEffectiveViewDistance(), EntityTracker.Target.ENTITIES, entity -> { // Skip refreshing self with a new viewer - if (!entity.getUuid().equals(uuid) && entity.isViewer(this)) { + if (!entity.getUuid().equals(getUuid()) && entity.isViewer(this)) { entity.updateNewViewer(this); } }); @@ -2238,7 +2238,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable, @Override public @NotNull HoverEvent asHoverEvent(@NotNull UnaryOperator op) { - return HoverEvent.showEntity(ShowEntity.showEntity(EntityType.PLAYER, this.uuid, this.displayName)); + return HoverEvent.showEntity(ShowEntity.showEntity(EntityType.PLAYER, getUuid(), this.displayName)); } /** @@ -2382,13 +2382,6 @@ public class Player extends LivingEntity implements CommandSender, Localizable, return this.pointers; } - @Override - public void setUuid(@NotNull UUID uuid) { - super.setUuid(uuid); - // update identity - this.identity = Identity.identity(uuid); - } - @Override public boolean isPlayer() { return true; diff --git a/src/main/java/net/minestom/server/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/net/minestom/server/event/player/AsyncPlayerPreLoginEvent.java index 7dee182dd..13eea96a3 100644 --- a/src/main/java/net/minestom/server/event/player/AsyncPlayerPreLoginEvent.java +++ b/src/main/java/net/minestom/server/event/player/AsyncPlayerPreLoginEvent.java @@ -19,13 +19,11 @@ public class AsyncPlayerPreLoginEvent implements PlayerEvent { private final LoginPluginMessageProcessor pluginMessageProcessor; private String username; - private UUID playerUuid; public AsyncPlayerPreLoginEvent(@NotNull Player player, @NotNull LoginPluginMessageProcessor pluginMessageProcessor) { this.player = player; this.pluginMessageProcessor = pluginMessageProcessor; this.username = player.getUsername(); - this.playerUuid = player.getUuid(); } /** @@ -54,16 +52,7 @@ public class AsyncPlayerPreLoginEvent implements PlayerEvent { */ @NotNull public UUID getPlayerUuid() { - return playerUuid; - } - - /** - * Changes the player uuid. - * - * @param playerUuid the new player uuid - */ - public void setPlayerUuid(@NotNull UUID playerUuid) { - this.playerUuid = playerUuid; + return player.getUuid(); } /** diff --git a/src/main/java/net/minestom/server/instance/EntityTracker.java b/src/main/java/net/minestom/server/instance/EntityTracker.java index 4dd61c5d3..f83ae1097 100644 --- a/src/main/java/net/minestom/server/instance/EntityTracker.java +++ b/src/main/java/net/minestom/server/instance/EntityTracker.java @@ -62,11 +62,6 @@ public sealed interface EntityTracker permits EntityTrackerImpl { void move(@NotNull Entity entity, @NotNull Point newPoint, @NotNull Target target, @Nullable Update update); - /** - * Called whenever the entity's uuid changes, can be called async - */ - void changeUuid(@NotNull Entity entity, UUID oldUuid); - @UnmodifiableView Collection chunkEntities(int chunkX, int chunkZ, @NotNull Target target); @UnmodifiableView diff --git a/src/main/java/net/minestom/server/instance/EntityTrackerImpl.java b/src/main/java/net/minestom/server/instance/EntityTrackerImpl.java index d1ef94861..8b387f1da 100644 --- a/src/main/java/net/minestom/server/instance/EntityTrackerImpl.java +++ b/src/main/java/net/minestom/server/instance/EntityTrackerImpl.java @@ -138,12 +138,6 @@ final class EntityTrackerImpl implements EntityTracker { } } - @Override - public void changeUuid(@NotNull Entity entity, UUID oldUuid) { - entriesByEntityUuid.remove(oldUuid); - entriesByEntityUuid.put(entity.getUuid(), new EntityTrackerEntry(entity, entity.getPosition())); - } - @Override public @Unmodifiable Collection chunkEntities(int chunkX, int chunkZ, @NotNull Target target) { final TargetEntry entry = targetEntries[target.ordinal()]; diff --git a/src/main/java/net/minestom/server/network/ConnectionManager.java b/src/main/java/net/minestom/server/network/ConnectionManager.java index 26991c779..329fc8fcf 100644 --- a/src/main/java/net/minestom/server/network/ConnectionManager.java +++ b/src/main/java/net/minestom/server/network/ConnectionManager.java @@ -233,9 +233,6 @@ public final class ConnectionManager { if (!player.getUsername().equals(eventUsername)) { player.setUsernameField(eventUsername); } - if (!player.getUuid().equals(eventUuid)) { - player.setUuid(eventUuid); - } } // Wait for pending login plugin messages diff --git a/src/main/java/net/minestom/server/network/UuidProvider.java b/src/main/java/net/minestom/server/network/UuidProvider.java index 8f2da5f57..7fe21c17e 100644 --- a/src/main/java/net/minestom/server/network/UuidProvider.java +++ b/src/main/java/net/minestom/server/network/UuidProvider.java @@ -1,6 +1,7 @@ package net.minestom.server.network; import net.minestom.server.network.player.PlayerConnection; +import org.jetbrains.annotations.NotNull; import java.util.UUID; @@ -22,5 +23,5 @@ public interface UuidProvider { * @param username the username given by the connection * @return the new {@link UUID} for the player */ - UUID provide(PlayerConnection playerConnection, String username); + @NotNull UUID provide(@NotNull PlayerConnection playerConnection, @NotNull String username); }