From 57da39bb79fe912cdd588aa31d5ea91f6dae07c9 Mon Sep 17 00:00:00 2001 From: iceiix <43691553+iceiix@users.noreply.github.com> Date: Sat, 17 Aug 2019 13:36:07 -0700 Subject: [PATCH] Fix SpawnPainting parsing 1.13.2-1.14.4, closes #212 (#213) The packet changed in 1.13.2 but wasn't updated, so we split the packet variants into SpawnPainting_String for the old version and SpawnPainting_VarInt for the new version with a 'motive' VarInt field instead of a String title. 1.9-1.12.2 SpawnPainting_String: https://wiki.vg/index.php?title=Protocol&oldid=14204#Spawn_Painting 1.13.2-1.14.4 SpawnPainting_VarInt: https://wiki.vg/index.php?title=Protocol&oldid=14889#Spawn_Painting --- protocol/src/protocol/packet.rs | 9 ++++++++- protocol/src/protocol/versions/v18w50a.rs | 2 +- protocol/src/protocol/versions/v19w02a.rs | 2 +- protocol/src/protocol/versions/v1_10_2.rs | 2 +- protocol/src/protocol/versions/v1_11_2.rs | 2 +- protocol/src/protocol/versions/v1_12_2.rs | 2 +- protocol/src/protocol/versions/v1_13_2.rs | 2 +- protocol/src/protocol/versions/v1_14.rs | 2 +- protocol/src/protocol/versions/v1_14_1.rs | 2 +- protocol/src/protocol/versions/v1_14_2.rs | 2 +- protocol/src/protocol/versions/v1_14_3.rs | 2 +- protocol/src/protocol/versions/v1_14_4.rs | 2 +- protocol/src/protocol/versions/v1_9.rs | 2 +- protocol/src/protocol/versions/v1_9_2.rs | 2 +- 14 files changed, 21 insertions(+), 14 deletions(-) diff --git a/protocol/src/protocol/packet.rs b/protocol/src/protocol/packet.rs index 9e7fb1f..10ade72 100644 --- a/protocol/src/protocol/packet.rs +++ b/protocol/src/protocol/packet.rs @@ -619,7 +619,14 @@ state_packets!( } /// SpawnPainting spawns a painting into the world when it is in range of /// the client. The title effects the size and the texture of the painting. - packet SpawnPainting { + packet SpawnPainting_VarInt { + field entity_id: VarInt =, + field uuid: UUID =, + field motive: VarInt =, + field location: Position =, + field direction: u8 =, + } + packet SpawnPainting_String { field entity_id: VarInt =, field uuid: UUID =, field title: String =, diff --git a/protocol/src/protocol/versions/v18w50a.rs b/protocol/src/protocol/versions/v18w50a.rs index ffb0d03..8eafbd9 100644 --- a/protocol/src/protocol/versions/v18w50a.rs +++ b/protocol/src/protocol/versions/v18w50a.rs @@ -57,7 +57,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_String 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v19w02a.rs b/protocol/src/protocol/versions/v19w02a.rs index 2bc3fa5..0014b0e 100644 --- a/protocol/src/protocol/versions/v19w02a.rs +++ b/protocol/src/protocol/versions/v19w02a.rs @@ -57,7 +57,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_String 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_10_2.rs b/protocol/src/protocol/versions/v1_10_2.rs index b28c6a8..02ddc6c 100644 --- a/protocol/src/protocol/versions/v1_10_2.rs +++ b/protocol/src/protocol/versions/v1_10_2.rs @@ -44,7 +44,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob_u8 - 0x04 => SpawnPainting + 0x04 => SpawnPainting_String 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_11_2.rs b/protocol/src/protocol/versions/v1_11_2.rs index 0a622a8..4619ba5 100644 --- a/protocol/src/protocol/versions/v1_11_2.rs +++ b/protocol/src/protocol/versions/v1_11_2.rs @@ -44,7 +44,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_String 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_12_2.rs b/protocol/src/protocol/versions/v1_12_2.rs index e98798d..338b5fa 100644 --- a/protocol/src/protocol/versions/v1_12_2.rs +++ b/protocol/src/protocol/versions/v1_12_2.rs @@ -47,7 +47,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_13_2.rs b/protocol/src/protocol/versions/v1_13_2.rs index 325cb44..874cca7 100644 --- a/protocol/src/protocol/versions/v1_13_2.rs +++ b/protocol/src/protocol/versions/v1_13_2.rs @@ -57,7 +57,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_14.rs b/protocol/src/protocol/versions/v1_14.rs index 07cd5c5..0107cce 100644 --- a/protocol/src/protocol/versions/v1_14.rs +++ b/protocol/src/protocol/versions/v1_14.rs @@ -60,7 +60,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_14_1.rs b/protocol/src/protocol/versions/v1_14_1.rs index 07cd5c5..0107cce 100644 --- a/protocol/src/protocol/versions/v1_14_1.rs +++ b/protocol/src/protocol/versions/v1_14_1.rs @@ -60,7 +60,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_14_2.rs b/protocol/src/protocol/versions/v1_14_2.rs index 07cd5c5..0107cce 100644 --- a/protocol/src/protocol/versions/v1_14_2.rs +++ b/protocol/src/protocol/versions/v1_14_2.rs @@ -60,7 +60,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_14_3.rs b/protocol/src/protocol/versions/v1_14_3.rs index 83d4f32..75ab579 100644 --- a/protocol/src/protocol/versions/v1_14_3.rs +++ b/protocol/src/protocol/versions/v1_14_3.rs @@ -60,7 +60,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_14_4.rs b/protocol/src/protocol/versions/v1_14_4.rs index 0ba3d73..941dce1 100644 --- a/protocol/src/protocol/versions/v1_14_4.rs +++ b/protocol/src/protocol/versions/v1_14_4.rs @@ -60,7 +60,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob - 0x04 => SpawnPainting + 0x04 => SpawnPainting_VarInt 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_9.rs b/protocol/src/protocol/versions/v1_9.rs index c22d778..7b714e8 100644 --- a/protocol/src/protocol/versions/v1_9.rs +++ b/protocol/src/protocol/versions/v1_9.rs @@ -44,7 +44,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob_u8 - 0x04 => SpawnPainting + 0x04 => SpawnPainting_String 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics diff --git a/protocol/src/protocol/versions/v1_9_2.rs b/protocol/src/protocol/versions/v1_9_2.rs index d6e0b81..ecd1e28 100644 --- a/protocol/src/protocol/versions/v1_9_2.rs +++ b/protocol/src/protocol/versions/v1_9_2.rs @@ -44,7 +44,7 @@ protocol_packet_ids!( 0x01 => SpawnExperienceOrb 0x02 => SpawnGlobalEntity 0x03 => SpawnMob_u8 - 0x04 => SpawnPainting + 0x04 => SpawnPainting_String 0x05 => SpawnPlayer_f64 0x06 => Animation 0x07 => Statistics