diff --git a/src/main/java/pm/c7/scout/mixin/DefaultedListMixin.java b/src/main/java/pm/c7/scout/mixin/DefaultedListMixin.java new file mode 100644 index 0000000..84dd057 --- /dev/null +++ b/src/main/java/pm/c7/scout/mixin/DefaultedListMixin.java @@ -0,0 +1,24 @@ +package pm.c7.scout.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.minecraft.util.collection.DefaultedList; +import pm.c7.scout.ScoutUtil; + +@Mixin(DefaultedList.class) +public class DefaultedListMixin { + @Inject(method = "get", at = @At("HEAD"), cancellable = true) + public void scout$fixIndexingSlots(int index, CallbackInfoReturnable cir) { + var playerScreenHandler = ScoutUtil.getPlayerScreenHandler(); + if (ScoutUtil.isBagSlot(index)) { + if (playerScreenHandler != null) { + cir.setReturnValue(ScoutUtil.getBagSlot(index, playerScreenHandler)); + } else { + cir.setReturnValue(null); + } + } + } +}