From c34c419fa83a848522727683ac5894e8b0be7d77 Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Sun, 4 Apr 2021 15:09:51 +0300 Subject: [PATCH] Screen handler updates (#2264) --- .../gui/screen/ingame/HandledScreen.mapping | 4 ++-- .../ClientPlayerInteractionManager.mapping | 2 +- .../packet/c2s/play/ClickSlotC2SPacket.mapping | 6 +++--- .../screen/CartographyTableScreenHandler.mapping | 5 ++++- .../minecraft/screen/ForgingScreenHandler.mapping | 5 +++++ .../minecraft/screen/HopperScreenHandler.mapping | 1 + .../net/minecraft/screen/ScreenHandler.mapping | 15 +++++++++++---- unpick-definitions/screen_handler_slot_ids.unpick | 6 ++++++ 8 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 unpick-definitions/screen_handler_slot_ids.unpick diff --git a/mappings/net/minecraft/client/gui/screen/ingame/HandledScreen.mapping b/mappings/net/minecraft/client/gui/screen/ingame/HandledScreen.mapping index fd7dbdd1ec..97829aae87 100644 --- a/mappings/net/minecraft/client/gui/screen/ingame/HandledScreen.mapping +++ b/mappings/net/minecraft/client/gui/screen/ingame/HandledScreen.mapping @@ -60,8 +60,8 @@ CLASS net/minecraft/class_465 net/minecraft/client/gui/screen/ingame/HandledScre METHOD method_2383 onMouseClick (Lnet/minecraft/class_1735;IILnet/minecraft/class_1713;)V COMMENT @see net.minecraft.screen.ScreenHandler#onSlotClick(int, int, net.minecraft.screen.slot.SlotActionType, net.minecraft.entity.player.PlayerEntity) ARG 1 slot - ARG 2 invSlot - ARG 3 clickData + ARG 2 slotId + ARG 3 button ARG 4 actionType METHOD method_2384 handleHotbarKeyPressed (II)Z ARG 1 keyCode diff --git a/mappings/net/minecraft/client/network/ClientPlayerInteractionManager.mapping b/mappings/net/minecraft/client/network/ClientPlayerInteractionManager.mapping index 28f37f3dea..c80d9cafc0 100644 --- a/mappings/net/minecraft/client/network/ClientPlayerInteractionManager.mapping +++ b/mappings/net/minecraft/client/network/ClientPlayerInteractionManager.mapping @@ -59,7 +59,7 @@ CLASS net/minecraft/class_636 net/minecraft/client/network/ClientPlayerInteracti COMMENT @see net.minecraft.screen.ScreenHandler#onSlotClick(int, int, net.minecraft.screen.slot.SlotActionType, net.minecraft.entity.player.PlayerEntity) ARG 1 syncId ARG 2 slotId - ARG 3 clickData + ARG 3 button ARG 4 actionType METHOD method_2907 setGameMode (Lnet/minecraft/class_1934;)V ARG 1 gameMode diff --git a/mappings/net/minecraft/network/packet/c2s/play/ClickSlotC2SPacket.mapping b/mappings/net/minecraft/network/packet/c2s/play/ClickSlotC2SPacket.mapping index 13488332bb..f66cf58251 100644 --- a/mappings/net/minecraft/network/packet/c2s/play/ClickSlotC2SPacket.mapping +++ b/mappings/net/minecraft/network/packet/c2s/play/ClickSlotC2SPacket.mapping @@ -1,14 +1,14 @@ CLASS net/minecraft/class_2813 net/minecraft/network/packet/c2s/play/ClickSlotC2SPacket FIELD field_12815 actionType Lnet/minecraft/class_1713; FIELD field_12816 stack Lnet/minecraft/class_1799; - FIELD field_12817 clickData I + FIELD field_12817 button I FIELD field_12818 slot I FIELD field_12819 syncId I FIELD field_29540 modifiedStacks Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; METHOD (IIILnet/minecraft/class_1713;Lnet/minecraft/class_1799;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;)V ARG 1 syncId ARG 2 slot - ARG 3 clickData + ARG 3 button ARG 4 actionType ARG 5 stack ARG 6 modifiedStacks @@ -16,7 +16,7 @@ CLASS net/minecraft/class_2813 net/minecraft/network/packet/c2s/play/ClickSlotC2 ARG 1 buf METHOD method_12190 getStack ()Lnet/minecraft/class_1799; METHOD method_12192 getSlot ()I - METHOD method_12193 getClickData ()I + METHOD method_12193 getButton ()I METHOD method_12194 getSyncId ()I METHOD method_12195 getActionType ()Lnet/minecraft/class_1713; METHOD method_34678 getModifiedStacks ()Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; diff --git a/mappings/net/minecraft/screen/CartographyTableScreenHandler.mapping b/mappings/net/minecraft/screen/CartographyTableScreenHandler.mapping index c16cdf2aee..2ae1a1cd74 100644 --- a/mappings/net/minecraft/screen/CartographyTableScreenHandler.mapping +++ b/mappings/net/minecraft/screen/CartographyTableScreenHandler.mapping @@ -1,8 +1,11 @@ CLASS net/minecraft/class_3910 net/minecraft/screen/CartographyTableScreenHandler FIELD field_17293 inventory Lnet/minecraft/class_1263; FIELD field_17294 context Lnet/minecraft/class_3914; - FIELD field_19272 resultSlot Lnet/minecraft/class_1731; + FIELD field_19272 resultInventory Lnet/minecraft/class_1731; FIELD field_20382 lastTakeResultTime J + FIELD field_30773 MAP_SLOT_INDEX I + FIELD field_30774 MATERIAL_SLOT_INDEX I + FIELD field_30775 RESULT_SLOT_INDEX I METHOD (ILnet/minecraft/class_1661;)V ARG 1 syncId ARG 2 inventory diff --git a/mappings/net/minecraft/screen/ForgingScreenHandler.mapping b/mappings/net/minecraft/screen/ForgingScreenHandler.mapping index 889c20d84c..26909c53ba 100644 --- a/mappings/net/minecraft/screen/ForgingScreenHandler.mapping +++ b/mappings/net/minecraft/screen/ForgingScreenHandler.mapping @@ -3,6 +3,11 @@ CLASS net/minecraft/class_4861 net/minecraft/screen/ForgingScreenHandler FIELD field_22480 input Lnet/minecraft/class_1263; FIELD field_22481 context Lnet/minecraft/class_3914; FIELD field_22482 player Lnet/minecraft/class_1657; + FIELD field_30813 PLAYER_INVENTORY_START_INDEX I + FIELD field_30814 FIRST_INPUT_SLOT_INDEX I + FIELD field_30815 SECOND_INPUT_SLOT_INDEX I + FIELD field_30816 OUTPUT_SLOT_INDEX I + FIELD field_30819 PLAYER_INVENTORY_END_INDEX I METHOD (Lnet/minecraft/class_3917;ILnet/minecraft/class_1661;Lnet/minecraft/class_3914;)V ARG 1 type ARG 2 syncId diff --git a/mappings/net/minecraft/screen/HopperScreenHandler.mapping b/mappings/net/minecraft/screen/HopperScreenHandler.mapping index 2f4f3d3729..bc4c009bb4 100644 --- a/mappings/net/minecraft/screen/HopperScreenHandler.mapping +++ b/mappings/net/minecraft/screen/HopperScreenHandler.mapping @@ -1,4 +1,5 @@ CLASS net/minecraft/class_1722 net/minecraft/screen/HopperScreenHandler + FIELD field_30801 SLOT_COUNT I FIELD field_7826 inventory Lnet/minecraft/class_1263; METHOD (ILnet/minecraft/class_1661;)V ARG 1 syncId diff --git a/mappings/net/minecraft/screen/ScreenHandler.mapping b/mappings/net/minecraft/screen/ScreenHandler.mapping index 73975d08a3..57d3ec110a 100644 --- a/mappings/net/minecraft/screen/ScreenHandler.mapping +++ b/mappings/net/minecraft/screen/ScreenHandler.mapping @@ -6,6 +6,10 @@ CLASS net/minecraft/class_1703 net/minecraft/screen/ScreenHandler FIELD field_29207 previousCursorStack Lnet/minecraft/class_1799; FIELD field_29208 syncHandler Lnet/minecraft/class_5916; FIELD field_29209 disableSync Z + FIELD field_29559 trackedPropertyValues Lit/unimi/dsi/fastutil/ints/IntList; + FIELD field_30730 EMPTY_SPACE_SLOT_INDEX I + COMMENT A special slot index value ({@value}) indicating that the player has clicked outside the main panel + COMMENT of a screen. Used for dropping the cursor stack. FIELD field_7757 quickCraftSlots Ljava/util/Set; FIELD field_7759 quickCraftStage I FIELD field_7761 slots Lnet/minecraft/class_2371; @@ -46,7 +50,7 @@ CLASS net/minecraft/class_1703 net/minecraft/screen/ScreenHandler COMMENT (int, int, SlotActionType, PlayerEntity)} in a try-catch block that wraps COMMENT exceptions from this method into a crash report. ARG 1 slotIndex - ARG 2 clickData + ARG 2 button ARG 3 actionType ARG 4 player METHOD method_34245 setPreviousTrackedSlot (ILnet/minecraft/class_1799;)V @@ -63,7 +67,7 @@ CLASS net/minecraft/class_1703 net/minecraft/screen/ScreenHandler METHOD method_34250 setPreviousCursorStack (Lnet/minecraft/class_1799;)V ARG 1 stack METHOD method_34252 syncState ()V - METHOD method_34253 updateSlot (ILnet/minecraft/class_1799;Ljava/util/function/Supplier;)V + METHOD method_34253 checkSlotUpdates (ILnet/minecraft/class_1799;Ljava/util/function/Supplier;)V ARG 1 slot ARG 2 stack ARG 3 copySupplier @@ -72,8 +76,11 @@ CLASS net/minecraft/class_1703 net/minecraft/screen/ScreenHandler METHOD method_34255 getCursorStack ()Lnet/minecraft/class_1799; METHOD method_34256 disableSyncing ()V METHOD method_34257 enableSyncing ()V - METHOD method_34258 updateCursorStack ()V + METHOD method_34258 checkCursorStackUpdates ()V METHOD method_34259 getCursorCommandItemSlot ()Lnet/minecraft/class_5630; + METHOD method_34715 checkPropertyUpdates (II)V + ARG 1 id + ARG 2 value METHOD method_7591 packQuickCraftData (II)I ARG 0 quickCraftStage ARG 1 buttonId @@ -84,7 +91,7 @@ CLASS net/minecraft/class_1703 net/minecraft/screen/ScreenHandler METHOD method_7593 onSlotClick (IILnet/minecraft/class_1713;Lnet/minecraft/class_1657;)V COMMENT Performs a slot click. This can behave in many different ways depending mainly on the action type. ARG 1 slotIndex - ARG 2 clickData + ARG 2 button ARG 3 actionType COMMENT The type of slot click. Check the docs for each SlotActionType value for details ARG 4 player diff --git a/unpick-definitions/screen_handler_slot_ids.unpick b/unpick-definitions/screen_handler_slot_ids.unpick new file mode 100644 index 0000000000..7a9b003ba6 --- /dev/null +++ b/unpick-definitions/screen_handler_slot_ids.unpick @@ -0,0 +1,6 @@ +v2 + +constant screen_handler_slot_ids net/minecraft/screen/ScreenHandler EMPTY_SPACE_SLOT_INDEX + +target_method net/minecraft/screen/ScreenHandler internalOnSlotClick (IILnet/minecraft/screen/slot/SlotActionType;Lnet/minecraft/entity/player/PlayerEntity;)V + param 0 screen_handler_slot_ids