Luke100000 / ImmersiveAircraft

Various vanilla-friendly aircraft to explore the world at a higher pace.
https://modrinth.com/mod/immersive-aircraft
GNU General Public License v3.0
41 stars 28 forks source link

Stack overflow on airplane crash when crash explosions are enabled #105

Closed Aiq0 closed 8 months ago

Aiq0 commented 9 months ago

Fabric 1.19.2 Immersive Aircraft 0.6.2

When enableCrashExplosion is enabled in config, crashing 2 airplanes causes stack overflow:

Airplane hurt creates explosion before destroying airplane, therefore explosion calls hurt, which calls explosion, which calls hurt, which calls explosion, ...

Also, the aircraft should be destroyed after dropping items, as this bug also causes a items duplication (on each explosion, it also drops items).

connected to server after restarting

Error:

java.lang.StackOverflowError: null
    at Not Enough Crashes deobfuscated stack trace.(1.19.2+build.28) ~[?:?]
    at net.minecraft.util.crash.CrashReport.create(CrashReport:259) ~[?:?]
    at net.minecraft.server.network.ServerPlayNetworkHandler.sendPacket(ServerPlayNetworkHandler:1258) ~[?:?]
    at net.minecraft.server.network.ServerPlayNetworkHandler.sendPacket(ServerPlayNetworkHandler:1251) ~[?:?]
    at net.minecraft.server.network.EntityTrackerEntry.sendPackets(EntityTrackerEntry:230) ~[?:?]
    at net.minecraft.server.network.EntityTrackerEntry.startTracking(EntityTrackerEntry:220) ~[?:?]
    at net.minecraft.server.world.ThreadedAnvilChunkStorage$EntityTracker.updateTrackedStatus(ThreadedAnvilChunkStorage:1416) ~[?:?]
    at net.minecraft.server.world.ThreadedAnvilChunkStorage$EntityTracker.updateTrackedStatus(ThreadedAnvilChunkStorage:1442) ~[?:?]
    at net.minecraft.server.world.ThreadedAnvilChunkStorage.loadEntity(ThreadedAnvilChunkStorage:1198) ~[?:?]
    at net.minecraft.server.world.ServerChunkManager.loadEntity(ServerChunkManager:477) ~[?:?]
    at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld:1560) ~[?:?]
    at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld:1538) ~[?:?]
    at net.minecraft.server.world.ServerEntityManager.startTracking(ServerEntityManager:217) ~[?:?]
    at net.minecraft.server.world.ServerEntityManager.addEntity(ServerEntityManager:187) ~[?:?]
    at net.minecraft.server.world.ServerEntityManager.addEntity(ServerEntityManager:168) ~[?:?]
    at net.minecraft.server.world.ServerWorld.addEntity(ServerWorld:865) ~[?:?]
    at net.minecraft.server.world.ServerWorld.spawnEntity(ServerWorld:816) ~[?:?]
    at net.minecraft.entity.Entity.dropStack(Entity:1876) ~[?:?]
    at net.minecraft.entity.Entity.dropItem(Entity:1857) ~[?:?]
    at net.minecraft.entity.Entity.dropItem(Entity:1852) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.drop(VehicleEntity.java:225) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at immersive_aircraft.entity.InventoryVehicleEntity.drop(InventoryVehicleEntity.java:92) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:205) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    at immersive_aircraft.entity.VehicleEntity.damage(VehicleEntity.java:208) ~[immersive_aircraft-0.6.2+1.19.2-fabric.jar:?]
    at net.minecraft.world.explosion.Explosion.collectBlocksAndDamageEntities(Explosion:227) ~[?:?]
    at net.minecraft.server.world.ServerWorld.createExplosion(ServerWorld:1048) ~[?:?]
    at net.minecraft.world.World.createExplosion(World:494) ~[?:?]
    ...
Luke100000 commented 8 months ago

fixed!