Kibe Utilities

Kibe Utilities

8M Downloads

Crash with Minecraft Comes Alive + Spikes

glarmer opened this issue ยท 0 comments

commented

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.