lucaargolo / kibe

A miscellaneous mod for Minecraft that adds a bunch of random, and mostly unoriginal things.
Mozilla Public License 2.0
46 stars 29 forks source link

Crash with Minecraft Comes Alive + Spikes #203

Open glarmer opened 1 year ago

glarmer commented 1 year ago

Description: When a Minecraft Comes Alive entity comes into collision with a gold or diamond spike there is an error as they can not be cast to FakePlayerEntity. The end result is a crash.

Exception can be seen here: https://pastebin.com/WtMu8zQN

Relevant code: https://github.com/lucaargolo/kibe/blob/1.19/src/main/kotlin/io/github/lucaargolo/kibe/blocks/miscellaneous/Spikes.kt

override fun onEntityCollision(state: BlockState, world: World, pos: BlockPos, entity: Entity) {
    if(!world.isClient && entity is LivingEntity) {
        SpikeHelper.setSpike(entity, type)
        when(type) {
            Type.IRON, Type.STONE -> entity.damage(DamageSource.GENERIC, type.damage)
            Type.GOLD, Type.DIAMOND -> entity.damage(DamageSource.player(FakePlayerEntity(world)), type.damage)
        }
        SpikeHelper.setSpike(entity, null)
    }
}

Temp fix: As a temporary fix I surrounded the erroring code in a try catch and just made it do the IRON/STONE damage method where no cast is used. This prevents any crashes at the very least.