Properly translate player entity UUID for vaults

This commit is contained in:
Camotoy 2024-06-15 22:40:29 -04:00
parent 851ed36244
commit 6025931c7d
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F

View file

@ -76,11 +76,15 @@ public class VaultBlockEntityTranslator extends BlockEntityTranslator {
LongList bedrockPlayers = new LongArrayList(connectedPlayers.size()); LongList bedrockPlayers = new LongArrayList(connectedPlayers.size());
for (int[] player : connectedPlayers) { for (int[] player : connectedPlayers) {
UUID uuid = uuidFromIntArray(player); UUID uuid = uuidFromIntArray(player);
if (uuid.equals(session.getPlayerEntity().getUuid())) {
bedrockPlayers.add(session.getPlayerEntity().getGeyserId());
} else {
PlayerEntity playerEntity = session.getEntityCache().getPlayerEntity(uuid); PlayerEntity playerEntity = session.getEntityCache().getPlayerEntity(uuid);
if (playerEntity != null) { if (playerEntity != null) {
bedrockPlayers.add(playerEntity.getGeyserId()); bedrockPlayers.add(playerEntity.getGeyserId());
} }
} }
}
bedrockNbt.putList("connected_players", NbtType.LONG, bedrockPlayers); bedrockNbt.putList("connected_players", NbtType.LONG, bedrockPlayers);
// Fill this in, since as of Java 1.21, Bedrock always seems to include it, but Java assumes the default // Fill this in, since as of Java 1.21, Bedrock always seems to include it, but Java assumes the default