Skip to content

Commit 37e2218

Browse files
committed
- Fix Netherite Shulker boxes nesting in Forge
1 parent 80dc342 commit 37e2218

4 files changed

Lines changed: 46 additions & 3 deletions

File tree

forge/src/main/java/com/oroarmor/netherite_plus/mixin/NetheriteAnvilScreenHandlerMixin.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22

33
import java.util.Map;
44

5-
import com.oroarmor.netherite_plus.client.gui.screen.NetheriteAnvilScreen;
65
import com.oroarmor.netherite_plus.screen.NetheriteAnvilScreenHandler;
76
import javax.annotation.Nonnull;
87
import javax.annotation.Nullable;
9-
import net.minecraftforge.common.ForgeHooks;
108
import net.minecraftforge.common.MinecraftForge;
119
import net.minecraftforge.event.AnvilUpdateEvent;
1210
import org.spongepowered.asm.mixin.Mixin;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.oroarmor.netherite_plus.mixin;
2+
3+
import com.oroarmor.netherite_plus.block.NetheriteShulkerBoxBlock;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.injection.At;
6+
import org.spongepowered.asm.mixin.injection.Inject;
7+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
8+
9+
import net.minecraft.block.Block;
10+
import net.minecraft.block.entity.ShulkerBoxBlockEntity;
11+
import net.minecraft.item.ItemStack;
12+
import net.minecraft.util.math.Direction;
13+
14+
@Mixin(ShulkerBoxBlockEntity.class)
15+
public class ShulkerBoxBlockEntityMixin {
16+
@Inject(method = "canInsert", at = @At("HEAD"), cancellable = true)
17+
public void canInsert(int slot, ItemStack stack, Direction dir, CallbackInfoReturnable<Boolean> cir) {
18+
if (Block.getBlockFromItem(stack.getItem()) instanceof NetheriteShulkerBoxBlock) {
19+
cir.setReturnValue(false);
20+
}
21+
}
22+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.oroarmor.netherite_plus.mixin;
2+
3+
import com.oroarmor.netherite_plus.block.NetheriteShulkerBoxBlock;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.injection.At;
6+
import org.spongepowered.asm.mixin.injection.Inject;
7+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
8+
9+
import net.minecraft.block.Block;
10+
import net.minecraft.item.ItemStack;
11+
import net.minecraft.screen.slot.ShulkerBoxSlot;
12+
13+
@Mixin(ShulkerBoxSlot.class)
14+
public class ShulkerBoxSlotMixin {
15+
@Inject(method = "canInsert", at = @At("HEAD"), cancellable = true)
16+
public void canInsert(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
17+
if (Block.getBlockFromItem(stack.getItem()) instanceof NetheriteShulkerBoxBlock) {
18+
cir.setReturnValue(false);
19+
}
20+
}
21+
}

forge/src/main/resources/netherite-plus-forge.mixins.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
"compatibilityLevel": "JAVA_8",
66
"mixins": [
77
"NetheriteAnvilScreenHandlerMixin",
8-
"NetheriteElytraMixin"
8+
"NetheriteElytraMixin",
9+
"ShulkerBoxBlockEntityMixin",
10+
"ShulkerBoxSlotMixin"
911
],
1012
"client": [
1113
],

0 commit comments

Comments
 (0)