Compare commits

...

2 Commits

Author SHA1 Message Date
db74d07155
fix: mitigation for container tracker 2023-08-10 11:48:16 +08:00
d578db6fb2
fix: crash 2023-08-10 11:45:21 +08:00
2 changed files with 4 additions and 2 deletions

View File

@ -62,7 +62,7 @@ class ExchangeItem<E> : Behavior<E>(
owner.brain.eraseMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE)
if (closeAt != null) {
// opened
val chest = level.getBlockEntity(target!!)!!
val chest = level.getBlockEntity(target!!) ?: return
if (chest is ChestBlockEntity) {
ChestBlockEntity.playSound(level, target!!, level.getBlockState(target!!), SoundEvents.CHEST_CLOSE)
}

View File

@ -10,6 +10,7 @@ import net.minecraft.world.level.block.entity.BaseContainerBlockEntity
import quaedam.Quaedam
import quaedam.utils.getChunksNearby
import java.util.*
import kotlin.random.Random
class NearestVisibleContainer : Sensor<LivingEntity>() {
@ -33,7 +34,8 @@ class NearestVisibleContainer : Sensor<LivingEntity>() {
if (entity.tickCount and 0b11111 == 0) { // 32gt
val pos = level.getChunksNearby(entity.blockPosition(), 1)
.flatMap { it.blockEntities.filterValues { be -> be is BaseContainerBlockEntity }.keys }
.minByOrNull { it.distManhattan(entity.blockPosition()) }
.shuffled(Random(entity.random.nextLong()))
.minByOrNull { it.distManhattan(entity.blockPosition()) / 5 }
entity.brain.setMemory(memory.get(), pos)
}
}