11package carpet .mixins ;
22
33import carpet .CarpetSettings ;
4+ import net .minecraft .block .BlockState ;
45import net .minecraft .block .HopperBlock ;
56import net .minecraft .block .entity .BlockEntityType ;
67import net .minecraft .block .entity .HopperBlockEntity ;
78import net .minecraft .block .entity .LootableContainerBlockEntity ;
9+ import net .minecraft .inventory .Inventory ;
810import net .minecraft .item .ItemStack ;
911import net .minecraft .util .DyeColor ;
1012import net .minecraft .util .math .BlockPos ;
13+ import net .minecraft .world .World ;
1114import org .spongepowered .asm .mixin .Mixin ;
1215import org .spongepowered .asm .mixin .Shadow ;
1316import org .spongepowered .asm .mixin .injection .At ;
1922@ Mixin (HopperBlockEntity .class )
2023public abstract class HopperBlockEntityMixin extends LootableContainerBlockEntity {
2124
22- protected HopperBlockEntityMixin (BlockEntityType <?> blockEntityType_1 ) {
23- super (blockEntityType_1 );
25+
26+ protected HopperBlockEntityMixin (BlockEntityType <?> blockEntityType , BlockPos blockPos , BlockState blockState )
27+ {
28+ super (blockEntityType , blockPos , blockState );
2429 }
2530
2631 @ Shadow
@@ -37,21 +42,21 @@ protected HopperBlockEntityMixin(BlockEntityType<?> blockEntityType_1) {
3742 @ Shadow public abstract void setStack (int slot , ItemStack stack );
3843
3944 @ Inject (method = "insert" , at = @ At ("HEAD" ), cancellable = true )
40- private void onInsert (CallbackInfoReturnable <Boolean > cir )
45+ private static void onInsert (World world , BlockPos blockPos , BlockState blockState , Inventory inventory , CallbackInfoReturnable <Boolean > cir )
4146 {
4247 if (CarpetSettings .hopperCounters ) {
4348 DyeColor wool_color = WoolTool .getWoolColorAtPosition (
44- getWorld () ,
45- new BlockPos ( getHopperX (), getHopperY (), getHopperZ ()) .offset (this . getCachedState () .get (HopperBlock .FACING )));
49+ world ,
50+ blockPos .offset (blockState .get (HopperBlock .FACING )));
4651 if (wool_color != null )
4752 {
48- for (int i = 0 ; i < size (); ++i )
53+ for (int i = 0 ; i < inventory . size (); ++i )
4954 {
50- if (!this .getStack (i ).isEmpty ())
55+ if (!inventory .getStack (i ).isEmpty ())
5156 {
52- ItemStack itemstack = this .getStack (i );//.copy();
53- HopperCounter .COUNTERS .get (wool_color ).add (this . getWorld () .getServer (), itemstack );
54- this .setStack (i , ItemStack .EMPTY );
57+ ItemStack itemstack = inventory .getStack (i );//.copy();
58+ HopperCounter .COUNTERS .get (wool_color ).add (world .getServer (), itemstack );
59+ inventory .setStack (i , ItemStack .EMPTY );
5560 }
5661 }
5762 cir .setReturnValue (true );
0 commit comments