From d83dac4f93a5398ed94b679c6be34cb9cca8411c Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Sun, 10 Dec 2023 01:25:39 +0100 Subject: [PATCH] forbid removing local player entity by id --- .../bixilon/minosoft/data/world/entities/WorldEntities.kt | 7 +++++-- .../packets/s2c/play/entity/spawn/EntityDestroyS2CP.kt | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/data/world/entities/WorldEntities.kt b/src/main/java/de/bixilon/minosoft/data/world/entities/WorldEntities.kt index e92282d8c..404a716f7 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/entities/WorldEntities.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/entities/WorldEntities.kt @@ -112,8 +112,11 @@ class WorldEntities : Iterable { lock.unlock() return } - if (entity !is LocalPlayerEntity) { - entities -= entity + if (entity is LocalPlayerEntity) { + idEntityMap.put(entityId, entity) + lock.unlock() + return + } entityIdMap.removeInt(entity) val uuid = entityUUIDMap.remove(entity) diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityDestroyS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityDestroyS2CP.kt index 92cf7396a..c4491dfb1 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityDestroyS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityDestroyS2CP.kt @@ -50,6 +50,6 @@ class EntityDestroyS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { if (reducedLog) { return } - Log.log(LogMessageType.NETWORK_IN, level = LogLevels.VERBOSE) { "Entity destroy (entityIds=$entityIds)" } + Log.log(LogMessageType.NETWORK_IN, level = LogLevels.VERBOSE) { "Entity destroy (entityIds=${entityIds.contentToString()})" } } }