diff --git a/connector/src/main/java/org/geysermc/connector/entity/player/PlayerEntity.java b/connector/src/main/java/org/geysermc/connector/entity/player/PlayerEntity.java index b43e020bc..85493660b 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/player/PlayerEntity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/player/PlayerEntity.java @@ -355,7 +355,9 @@ public class PlayerEntity extends LivingEntity { session.sendUpstreamPacket(packet); } } else { - if (valid && metadata.remove(EntityData.SCORE_TAG) != null) { + // Always remove the score tag first, then check for valid. + // That way the score tag is removed if the player was spawned, then despawned, and is being respawned + if (metadata.remove(EntityData.SCORE_TAG) != null && valid) { SetEntityDataPacket packet = new SetEntityDataPacket(); packet.setRuntimeEntityId(geyserId); packet.getMetadata().put(EntityData.SCORE_TAG, ""); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/scoreboard/JavaScoreboardObjectiveTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/scoreboard/JavaScoreboardObjectiveTranslator.java index fec000420..30ef6568d 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/scoreboard/JavaScoreboardObjectiveTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/scoreboard/JavaScoreboardObjectiveTranslator.java @@ -70,11 +70,9 @@ public class JavaScoreboardObjectiveTranslator extends PacketTranslator