diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt index 023eeac19..c5af4645a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt @@ -3,10 +3,12 @@ package ru.dbotthepony.mc.otm.block.entity.decorative import net.minecraft.advancements.CriteriaTriggers import net.minecraft.core.BlockPos import net.minecraft.core.HolderLookup +import net.minecraft.core.registries.Registries import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.LongTag import net.minecraft.nbt.StringTag import net.minecraft.network.chat.Component +import net.minecraft.resources.ResourceKey import net.minecraft.resources.ResourceLocation import net.minecraft.server.level.ServerLevel import net.minecraft.server.level.ServerPlayer @@ -21,6 +23,7 @@ import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.gameevent.GameEvent import net.minecraft.world.level.storage.loot.LootParams +import net.minecraft.world.level.storage.loot.LootTable import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets import net.minecraft.world.level.storage.loot.parameters.LootContextParams import net.minecraft.world.phys.Vec3 @@ -62,7 +65,7 @@ class CargoCrateBlockEntity( unpackLootTable(player) } - var lootTable: ResourceLocation? = null + var lootTable: ResourceKey? = null var lootTableSeed: Long? = null fun onPlayerOpen() { @@ -97,7 +100,7 @@ class CargoCrateBlockEntity( override fun loadAdditional(nbt: CompoundTag, registry: HolderLookup.Provider) { super.loadAdditional(nbt, registry) - lootTable = nbt.map(LOOT_TABLE_KEY) { it: StringTag -> ResourceLocation.tryParse(it.asString) } + lootTable = nbt.map(LOOT_TABLE_KEY) { it: StringTag -> ResourceLocation.tryParse(it.asString)?.let { ResourceKey.create(Registries.LOOT_TABLE, it) } } lootTableSeed = (nbt[LOOT_TABLE_SEED_KEY] as LongTag?)?.asLong } @@ -106,7 +109,7 @@ class CargoCrateBlockEntity( val lootTableSeed = lootTableSeed ?: 0L val server = level?.server ?: return - val loot = server.loot.getLootTable(lootTable) + val loot = server.reloadableRegistries().getLootTable(lootTable) if (ply is ServerPlayer) { CriteriaTriggers.GENERATE_LOOT.trigger(ply, lootTable)