From 8fa71dd5c3a127677ac5d20af8c018a8a9b1036b Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sun, 17 May 2020 12:37:36 +0800 Subject: [PATCH] Nullable entity in loot context --- .../arclight/mixin/core/block/BlockMixin.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/block/BlockMixin.java b/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/block/BlockMixin.java index 08be3b78..8658a3e2 100644 --- a/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/block/BlockMixin.java +++ b/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/block/BlockMixin.java @@ -3,15 +3,20 @@ package io.izzel.arclight.mixin.core.block; import io.izzel.arclight.bridge.block.BlockBridge; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; import net.minecraft.entity.item.ItemEntity; import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.GameRules; import net.minecraft.world.IWorld; import net.minecraft.world.IWorldReader; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import net.minecraft.world.storage.loot.LootContext; +import net.minecraft.world.storage.loot.LootParameters; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; @@ -52,6 +57,16 @@ public abstract class BlockMixin implements BlockBridge { } } + /** + * @author IzzelAliz + * @reason + */ + @Overwrite + public static List func_220077_a(BlockState state, ServerWorld worldIn, BlockPos pos, @Nullable TileEntity tileEntityIn, Entity entityIn, ItemStack stack) { + LootContext.Builder lootcontext$builder = (new LootContext.Builder(worldIn)).withRandom(worldIn.rand).withParameter(LootParameters.POSITION, pos).withParameter(LootParameters.TOOL, stack).withNullableParameter(LootParameters.THIS_ENTITY, entityIn).withNullableParameter(LootParameters.BLOCK_ENTITY, tileEntityIn); + return state.getDrops(lootcontext$builder); + } + public int getExpDrop(BlockState blockState, World world, BlockPos blockPos, ItemStack itemStack) { return 0; }