diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/entities/EntityHitBoxRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/entities/EntityHitBoxRenderer.kt index b91d185a2..b8b6d46c2 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/entities/EntityHitBoxRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/entities/EntityHitBoxRenderer.kt @@ -53,16 +53,10 @@ class EntityHitBoxRenderer( } }) connection.registerEvent(CallbackEventInvoker.of { - val meshes: MutableSet = mutableSetOf() - for (entity in it.entities) { - val mesh = this.meshes.getAndRemove(entity) ?: continue - meshes += mesh - } + val mesh = this.meshes.getAndRemove(it.entity) ?: return@of renderWindow.queue += { - for (mesh in meshes) { - mesh.unload(false) - } + mesh.unload(false) } }) } diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/EntityDestroyEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/EntityDestroyEvent.kt index 3c6dd495a..71ad2a0ff 100644 --- a/src/main/java/de/bixilon/minosoft/modding/event/events/EntityDestroyEvent.kt +++ b/src/main/java/de/bixilon/minosoft/modding/event/events/EntityDestroyEvent.kt @@ -15,15 +15,9 @@ package de.bixilon.minosoft.modding.event.events import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.modding.event.EventInitiators import de.bixilon.minosoft.protocol.network.connection.PlayConnection -import de.bixilon.minosoft.protocol.packets.s2c.play.EntityDestroyS2CP -import de.bixilon.minosoft.util.KUtil.entities class EntityDestroyEvent( - connection: PlayConnection, - initiator: EventInitiators, - val entities: Set, -) : PlayConnectionEvent(connection, initiator) { - - constructor(connection: PlayConnection, packet: EntityDestroyS2CP) : this(connection, EventInitiators.SERVER, packet.entityIds.entities(connection)) - -} + connection: PlayConnection, + initiator: EventInitiators, + val entity: Entity, +) : PlayConnectionEvent(connection, initiator) \ No newline at end of file diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/EntityDestroyS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/EntityDestroyS2CP.kt index c0d236d28..d7f678956 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/EntityDestroyS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/EntityDestroyS2CP.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.protocol.packets.s2c.play import de.bixilon.minosoft.Minosoft +import de.bixilon.minosoft.modding.event.EventInitiators import de.bixilon.minosoft.modding.event.events.EntityDestroyEvent import de.bixilon.minosoft.protocol.network.connection.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket @@ -35,11 +36,11 @@ class EntityDestroyS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() { override fun handle(connection: PlayConnection) { - connection.fireEvent(EntityDestroyEvent(connection, this)) for (entityId in entityIds) { val entity = connection.world.entities[entityId] ?: continue entity.vehicle?.passengers?.remove(entity) + connection.fireEvent(EntityDestroyEvent(connection, EventInitiators.SERVER, entity)) connection.world.entities.remove(entityId) } }