diff --git a/data/bedrock/1.16.201/protocol.json b/data/bedrock/1.16.201/protocol.json index d016ad394..8b8e76ec6 100644 --- a/data/bedrock/1.16.201/protocol.json +++ b/data/bedrock/1.16.201/protocol.json @@ -2226,6 +2226,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.16.201/types.yml b/data/bedrock/1.16.201/types.yml index afbdf2138..6bac42bfa 100644 --- a/data/bedrock/1.16.201/types.yml +++ b/data/bedrock/1.16.201/types.yml @@ -687,11 +687,16 @@ ItemStackRequests: []varint # PrimaryEffect and SecondaryEffect are the effects that were selected from the beacon. primary_effect: zigzag32 secondary_effect: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # CreativeItemNetworkID is the network ID of the creative item that is being created. This is one of the # creative item network IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.16.210/protocol.json b/data/bedrock/1.16.210/protocol.json index 53beb2dea..7bb18a9c4 100644 --- a/data/bedrock/1.16.210/protocol.json +++ b/data/bedrock/1.16.210/protocol.json @@ -2226,7 +2226,7 @@ [ { "name": "request_id", - "type": "varint" + "type": "zigzag32" }, { "name": "actions", @@ -2387,7 +2387,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2415,6 +2415,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.16.210/types.yml b/data/bedrock/1.16.210/types.yml index 2210a93a8..5def6a39c 100644 --- a/data/bedrock/1.16.210/types.yml +++ b/data/bedrock/1.16.210/types.yml @@ -771,7 +771,7 @@ StackRequestSlotInfo: ItemStackRequest: # RequestID is a unique ID for the request. This ID is used by the server to send a response for this # specific request in the ItemStackResponse packet. - request_id: varint + request_id: zigzag32 actions: []varint type_id: u8 => # TakeStackRequestAction is sent by the client to the server to take x amount of items from one slot in a @@ -865,19 +865,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.16.220/protocol.json b/data/bedrock/1.16.220/protocol.json index ca4930ec7..341f84aab 100644 --- a/data/bedrock/1.16.220/protocol.json +++ b/data/bedrock/1.16.220/protocol.json @@ -2381,7 +2381,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2409,6 +2409,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.16.220/types.yml b/data/bedrock/1.16.220/types.yml index 22ff8bb11..ec97398af 100644 --- a/data/bedrock/1.16.220/types.yml +++ b/data/bedrock/1.16.220/types.yml @@ -873,19 +873,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.17.0/protocol.json b/data/bedrock/1.17.0/protocol.json index b0b452b70..40303ea65 100644 --- a/data/bedrock/1.17.0/protocol.json +++ b/data/bedrock/1.17.0/protocol.json @@ -2387,7 +2387,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2415,6 +2415,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.17.0/types.yml b/data/bedrock/1.17.0/types.yml index 3cea54920..6b5e846c1 100644 --- a/data/bedrock/1.17.0/types.yml +++ b/data/bedrock/1.17.0/types.yml @@ -876,19 +876,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.17.10/protocol.json b/data/bedrock/1.17.10/protocol.json index 13a2b7949..22745405e 100644 --- a/data/bedrock/1.17.10/protocol.json +++ b/data/bedrock/1.17.10/protocol.json @@ -2387,7 +2387,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2415,6 +2415,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.17.10/types.yml b/data/bedrock/1.17.10/types.yml index 03d776295..1572df9c2 100644 --- a/data/bedrock/1.17.10/types.yml +++ b/data/bedrock/1.17.10/types.yml @@ -876,19 +876,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.17.30/protocol.json b/data/bedrock/1.17.30/protocol.json index d4f9e6f6f..b20fbe554 100644 --- a/data/bedrock/1.17.30/protocol.json +++ b/data/bedrock/1.17.30/protocol.json @@ -2395,7 +2395,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2423,6 +2423,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.17.30/types.yml b/data/bedrock/1.17.30/types.yml index 59d06cdc8..0f24cf400 100644 --- a/data/bedrock/1.17.30/types.yml +++ b/data/bedrock/1.17.30/types.yml @@ -881,19 +881,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.17.40/protocol.json b/data/bedrock/1.17.40/protocol.json index dabf94cf2..b77519c4d 100644 --- a/data/bedrock/1.17.40/protocol.json +++ b/data/bedrock/1.17.40/protocol.json @@ -2397,7 +2397,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2425,6 +2425,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.17.40/types.yml b/data/bedrock/1.17.40/types.yml index 23ab79a50..19b064f7f 100644 --- a/data/bedrock/1.17.40/types.yml +++ b/data/bedrock/1.17.40/types.yml @@ -887,19 +887,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.18.0/protocol.json b/data/bedrock/1.18.0/protocol.json index 7ca8e666f..f522bade2 100644 --- a/data/bedrock/1.18.0/protocol.json +++ b/data/bedrock/1.18.0/protocol.json @@ -2397,7 +2397,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2425,6 +2425,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.18.0/types.yml b/data/bedrock/1.18.0/types.yml index 6c9466970..f73bfc578 100644 --- a/data/bedrock/1.18.0/types.yml +++ b/data/bedrock/1.18.0/types.yml @@ -887,19 +887,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.18.11/protocol.json b/data/bedrock/1.18.11/protocol.json index b144216b9..afce56c5b 100644 --- a/data/bedrock/1.18.11/protocol.json +++ b/data/bedrock/1.18.11/protocol.json @@ -2321,6 +2321,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2403,7 +2437,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2431,6 +2465,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.18.11/types.yml b/data/bedrock/1.18.11/types.yml index 75f479793..7ff324a84 100644 --- a/data/bedrock/1.18.11/types.yml +++ b/data/bedrock/1.18.11/types.yml @@ -863,7 +863,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -895,19 +895,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.18.30/protocol.json b/data/bedrock/1.18.30/protocol.json index d2ac04c68..4f80ec7db 100644 --- a/data/bedrock/1.18.30/protocol.json +++ b/data/bedrock/1.18.30/protocol.json @@ -2329,6 +2329,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2411,7 +2445,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2439,6 +2473,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.18.30/types.yml b/data/bedrock/1.18.30/types.yml index 1d2543d44..acab78438 100644 --- a/data/bedrock/1.18.30/types.yml +++ b/data/bedrock/1.18.30/types.yml @@ -871,7 +871,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -903,19 +903,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.1/protocol.json b/data/bedrock/1.19.1/protocol.json index 90e1d7f8d..a12588dec 100644 --- a/data/bedrock/1.19.1/protocol.json +++ b/data/bedrock/1.19.1/protocol.json @@ -2331,6 +2331,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2413,7 +2447,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2441,6 +2475,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.19.1/types.yml b/data/bedrock/1.19.1/types.yml index e5d00a787..ba5bf5741 100644 --- a/data/bedrock/1.19.1/types.yml +++ b/data/bedrock/1.19.1/types.yml @@ -873,7 +873,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -905,19 +905,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.10/protocol.json b/data/bedrock/1.19.10/protocol.json index 33aad56c6..56afb4f0f 100644 --- a/data/bedrock/1.19.10/protocol.json +++ b/data/bedrock/1.19.10/protocol.json @@ -2331,6 +2331,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2413,7 +2447,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2441,6 +2475,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.19.10/types.yml b/data/bedrock/1.19.10/types.yml index dc5d197a0..560ffc698 100644 --- a/data/bedrock/1.19.10/types.yml +++ b/data/bedrock/1.19.10/types.yml @@ -873,7 +873,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -905,19 +905,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.20/protocol.json b/data/bedrock/1.19.20/protocol.json index c03f7c9b4..b17a6c7cd 100644 --- a/data/bedrock/1.19.20/protocol.json +++ b/data/bedrock/1.19.20/protocol.json @@ -2369,6 +2369,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2451,7 +2485,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2479,6 +2513,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.19.20/types.yml b/data/bedrock/1.19.20/types.yml index cce4d9b4f..107cbfd84 100644 --- a/data/bedrock/1.19.20/types.yml +++ b/data/bedrock/1.19.20/types.yml @@ -880,7 +880,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -912,19 +912,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.21/protocol.json b/data/bedrock/1.19.21/protocol.json index c03f7c9b4..b17a6c7cd 100644 --- a/data/bedrock/1.19.21/protocol.json +++ b/data/bedrock/1.19.21/protocol.json @@ -2369,6 +2369,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2451,7 +2485,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2479,6 +2513,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.19.21/types.yml b/data/bedrock/1.19.21/types.yml index cce4d9b4f..107cbfd84 100644 --- a/data/bedrock/1.19.21/types.yml +++ b/data/bedrock/1.19.21/types.yml @@ -880,7 +880,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -912,19 +912,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.30/protocol.json b/data/bedrock/1.19.30/protocol.json index 495b7d88f..70175a286 100644 --- a/data/bedrock/1.19.30/protocol.json +++ b/data/bedrock/1.19.30/protocol.json @@ -2429,6 +2429,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2511,7 +2545,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2539,6 +2573,10 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" } ] ], diff --git a/data/bedrock/1.19.30/types.yml b/data/bedrock/1.19.30/types.yml index cf758602f..876c20268 100644 --- a/data/bedrock/1.19.30/types.yml +++ b/data/bedrock/1.19.30/types.yml @@ -909,7 +909,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -941,19 +941,24 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.40/protocol.json b/data/bedrock/1.19.40/protocol.json index 70e73c220..174d84ffd 100644 --- a/data/bedrock/1.19.40/protocol.json +++ b/data/bedrock/1.19.40/protocol.json @@ -2481,6 +2481,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2563,7 +2597,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2591,6 +2625,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.19.40/types.yml b/data/bedrock/1.19.40/types.yml index c32adcc10..b6bba6950 100644 --- a/data/bedrock/1.19.40/types.yml +++ b/data/bedrock/1.19.40/types.yml @@ -920,7 +920,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -952,19 +952,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.50/protocol.json b/data/bedrock/1.19.50/protocol.json index a5d8911fc..08fdf7fe1 100644 --- a/data/bedrock/1.19.50/protocol.json +++ b/data/bedrock/1.19.50/protocol.json @@ -2485,6 +2485,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2567,7 +2601,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2595,6 +2629,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.19.50/types.yml b/data/bedrock/1.19.50/types.yml index bc8598484..f20dedad2 100644 --- a/data/bedrock/1.19.50/types.yml +++ b/data/bedrock/1.19.50/types.yml @@ -924,7 +924,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -956,19 +956,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.60/protocol.json b/data/bedrock/1.19.60/protocol.json index b6dab71a3..c39947fc3 100644 --- a/data/bedrock/1.19.60/protocol.json +++ b/data/bedrock/1.19.60/protocol.json @@ -2516,6 +2516,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2598,7 +2632,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2626,6 +2660,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.19.60/types.yml b/data/bedrock/1.19.60/types.yml index 17fff9b91..09713fa51 100644 --- a/data/bedrock/1.19.60/types.yml +++ b/data/bedrock/1.19.60/types.yml @@ -944,7 +944,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -976,19 +976,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.62/protocol.json b/data/bedrock/1.19.62/protocol.json index 246ab9907..2d6f67287 100644 --- a/data/bedrock/1.19.62/protocol.json +++ b/data/bedrock/1.19.62/protocol.json @@ -2520,6 +2520,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2602,7 +2636,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2630,6 +2664,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.19.62/types.yml b/data/bedrock/1.19.62/types.yml index e1fb8ead2..94ce93363 100644 --- a/data/bedrock/1.19.62/types.yml +++ b/data/bedrock/1.19.62/types.yml @@ -945,7 +945,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -977,19 +977,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.70/protocol.json b/data/bedrock/1.19.70/protocol.json index 4c20213e0..8fcc53293 100644 --- a/data/bedrock/1.19.70/protocol.json +++ b/data/bedrock/1.19.70/protocol.json @@ -2534,6 +2534,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2616,7 +2650,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2644,6 +2678,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.19.70/types.yml b/data/bedrock/1.19.70/types.yml index 3a60860f8..ec590e5e2 100644 --- a/data/bedrock/1.19.70/types.yml +++ b/data/bedrock/1.19.70/types.yml @@ -955,7 +955,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -987,19 +987,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.19.80/protocol.json b/data/bedrock/1.19.80/protocol.json index 710218f3a..060e030c4 100644 --- a/data/bedrock/1.19.80/protocol.json +++ b/data/bedrock/1.19.80/protocol.json @@ -2568,6 +2568,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2650,7 +2684,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2678,6 +2712,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.19.80/types.yml b/data/bedrock/1.19.80/types.yml index 7430719ff..a84cd6e39 100644 --- a/data/bedrock/1.19.80/types.yml +++ b/data/bedrock/1.19.80/types.yml @@ -964,7 +964,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -996,19 +996,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.0/protocol.json b/data/bedrock/1.20.0/protocol.json index f1e51ffa6..e3909e25d 100644 --- a/data/bedrock/1.20.0/protocol.json +++ b/data/bedrock/1.20.0/protocol.json @@ -2568,6 +2568,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2650,7 +2684,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2678,6 +2712,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.0/types.yml b/data/bedrock/1.20.0/types.yml index 32972405a..405c4d820 100644 --- a/data/bedrock/1.20.0/types.yml +++ b/data/bedrock/1.20.0/types.yml @@ -964,7 +964,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -996,19 +996,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.10/protocol.json b/data/bedrock/1.20.10/protocol.json index 3228eaea3..ffa5fe14c 100644 --- a/data/bedrock/1.20.10/protocol.json +++ b/data/bedrock/1.20.10/protocol.json @@ -2573,6 +2573,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2655,7 +2689,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2683,6 +2717,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.10/types.yml b/data/bedrock/1.20.10/types.yml index 5cdd07371..9c4c294c3 100644 --- a/data/bedrock/1.20.10/types.yml +++ b/data/bedrock/1.20.10/types.yml @@ -969,7 +969,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1001,19 +1001,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.30/protocol.json b/data/bedrock/1.20.30/protocol.json index e79a95af8..ae08190a8 100644 --- a/data/bedrock/1.20.30/protocol.json +++ b/data/bedrock/1.20.30/protocol.json @@ -2620,6 +2620,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2702,7 +2736,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2730,6 +2764,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.30/types.yml b/data/bedrock/1.20.30/types.yml index 422929ddb..dbff9f06b 100644 --- a/data/bedrock/1.20.30/types.yml +++ b/data/bedrock/1.20.30/types.yml @@ -980,7 +980,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1012,19 +1012,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.40/protocol.json b/data/bedrock/1.20.40/protocol.json index 2e8465757..ff57c2965 100644 --- a/data/bedrock/1.20.40/protocol.json +++ b/data/bedrock/1.20.40/protocol.json @@ -2624,6 +2624,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2706,7 +2740,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2734,6 +2768,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.40/types.yml b/data/bedrock/1.20.40/types.yml index 728497e62..4c440e6d9 100644 --- a/data/bedrock/1.20.40/types.yml +++ b/data/bedrock/1.20.40/types.yml @@ -984,7 +984,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1016,19 +1016,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.50/protocol.json b/data/bedrock/1.20.50/protocol.json index 8a36dd41c..1fe15e273 100644 --- a/data/bedrock/1.20.50/protocol.json +++ b/data/bedrock/1.20.50/protocol.json @@ -2641,6 +2641,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2723,7 +2757,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2751,6 +2785,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.50/types.yml b/data/bedrock/1.20.50/types.yml index 36aafb02a..bf07320af 100644 --- a/data/bedrock/1.20.50/types.yml +++ b/data/bedrock/1.20.50/types.yml @@ -989,7 +989,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1021,19 +1021,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.61/protocol.json b/data/bedrock/1.20.61/protocol.json index ddd479c47..c1f574fa1 100644 --- a/data/bedrock/1.20.61/protocol.json +++ b/data/bedrock/1.20.61/protocol.json @@ -2645,6 +2645,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2727,7 +2761,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2755,6 +2789,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.61/types.yml b/data/bedrock/1.20.61/types.yml index e7a188ac2..dc29235f1 100644 --- a/data/bedrock/1.20.61/types.yml +++ b/data/bedrock/1.20.61/types.yml @@ -990,7 +990,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1022,19 +1022,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.71/protocol.json b/data/bedrock/1.20.71/protocol.json index 85f7a7662..0d1cb2e5d 100644 --- a/data/bedrock/1.20.71/protocol.json +++ b/data/bedrock/1.20.71/protocol.json @@ -2645,6 +2645,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2727,7 +2761,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2755,6 +2789,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.71/types.yml b/data/bedrock/1.20.71/types.yml index 1c8098115..b95a8e3c1 100644 --- a/data/bedrock/1.20.71/types.yml +++ b/data/bedrock/1.20.71/types.yml @@ -990,7 +990,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1022,19 +1022,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.20.80/protocol.json b/data/bedrock/1.20.80/protocol.json index c97d9a04d..fb49156bb 100644 --- a/data/bedrock/1.20.80/protocol.json +++ b/data/bedrock/1.20.80/protocol.json @@ -2654,6 +2654,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2736,7 +2770,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2764,6 +2798,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/1.20.80/types.yml b/data/bedrock/1.20.80/types.yml index 816e8ec2b..1d8e0d2ae 100644 --- a/data/bedrock/1.20.80/types.yml +++ b/data/bedrock/1.20.80/types.yml @@ -992,7 +992,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1024,19 +1024,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet. diff --git a/data/bedrock/1.21.0/protocol.json b/data/bedrock/1.21.0/protocol.json index c6c831255..d74d8b877 100644 --- a/data/bedrock/1.21.0/protocol.json +++ b/data/bedrock/1.21.0/protocol.json @@ -2714,6 +2714,40 @@ } ] ], + "place_in_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], + "take_out_container": [ + "container", + [ + { + "name": "count", + "type": "u8" + }, + { + "name": "source", + "type": "StackRequestSlotInfo" + }, + { + "name": "destination", + "type": "StackRequestSlotInfo" + } + ] + ], "swap": [ "container", [ @@ -2796,7 +2830,7 @@ "container", [ { - "name": "unknown1", + "name": "hotbar_slot", "type": "zigzag32" }, { @@ -2824,6 +2858,20 @@ { "name": "recipe_network_id", "type": "varint" + }, + { + "name": "times_crafted", + "type": "u8" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "RecipeIngredient" + } + ] } ] ], diff --git a/data/bedrock/latest/types.yml b/data/bedrock/latest/types.yml index 7f9616263..ea0096ff6 100644 --- a/data/bedrock/latest/types.yml +++ b/data/bedrock/latest/types.yml @@ -1004,7 +1004,7 @@ ItemStackRequest: # crafting, where the old item is consumed. - results_deprecated _: type_id ? - if take or place: + if take or place or place_in_container or take_out_container: count: u8 source: StackRequestSlotInfo destination: StackRequestSlotInfo @@ -1036,19 +1036,25 @@ ItemStackRequest: primary_effect: zigzag32 secondary_effect: zigzag32 if mine_block: - # // Unknown1 ... TODO: Find out what this is for - unknown1: zigzag32 + # Current hotbar slot + hotbar_slot: zigzag32 # PredictedDurability is the durability of the item that the client assumes to be present at the time predicted_durability: zigzag32 # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server # must check if these IDs match. If they do not match, servers should reject the stack request that the # action holding this info was in. network_id: zigzag32 - if craft_recipe or craft_recipe_auto: + if craft_recipe: # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as # of 1.16. recipe_network_id: varint + if craft_recipe_auto: + # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches + # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as + recipe_network_id: varint + times_crafted: u8 + ingredients: RecipeIngredient[]varint if craft_creative: # The stack ID of the creative item that is being created. This is one of the # creative item stack IDs sent in the CreativeContent packet.