Advertisement
supersaiyansubtlety

transferSlotTryOffhand

Nov 18th, 2020
834
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1.     @ModifyArg(method = "method_30010", index = 1, at = @At(value = "INVOKE", target = "Lnet/minecraft/screen/ScreenHandler;transferSlot(Lnet/minecraft/entity/player/PlayerEntity;I)Lnet/minecraft/item/ItemStack;"))
  2.     private int transferSlotTryOffhand(PlayerEntity playerEntity, int i) {
  3.         ClientPlayerEntity player = MinecraftClient.getInstance().player;
  4.         if (player == null) return i;
  5.  
  6.         ItemStack offHandStack = player.getOffHandStack();
  7.         if (offHandStack.isEmpty() || offHandStack.getCount() == offHandStack.getMaxCount())
  8.             // no stack or no room in stack in offhand
  9.             return i;
  10.  
  11.  
  12.         PlayerInventory playerInventory = player.inventory;
  13.         // index: 9-35, 36-44
  14.         // clickedIndex: 9-35, 0-8
  15.         int clickedIndex = i > 35 ? i - 36 : i;
  16.         ItemStack clickedStack = playerInventory.getStack(clickedIndex);
  17.         if (!ItemStack.areItemsEqual(offHandStack, clickedStack) || !ItemStack.areTagsEqual(offHandStack, clickedStack))
  18.             // stacks can't combine
  19.             return i;
  20.  
  21.         return 45;
  22.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement