From d58b99fec41b8c23820168228cca9e86d1f45165 Mon Sep 17 00:00:00 2001 From: JSbETms <137791538+JSbETms@users.noreply.github.com> Date: Wed, 23 Aug 2023 21:19:36 +0100 Subject: [PATCH] Fix bedrock update_soft_enum packet missing encoding (#758) * Update protocol.json * Update proto.yml * apply to all versions with doc --------- Co-authored-by: extremeheat --- data/bedrock/1.16.201/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.16.201/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.16.210/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.16.210/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.16.220/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.16.220/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.17.0/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.17.0/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.17.10/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.17.10/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.17.30/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.17.30/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.17.40/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.17.40/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.18.0/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.18.0/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.18.11/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.18.11/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.18.30/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.18.30/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.1/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.1/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.10/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.10/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.20/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.20/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.21/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.21/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.30/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.30/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.40/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.40/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.50/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.50/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.60/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.60/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.62/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.62/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.70/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.70/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.19.80/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.19.80/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.20.0/proto.yml | 19 ++++++++++++++++++ data/bedrock/1.20.0/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/1.20.10/protocol.json | 31 ++++++++++++++++++++++++++++- data/bedrock/latest/proto.yml | 18 +++++++++++++++++ 46 files changed, 1126 insertions(+), 23 deletions(-) diff --git a/data/bedrock/1.16.201/proto.yml b/data/bedrock/1.16.201/proto.yml index 2e02fc6b1..684cfbf8e 100644 --- a/data/bedrock/1.16.201/proto.yml +++ b/data/bedrock/1.16.201/proto.yml @@ -1834,9 +1834,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + packet_network_stack_latency: !id: 0x73 diff --git a/data/bedrock/1.16.201/protocol.json b/data/bedrock/1.16.201/protocol.json index 6f50bbd84..7bce07fb3 100644 --- a/data/bedrock/1.16.201/protocol.json +++ b/data/bedrock/1.16.201/protocol.json @@ -6409,7 +6409,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.16.210/proto.yml b/data/bedrock/1.16.210/proto.yml index fb89bdc75..86192f2c0 100644 --- a/data/bedrock/1.16.210/proto.yml +++ b/data/bedrock/1.16.210/proto.yml @@ -1925,9 +1925,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + packet_network_stack_latency: !id: 0x73 diff --git a/data/bedrock/1.16.210/protocol.json b/data/bedrock/1.16.210/protocol.json index 8a391cf65..dbf1498ca 100644 --- a/data/bedrock/1.16.210/protocol.json +++ b/data/bedrock/1.16.210/protocol.json @@ -6630,7 +6630,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.16.220/proto.yml b/data/bedrock/1.16.220/proto.yml index 00f87c347..360926f20 100644 --- a/data/bedrock/1.16.220/proto.yml +++ b/data/bedrock/1.16.220/proto.yml @@ -2263,9 +2263,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.16.220/protocol.json b/data/bedrock/1.16.220/protocol.json index f823fc47b..3279b4933 100644 --- a/data/bedrock/1.16.220/protocol.json +++ b/data/bedrock/1.16.220/protocol.json @@ -7397,7 +7397,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.17.0/proto.yml b/data/bedrock/1.17.0/proto.yml index a2084ff71..5fb1ecf1b 100644 --- a/data/bedrock/1.17.0/proto.yml +++ b/data/bedrock/1.17.0/proto.yml @@ -2265,9 +2265,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.17.0/protocol.json b/data/bedrock/1.17.0/protocol.json index befa0d67c..e1f061cde 100644 --- a/data/bedrock/1.17.0/protocol.json +++ b/data/bedrock/1.17.0/protocol.json @@ -7476,7 +7476,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.17.10/proto.yml b/data/bedrock/1.17.10/proto.yml index fcff889ed..b48eb402c 100644 --- a/data/bedrock/1.17.10/proto.yml +++ b/data/bedrock/1.17.10/proto.yml @@ -2362,9 +2362,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.17.10/protocol.json b/data/bedrock/1.17.10/protocol.json index ff8006ada..def64ec0b 100644 --- a/data/bedrock/1.17.10/protocol.json +++ b/data/bedrock/1.17.10/protocol.json @@ -7592,7 +7592,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.17.30/proto.yml b/data/bedrock/1.17.30/proto.yml index d93bdb80a..6138261af 100644 --- a/data/bedrock/1.17.30/proto.yml +++ b/data/bedrock/1.17.30/proto.yml @@ -2378,9 +2378,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.17.30/protocol.json b/data/bedrock/1.17.30/protocol.json index 5de0a80a0..f9b8e0ae4 100644 --- a/data/bedrock/1.17.30/protocol.json +++ b/data/bedrock/1.17.30/protocol.json @@ -7736,7 +7736,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.17.40/proto.yml b/data/bedrock/1.17.40/proto.yml index 18e18bd25..141797e67 100644 --- a/data/bedrock/1.17.40/proto.yml +++ b/data/bedrock/1.17.40/proto.yml @@ -2378,9 +2378,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.17.40/protocol.json b/data/bedrock/1.17.40/protocol.json index 80e2d94f9..35ddc7f40 100644 --- a/data/bedrock/1.17.40/protocol.json +++ b/data/bedrock/1.17.40/protocol.json @@ -7737,7 +7737,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.18.0/proto.yml b/data/bedrock/1.18.0/proto.yml index d93239851..2311bbf2a 100644 --- a/data/bedrock/1.18.0/proto.yml +++ b/data/bedrock/1.18.0/proto.yml @@ -2385,9 +2385,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.18.0/protocol.json b/data/bedrock/1.18.0/protocol.json index b47a2b2c3..16f6843c2 100644 --- a/data/bedrock/1.18.0/protocol.json +++ b/data/bedrock/1.18.0/protocol.json @@ -7782,7 +7782,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.18.11/proto.yml b/data/bedrock/1.18.11/proto.yml index 32aabc724..508c992f5 100644 --- a/data/bedrock/1.18.11/proto.yml +++ b/data/bedrock/1.18.11/proto.yml @@ -2392,9 +2392,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.18.11/protocol.json b/data/bedrock/1.18.11/protocol.json index 6e4916248..5855893d6 100644 --- a/data/bedrock/1.18.11/protocol.json +++ b/data/bedrock/1.18.11/protocol.json @@ -7840,7 +7840,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.18.30/proto.yml b/data/bedrock/1.18.30/proto.yml index 3722676b5..08c96097a 100644 --- a/data/bedrock/1.18.30/proto.yml +++ b/data/bedrock/1.18.30/proto.yml @@ -2402,9 +2402,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.18.30/protocol.json b/data/bedrock/1.18.30/protocol.json index cf18bc333..b2112934a 100644 --- a/data/bedrock/1.18.30/protocol.json +++ b/data/bedrock/1.18.30/protocol.json @@ -7925,7 +7925,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.1/proto.yml b/data/bedrock/1.19.1/proto.yml index c258d5195..7e2bc6428 100644 --- a/data/bedrock/1.19.1/proto.yml +++ b/data/bedrock/1.19.1/proto.yml @@ -2416,9 +2416,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.1/protocol.json b/data/bedrock/1.19.1/protocol.json index 7749d4b88..8d2da5e68 100644 --- a/data/bedrock/1.19.1/protocol.json +++ b/data/bedrock/1.19.1/protocol.json @@ -7976,7 +7976,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.10/proto.yml b/data/bedrock/1.19.10/proto.yml index eae1f568b..26ba4f8ef 100644 --- a/data/bedrock/1.19.10/proto.yml +++ b/data/bedrock/1.19.10/proto.yml @@ -2467,9 +2467,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.10/protocol.json b/data/bedrock/1.19.10/protocol.json index a6d95c85a..2d0d15d4d 100644 --- a/data/bedrock/1.19.10/protocol.json +++ b/data/bedrock/1.19.10/protocol.json @@ -8044,7 +8044,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.20/proto.yml b/data/bedrock/1.19.20/proto.yml index 4815b6b7f..72553489e 100644 --- a/data/bedrock/1.19.20/proto.yml +++ b/data/bedrock/1.19.20/proto.yml @@ -2498,9 +2498,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.20/protocol.json b/data/bedrock/1.19.20/protocol.json index d5d619bfe..111ab62ce 100644 --- a/data/bedrock/1.19.20/protocol.json +++ b/data/bedrock/1.19.20/protocol.json @@ -8187,7 +8187,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.21/proto.yml b/data/bedrock/1.19.21/proto.yml index 35df4aefb..f70255729 100644 --- a/data/bedrock/1.19.21/proto.yml +++ b/data/bedrock/1.19.21/proto.yml @@ -2498,9 +2498,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.21/protocol.json b/data/bedrock/1.19.21/protocol.json index d5d619bfe..111ab62ce 100644 --- a/data/bedrock/1.19.21/protocol.json +++ b/data/bedrock/1.19.21/protocol.json @@ -8187,7 +8187,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.30/proto.yml b/data/bedrock/1.19.30/proto.yml index 35456363b..f84c626f3 100644 --- a/data/bedrock/1.19.30/proto.yml +++ b/data/bedrock/1.19.30/proto.yml @@ -2501,9 +2501,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.30/protocol.json b/data/bedrock/1.19.30/protocol.json index 83ac0fb72..1eb4662ac 100644 --- a/data/bedrock/1.19.30/protocol.json +++ b/data/bedrock/1.19.30/protocol.json @@ -8291,7 +8291,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.40/proto.yml b/data/bedrock/1.19.40/proto.yml index d8c387f7d..aa1145536 100644 --- a/data/bedrock/1.19.40/proto.yml +++ b/data/bedrock/1.19.40/proto.yml @@ -2511,9 +2511,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.40/protocol.json b/data/bedrock/1.19.40/protocol.json index 7ae81316a..f4188df07 100644 --- a/data/bedrock/1.19.40/protocol.json +++ b/data/bedrock/1.19.40/protocol.json @@ -8363,7 +8363,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.50/proto.yml b/data/bedrock/1.19.50/proto.yml index 1794851c6..c805278e7 100644 --- a/data/bedrock/1.19.50/proto.yml +++ b/data/bedrock/1.19.50/proto.yml @@ -2511,9 +2511,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.50/protocol.json b/data/bedrock/1.19.50/protocol.json index fddc75649..10ebe038c 100644 --- a/data/bedrock/1.19.50/protocol.json +++ b/data/bedrock/1.19.50/protocol.json @@ -8379,7 +8379,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.60/proto.yml b/data/bedrock/1.19.60/proto.yml index 632e0bac9..cc1e10139 100644 --- a/data/bedrock/1.19.60/proto.yml +++ b/data/bedrock/1.19.60/proto.yml @@ -2515,9 +2515,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.60/protocol.json b/data/bedrock/1.19.60/protocol.json index 6bf8c6ca1..9795dbf61 100644 --- a/data/bedrock/1.19.60/protocol.json +++ b/data/bedrock/1.19.60/protocol.json @@ -8424,7 +8424,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.62/proto.yml b/data/bedrock/1.19.62/proto.yml index 4eee100c3..6b357c2e9 100644 --- a/data/bedrock/1.19.62/proto.yml +++ b/data/bedrock/1.19.62/proto.yml @@ -2516,9 +2516,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.62/protocol.json b/data/bedrock/1.19.62/protocol.json index d4328c6af..a184ad0ba 100644 --- a/data/bedrock/1.19.62/protocol.json +++ b/data/bedrock/1.19.62/protocol.json @@ -8428,7 +8428,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.70/proto.yml b/data/bedrock/1.19.70/proto.yml index de634df2d..77ff47ee9 100644 --- a/data/bedrock/1.19.70/proto.yml +++ b/data/bedrock/1.19.70/proto.yml @@ -2516,9 +2516,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.70/protocol.json b/data/bedrock/1.19.70/protocol.json index d71add2a4..9068e401f 100644 --- a/data/bedrock/1.19.70/protocol.json +++ b/data/bedrock/1.19.70/protocol.json @@ -8446,7 +8446,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.19.80/proto.yml b/data/bedrock/1.19.80/proto.yml index db17d2686..e188457ba 100644 --- a/data/bedrock/1.19.80/proto.yml +++ b/data/bedrock/1.19.80/proto.yml @@ -2528,9 +2528,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.19.80/protocol.json b/data/bedrock/1.19.80/protocol.json index f0db08c59..afbbe9fee 100644 --- a/data/bedrock/1.19.80/protocol.json +++ b/data/bedrock/1.19.80/protocol.json @@ -8509,7 +8509,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.20.0/proto.yml b/data/bedrock/1.20.0/proto.yml index 3bfc80b7e..9a1d47963 100644 --- a/data/bedrock/1.20.0/proto.yml +++ b/data/bedrock/1.20.0/proto.yml @@ -2533,9 +2533,28 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update + # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the diff --git a/data/bedrock/1.20.0/protocol.json b/data/bedrock/1.20.0/protocol.json index d1c8c247d..80728e5f5 100644 --- a/data/bedrock/1.20.0/protocol.json +++ b/data/bedrock/1.20.0/protocol.json @@ -8520,7 +8520,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/1.20.10/protocol.json b/data/bedrock/1.20.10/protocol.json index 5acaf667f..ddeb4d123 100644 --- a/data/bedrock/1.20.10/protocol.json +++ b/data/bedrock/1.20.10/protocol.json @@ -8590,7 +8590,36 @@ ], "packet_update_soft_enum": [ "container", - [] + [ + { + "name": "enum_type", + "type": "string" + }, + { + "name": "options", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "action_type", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "add", + "1": "remove", + "2": "update" + } + } + ] + } + ] ], "packet_network_stack_latency": [ "container", diff --git a/data/bedrock/latest/proto.yml b/data/bedrock/latest/proto.yml index ee3c72dae..1776df75f 100644 --- a/data/bedrock/latest/proto.yml +++ b/data/bedrock/latest/proto.yml @@ -2555,9 +2555,27 @@ packet_set_local_player_as_initialized: # StartGame packet. runtime_entity_id: varint64 +# UpdateSoftEnum is sent by the server to update a soft enum, also known as a dynamic enum, previously sent +# in the AvailableCommands packet. It is sent whenever the enum should get new options or when some of its +# options should be removed. +# The UpdateSoftEnum packet will apply for enums that have been set in the AvailableCommands packet with the +# 'Dynamic' field of the CommandEnum set to true. packet_update_soft_enum: !id: 0x72 !bound: client + # EnumType is the type of the enum. This type must be identical to the one set in the AvailableCommands + # packet, because the client uses this to recognise which enum to update. + enum_type: string + # Options is a list of options that should be updated. Depending on the ActionType field, either these + # options will be added to the enum, the enum options will be set to these options or all of these + # options will be removed from the enum. + options: string[]varint + # ActionType is the type of the action to execute on the enum. The Options field has a different result, + # depending on what ActionType is used. + action_type: u8 => + 0: add + 1: remove + 2: update # NetworkStackLatency is sent by the server (and the client, on development builds) to measure the latency # over the entire Minecraft stack, rather than the RakNet latency. It has other usages too, such as the