iceiix / stevenarella

Multi-protocol Minecraft-compatible client written in Rust
Apache License 2.0
1.45k stars 59 forks source link

1.16.1: EntityEquipment_VarInt : Player heads break things. (Failed to read all of packet 0x47, had 1292 bytes left) #421

Closed foxt closed 3 years ago

foxt commented 3 years ago

Connecting to a 1.16.1 server crashes. Seems to be player head related.

last-packet: http://lmgn.uk/BYN.last-packet

[main.rs:235][INFO] Starting steven
[blocking/wait.rs:46][TRACE] (ThreadId(2)) park without timeout
[sys/unix/kqueue.rs:100][TRACE] registering; token=Token(18446744073709551615); interests=Readable
[poll.rs:787][TRACE] registering with poller
[blocking/client.rs:759][TRACE] (ThreadId(3)) start runtime::block_on
[platform_impl/macos/view.rs:295][TRACE] Triggered `viewDidMoveToWindow`
[platform_impl/macos/view.rs:313][TRACE] Completed `viewDidMoveToWindow`
[platform_impl/macos/view.rs:444][TRACE] Triggered `validAttributesForMarkedText`
[platform_impl/macos/view.rs:445][TRACE] Completed `validAttributesForMarkedText`
[platform_impl/macos/view.rs:444][TRACE] Triggered `validAttributesForMarkedText`
[platform_impl/macos/view.rs:445][TRACE] Completed `validAttributesForMarkedText`
[platform_impl/macos/view.rs:444][TRACE] Triggered `validAttributesForMarkedText`
[platform_impl/macos/view.rs:445][TRACE] Completed `validAttributesForMarkedText`
[platform_impl/macos/window.rs:704][TRACE] Locked shared state in `set_fullscreen`
[platform_impl/macos/window.rs:719][TRACE] Unlocked shared state in `set_fullscreen`
[blocking/wait.rs:46][TRACE] (ThreadId(4)) park without timeout
[sys/unix/kqueue.rs:100][TRACE] registering; token=Token(18446744073709551615); interests=Readable
[poll.rs:787][TRACE] registering with poller
[blocking/client.rs:759][TRACE] (ThreadId(5)) start runtime::block_on
[blocking/client.rs:706][TRACE] closing runtime thread (ThreadId(3))
[blocking/client.rs:708][TRACE] signaled close for runtime thread (ThreadId(3))
[blocking/client.rs:756][TRACE] (ThreadId(3)) Receiver is shutdown
[blocking/client.rs:761][TRACE] (ThreadId(3)) end runtime::block_on
[blocking/client.rs:763][TRACE] (ThreadId(3)) finished
[blocking/client.rs:710][TRACE] closed runtime thread (ThreadId(3))
[platform_impl/macos/app_delegate.rs:48][TRACE] Triggered `didFinishLaunching`
[platform_impl/macos/app_delegate.rs:50][TRACE] Completed `didFinishLaunching`
[blocking/wait.rs:46][TRACE] (ThreadId(14)) park without timeout
[sys/unix/kqueue.rs:100][TRACE] registering; token=Token(18446744073709551615); interests=Readable
[poll.rs:787][TRACE] registering with poller
[blocking/client.rs:759][TRACE] (ThreadId(15)) start runtime::block_on
[blocking/wait.rs:17][TRACE] wait at most 30s
[blocking/wait.rs:43][TRACE] (ThreadId(14)) park timeout 29.999998326s
[client/pool.rs:614][TRACE] checkout waiting for idle connection: ("https", authserver.mojang.com)
[connect.rs:514][DEBUG] starting new connection: https://authserver.mojang.com/
[client/connect/http.rs:258][TRACE] Http::connect; scheme=Some("https"), host=Some("authserver.mojang.com"), port=None
[client/connect/dns.rs:121][DEBUG] resolving host="authserver.mojang.com"
[client/connect/http.rs:531][DEBUG] connecting to 13.227.151.68:443
[poll.rs:787][TRACE] registering with poller
[sys/unix/kqueue.rs:100][TRACE] registering; token=Token(0); interests=Readable | Writable | Error | Hup
[client/connect/http.rs:534][DEBUG] connected to 13.227.151.68:443
[client/conn.rs:607][TRACE] client handshake HTTP/1
[client/mod.rs:513][TRACE] handshake complete, spawning background dispatcher task
[lib.rs:341][TRACE] signal: Want
[lib.rs:355][TRACE] signal found waiting giver, notifying
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy }
[lib.rs:200][TRACE] poll_want: taker wants!
[client/pool.rs:656][TRACE] checkout dropped for ("https", authserver.mojang.com)
[proto/h1/role.rs:88][TRACE] encode_headers
[proto/h1/role.rs:88][TRACE] -> encode_headers
[proto/h1/role.rs:730][TRACE] Client::encode method=POST, body=Some(Known(363))
[proto/h1/role.rs:88][TRACE] <- encode_headers
[proto/h1/role.rs:88][TRACE] -- encode_headers
[proto/h1/encode.rs:148][TRACE] sized write, len = 363
[proto/h1/io.rs:595][TRACE] detected no usage of vectored write, flattening
[proto/h1/io.rs:229][DEBUG] flushed 122 bytes
[proto/h1/io.rs:229][DEBUG] flushed 363 bytes
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy }
[proto/h1/conn.rs:142][TRACE] Conn::read_head
[proto/h1/io.rs:193][DEBUG] read 340 bytes
[proto/h1/role.rs:76][TRACE] parse_headers
[proto/h1/role.rs:76][TRACE] -> parse_headers
[proto/h1/role.rs:656][TRACE] Response.parse([Header; 100], [u8; 340])
[proto/h1/role.rs:665][TRACE] Response.parse Complete(340)
[proto/h1/role.rs:76][TRACE] <- parse_headers
[proto/h1/role.rs:76][TRACE] -- parse_headers
[proto/h1/io.rs:167][DEBUG] parsed 8 headers
[proto/h1/conn.rs:158][DEBUG] incoming body is empty
[proto/h1/conn.rs:396][TRACE] maybe_notify; read_from_io blocked
[lib.rs:341][TRACE] signal: Want
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[lib.rs:341][TRACE] signal: Want
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[client/pool.rs:320][TRACE] put; add idle connection for ("https", authserver.mojang.com)
[client/pool.rs:366][DEBUG] pooling idle connection for ("https", authserver.mojang.com)
[async_impl/client.rs:1451][DEBUG] response '204 No Content' for https://authserver.mojang.com/validate
[blocking/client.rs:706][TRACE] closing runtime thread (ThreadId(15))
[blocking/client.rs:708][TRACE] signaled close for runtime thread (ThreadId(15))
[blocking/client.rs:756][TRACE] (ThreadId(15)) Receiver is shutdown
[blocking/client.rs:761][TRACE] (ThreadId(15)) end runtime::block_on
[poll.rs:907][TRACE] deregistering handle with poller
[lib.rs:330][TRACE] signal: Closed
[blocking/client.rs:763][TRACE] (ThreadId(15)) finished
[blocking/client.rs:710][TRACE] closed runtime thread (ThreadId(15))
[platform_impl/macos/view.rs:916][TRACE] Triggered `mouseEntered`
[platform_impl/macos/view.rs:950][TRACE] Completed `mouseEntered`
[main.rs:97][INFO] Detected server protocol version 736
[blocking/wait.rs:46][TRACE] (ThreadId(18)) park without timeout
[sys/unix/kqueue.rs:100][TRACE] registering; token=Token(18446744073709551615); interests=Readable
[poll.rs:787][TRACE] registering with poller
[blocking/client.rs:759][TRACE] (ThreadId(19)) start runtime::block_on
[blocking/wait.rs:17][TRACE] wait at most 30s
[blocking/wait.rs:43][TRACE] (ThreadId(18)) park timeout 29.999999088s
[client/pool.rs:614][TRACE] checkout waiting for idle connection: ("https", sessionserver.mojang.com)
[connect.rs:514][DEBUG] starting new connection: https://sessionserver.mojang.com/
[client/connect/http.rs:258][TRACE] Http::connect; scheme=Some("https"), host=Some("sessionserver.mojang.com"), port=None
[client/connect/dns.rs:121][DEBUG] resolving host="sessionserver.mojang.com"
[client/connect/http.rs:531][DEBUG] connecting to 13.224.134.169:443
[poll.rs:787][TRACE] registering with poller
[sys/unix/kqueue.rs:100][TRACE] registering; token=Token(0); interests=Readable | Writable | Error | Hup
[client/connect/http.rs:534][DEBUG] connected to 13.224.134.169:443
[client/conn.rs:607][TRACE] client handshake HTTP/1
[client/mod.rs:513][TRACE] handshake complete, spawning background dispatcher task
[lib.rs:341][TRACE] signal: Want
[lib.rs:355][TRACE] signal found waiting giver, notifying
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy }
[lib.rs:200][TRACE] poll_want: taker wants!
[client/pool.rs:656][TRACE] checkout dropped for ("https", sessionserver.mojang.com)
[proto/h1/role.rs:88][TRACE] encode_headers
[proto/h1/role.rs:88][TRACE] -> encode_headers
[proto/h1/role.rs:730][TRACE] Client::encode method=POST, body=Some(Known(434))
[proto/h1/role.rs:88][TRACE] <- encode_headers
[proto/h1/role.rs:88][TRACE] -- encode_headers
[proto/h1/encode.rs:148][TRACE] sized write, len = 434
[proto/h1/io.rs:595][TRACE] detected no usage of vectored write, flattening
[proto/h1/io.rs:229][DEBUG] flushed 139 bytes
[proto/h1/io.rs:229][DEBUG] flushed 434 bytes
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy }
[proto/h1/conn.rs:142][TRACE] Conn::read_head
[proto/h1/io.rs:193][DEBUG] read 351 bytes
[proto/h1/role.rs:76][TRACE] parse_headers
[proto/h1/role.rs:76][TRACE] -> parse_headers
[proto/h1/role.rs:656][TRACE] Response.parse([Header; 100], [u8; 351])
[proto/h1/role.rs:665][TRACE] Response.parse Complete(351)
[proto/h1/role.rs:76][TRACE] <- parse_headers
[proto/h1/role.rs:76][TRACE] -- parse_headers
[proto/h1/io.rs:167][DEBUG] parsed 8 headers
[proto/h1/conn.rs:158][DEBUG] incoming body is empty
[proto/h1/conn.rs:396][TRACE] maybe_notify; read_from_io blocked
[lib.rs:341][TRACE] signal: Want
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[lib.rs:341][TRACE] signal: Want
[proto/h1/conn.rs:650][TRACE] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[client/pool.rs:320][TRACE] put; add idle connection for ("https", sessionserver.mojang.com)
[client/pool.rs:366][DEBUG] pooling idle connection for ("https", sessionserver.mojang.com)
[async_impl/client.rs:1451][DEBUG] response '204 No Content' for https://sessionserver.mojang.com/session/minecraft/join
[blocking/client.rs:706][TRACE] closing runtime thread (ThreadId(19))
[blocking/client.rs:708][TRACE] signaled close for runtime thread (ThreadId(19))
[blocking/client.rs:756][TRACE] (ThreadId(19)) Receiver is shutdown
[blocking/client.rs:761][TRACE] (ThreadId(19)) end runtime::block_on
[poll.rs:907][TRACE] deregistering handle with poller
[lib.rs:330][TRACE] signal: Closed
[blocking/client.rs:763][TRACE] (ThreadId(19)) finished
[blocking/client.rs:710][TRACE] closed runtime thread (ThreadId(19))
[server/mod.rs:241][DEBUG] Login: theLMGN UUID(5384017352114784314, 10552432192312598548)
thread 'main' panicked at 'Err: Err("Failed to read all of packet 0x47, had 1292 bytes left")', src/server/mod.rs:571:33
stack backtrace:
   0: _rust_begin_unwind
   1: std::panicking::begin_panic_fmt
   2: stevenarella::server::Server::entity_tick
   3: stevenarella::server::Server::tick
   4: stevenarella::main2::{{closure}}
   5: <winit::platform_impl::platform::app_state::EventLoopHandler<T> as winit::platform_impl::platform::app_state::EventHandler>::handle_nonuser_event
   6: winit::platform_impl::platform::app_state::Handler::handle_nonuser_event
   7: winit::platform_impl::platform::app_state::AppState::cleared
   8: ____CFXPCCreateCFObjectFromXPCObject_block_invoke
   9: ___CFRunLoopObserverCancel
  10: ___CFRunLoopRun
  11: ___CFTSRToDispatchTime
  12: _RunCurrentEventLoopInMode
  13: _ReceiveNextEventCommon
  14: __BlockUntilNextEventMatchingListInModeWithFilter
  15: __DPSNextEvent
  16: -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
  17: -[NSApplication run]
  18: winit::platform_impl::platform::event_loop::EventLoop<T>::run
  19: winit::event_loop::EventLoop<T>::run
  20: stevenarella::main2
  21: stevenarella::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
iceiix commented 3 years ago

Hex dump of http://lmgn.uk/BYN.last-packet - will need to check 0x47 packet parsing code:

00000000  c7 00 ef 05 82 01 85 05  01 0a 00 00 03 00 06 44  |...............D|
00000010  61 6d 61 67 65 00 00 00  00 00 83 01 84 05 01 0a  |amage...........|
00000020  00 00 03 00 06 44 61 6d  61 67 65 00 00 00 00 00  |.....Damage.....|
00000030  84 01 83 05 01 0a 00 00  03 00 06 44 61 6d 61 67  |...........Damag|
00000040  65 00 00 00 00 00 05 01  c5 06 01 0a 00 00 0b 00  |e...............|
00000050  0e 53 6b 75 6c 6c 4f 77  6e 65 72 4f 72 69 67 00  |.SkullOwnerOrig.|
00000060  00 00 04 ca 2f d5 ee a2  ac 4a d3 ae 99 eb 78 f9  |..../....J....x.|
00000070  9d ad 9e 0a 00 0a 53 6b  75 6c 6c 4f 77 6e 65 72  |......SkullOwner|
00000080  08 00 04 4e 61 6d 65 00  07 52 65 69 67 6e 5f 49  |...Name..Reign_I|
00000090  0b 00 02 49 64 00 00 00  04 5b fd 5d 62 8a 5e 36  |...Id....[.]b.^6|
000000a0  71 af 4e 7f b1 99 b9 39  d2 0a 00 0a 50 72 6f 70  |q.N....9....Prop|
000000b0  65 72 74 69 65 73 09 00  08 74 65 78 74 75 72 65  |erties...texture|
000000c0  73 0a 00 00 00 01 08 00  05 56 61 6c 75 65 01 98  |s........Value..|
000000d0  65 77 6f 67 49 43 4a 30  61 57 31 6c 63 33 52 68  |ewogICJ0aW1lc3Rh|
000000e0  62 58 41 69 49 44 6f 67  4d 54 55 35 4f 54 45 31  |bXAiIDogMTU5OTE1|
000000f0  4e 6a 4d 33 4d 6a 4d 30  4e 43 77 4b 49 43 41 69  |NjM3MjM0NCwKICAi|
00000100  63 48 4a 76 5a 6d 6c 73  5a 55 6c 6b 49 69 41 36  |cHJvZmlsZUlkIiA6|
00000110  49 43 4a 6a 59 54 4a 6d  5a 44 56 6c 5a 57 45 79  |ICJjYTJmZDVlZWEy|
00000120  59 57 4d 30 59 57 51 7a  59 57 55 35 4f 57 56 69  |YWM0YWQzYWU5OWVi|
00000130  4e 7a 68 6d 4f 54 6c 6b  59 57 51 35 5a 53 49 73  |NzhmOTlkYWQ5ZSIs|
00000140  43 69 41 67 49 6e 42 79  62 32 5a 70 62 47 56 4f  |CiAgInByb2ZpbGVO|
00000150  59 57 31 6c 49 69 41 36  49 43 4a 53 5a 57 6c 6e  |YW1lIiA6ICJSZWln|
00000160  62 6c 39 4a 49 69 77 4b  49 43 41 69 63 32 6c 6e  |bl9JIiwKICAic2ln|
00000170  62 6d 46 30 64 58 4a 6c  55 6d 56 78 64 57 6c 79  |bmF0dXJlUmVxdWly|
00000180  5a 57 51 69 49 44 6f 67  64 48 4a 31 5a 53 77 4b  |ZWQiIDogdHJ1ZSwK|
00000190  49 43 41 69 64 47 56 34  64 48 56 79 5a 58 4d 69  |ICAidGV4dHVyZXMi|
000001a0  49 44 6f 67 65 77 6f 67  49 43 41 67 49 6c 4e 4c  |IDogewogICAgIlNL|
000001b0  53 55 34 69 49 44 6f 67  65 77 6f 67 49 43 41 67  |SU4iIDogewogICAg|
000001c0  49 43 41 69 64 58 4a 73  49 69 41 36 49 43 4a 6f  |ICAidXJsIiA6ICJo|
000001d0  64 48 52 77 4f 69 38 76  64 47 56 34 64 48 56 79  |dHRwOi8vdGV4dHVy|
000001e0  5a 58 4d 75 62 57 6c 75  5a 57 4e 79 59 57 5a 30  |ZXMubWluZWNyYWZ0|
000001f0  4c 6d 35 6c 64 43 39 30  5a 58 68 30 64 58 4a 6c  |Lm5ldC90ZXh0dXJl|
00000200  4c 7a 67 33 4f 57 55 77  4e 57 52 6a 4d 47 51 79  |Lzg3OWUwNWRjMGQy|
00000210  4e 7a 56 6b 59 6a 55 33  4f 44 45 7a 59 6a 67 31  |NzVkYjU3ODEzYjg1|
00000220  4e 32 55 33 59 6d 49 35  4f 54 49 7a 4f 54 55 79  |N2U3YmI5OTIzOTUy|
00000230  4d 54 55 31 4f 47 56 6d  59 6d 45 79 5a 54 55 30  |MTU1OGVmYmEyZTU0|
00000240  4f 57 4a 6b 4e 44 4d 79  4e 32 52 6a 4e 54 42 6b  |OWJkNDMyN2RjNTBk|
00000250  4d 44 45 78 5a 6d 45 69  43 69 41 67 49 43 42 39  |MDExZmEiCiAgICB9|
00000260  43 69 41 67 66 51 70 39  08 00 09 53 69 67 6e 61  |CiAgfQp9...Signa|
00000270  74 75 72 65 02 ac 42 75  30 6a 2b 46 39 4b 6c 52  |ture..Bu0j+F9KlR|
00000280  6c 70 58 32 61 70 6d 44  70 34 79 76 48 4c 76 63  |lpX2apmDp4yvHLvc|
00000290  43 2f 50 56 62 69 33 64  66 77 58 51 49 32 39 4b  |C/PVbi3dfwXQI29K|
000002a0  6b 67 66 52 48 61 61 79  51 7a 72 63 42 4b 33 55  |kgfRHaayQzrcBK3U|
000002b0  56 31 34 6a 67 58 6e 55  6e 69 5a 6f 78 58 35 6a  |V14jgXnUniZoxX5j|
000002c0  30 74 6f 65 78 36 6c 63  6a 63 6b 2f 2b 6a 54 79  |0toex6lcjck/+jTy|
000002d0  78 43 75 49 72 53 78 69  70 74 71 55 61 2b 34 57  |xCuIrSxiptqUa+4W|
000002e0  59 2b 61 6f 37 74 74 79  50 71 44 61 47 2f 51 52  |Y+ao7ttyPqDaG/QR|
000002f0  57 32 6e 49 65 34 36 42  6d 37 31 6a 41 2f 4a 2f  |W2nIe46Bm71jA/J/|
00000300  51 41 6f 35 38 56 54 35  33 6a 57 59 4d 38 51 62  |QAo58VT53jWYM8Qb|
00000310  4d 61 54 70 4d 38 2b 45  6e 6c 4c 69 48 54 71 79  |MaTpM8+EnlLiHTqy|
00000320  79 6e 48 49 4d 76 36 50  50 42 75 64 46 50 51 68  |ynHIMv6PPBudFPQh|
00000330  5a 59 62 59 76 79 65 73  44 67 78 76 57 6a 65 63  |ZYbYvyesDgxvWjec|
00000340  63 6b 57 56 61 61 5a 35  62 32 65 37 57 37 65 6b  |ckWVaaZ5b2e7W7ek|
00000350  62 49 50 61 53 70 39 5a  45 75 50 4b 67 68 78 52  |bIPaSp9ZEuPKghxR|
00000360  64 30 54 76 2f 41 71 66  66 30 37 4b 78 61 4d 65  |d0Tv/Aqff07KxaMe|
00000370  54 78 42 43 75 59 45 33  4e 70 35 5a 4f 62 49 55  |TxBCuYE3Np5ZObIU|
00000380  68 4a 54 47 71 39 51 54  66 66 4d 36 51 34 49 41  |hJTGq9QTffM6Q4IA|
00000390  72 78 72 71 4b 38 32 64  46 46 57 32 4d 47 42 71  |rxrqK82dFFW2MGBq|
000003a0  64 4d 4b 54 51 45 38 50  65 37 58 4c 72 42 66 53  |dMKTQE8Pe7XLrBfS|
000003b0  6a 45 77 68 76 65 7a 42  48 63 37 55 4e 39 74 67  |jEwhvezBHc7UN9tg|
000003c0  2f 36 74 43 54 54 67 72  4b 59 42 54 74 31 37 7a  |/6tCTTgrKYBTt17z|
000003d0  45 74 34 33 45 4c 36 6b  59 50 75 7a 36 76 30 46  |Et43EL6kYPuz6v0F|
000003e0  65 55 52 7a 55 6f 67 4c  38 51 2f 66 6c 46 69 56  |eURzUogL8Q/flFiV|
000003f0  66 5a 42 32 51 51 30 39  4c 66 41 58 45 72 72 37  |fZB2QQ09LfAXErr7|
00000400  66 6e 33 6c 52 75 54 4b  53 4c 6c 7a 58 30 63 35  |fn3lRuTKSLlzX0c5|
00000410  72 51 4a 5a 4f 49 69 58  75 54 58 6f 44 46 45 42  |rQJZOIiXuTXoDFEB|
00000420  33 70 38 37 35 58 41 34  61 7a 36 51 47 66 6a 66  |3p875XA4az6QGfjf|
00000430  32 52 7a 52 47 75 35 76  4d 37 77 42 43 71 46 41  |2RzRGu5vM7wBCqFA|
00000440  52 58 77 4d 6e 35 45 47  73 35 74 72 54 4f 62 47  |RXwMn5EGs5trTObG|
00000450  4c 4c 6a 70 4e 70 7a 74  42 6f 58 37 39 52 42 68  |LLjpNpztBoX79RBh|
00000460  6b 6d 74 77 48 43 6d 64  42 34 4f 47 72 6d 6e 68  |kmtwHCmdB4OGrmnh|
00000470  59 67 70 52 30 36 5a 57  2b 68 31 49 4c 2b 6f 56  |YgpR06ZW+h1IL+oV|
00000480  66 76 33 6b 51 5a 68 70  6b 55 31 63 38 2f 55 71  |fv3kQZhpkU1c8/Uq|
00000490  35 68 6c 77 37 45 65 5a  43 49 50 74 48 46 6f 7a  |5hlw7EeZCIPtHFoz|
000004a0  62 75 35 77 59 73 6d 4d  74 51 4f 6e 70 79 70 6b  |bu5wYsmMtQOnpypk|
000004b0  72 4d 31 6b 38 66 33 4f  4f 55 50 34 5a 6e 4d 5a  |rM1k8f3OOUP4ZnMZ|
000004c0  6a 62 53 73 51 70 6c 79  2b 59 5a 63 6a 33 30 75  |jbSsQply+YZcj30u|
000004d0  2f 50 6b 38 77 35 65 47  68 33 49 6b 62 38 50 38  |/Pk8w5eGh3Ikb8P8|
000004e0  56 6d 54 75 77 75 37 2f  52 61 6f 7a 72 58 65 6b  |VmTuwu7/RaozrXek|
000004f0  76 72 44 54 72 62 75 64  41 78 4c 42 4c 56 6f 72  |vrDTrbudAxLBLVor|
00000500  6e 54 65 73 34 38 41 63  36 6d 4e 2f 75 46 6d 66  |nTes48Ac6mN/uFmf|
00000510  6e 73 79 6d 49 76 42 6a  51 44 47 45 56 6c 4e 4c  |nsymIvBjQDGEVlNL|
00000520  30 3d 00 00 00 00                                 |0=....|
00000526

protocol/src/protocol/versions/v1_16_1.rs has an open TODO for this packet:

            0x47 => EntityEquipment_VarInt // TODO: changed to an array, but earlier than 1.16.1
iceiix commented 3 years ago

Might be same as or related to https://github.com/iceiix/stevenarella/issues/408

iceiix commented 3 years ago

Testing with https://github.com/iceiix/stevenarella/pull/438:

cargo run  -- -N ~/Downloads/BYN.last-packet -p 736

packet = Some(EntityEquipment_VarInt(EntityEquipment_VarInt { entity_id: 751, slot: 130, item: Some(Stack { id: 5, count: 1, damage: None, tag: Some(NamedTag("", Compound({"Damage": Int(0)}))) }) }))

~The packet parses without error, I must be missing something...~

Reproduces incomplete parse:

packet = Some(EntityEquipment_VarInt(EntityEquipment_VarInt { entity_id: 751, slot: 130, item: Some(Stack { id: 5, count: 1, damage: None, tag: Some(NamedTag("", Compound({"Damage": Int(0)}))) }) }))
pos = 26
ibuf = [199, 0, 239, 5, 130, 1, 133, 5, 1, 10, 0, 0, 3, 0, 6, 68, 97, 109, 97, 103, 101, 0, 0, 0, 0, 0, 131, 1, 132, 5, 1, 10, 0, 0, 3, 0, 6, 68, 97, 109, 97, 103, 101, 0, 0, 0, 0, 0, 132, 1, 131, 5, 1, 10, 0, 0, 3, 0, 6, 68, 97, 109, 97, 103, 101, 0, 0, 0, 0, 0, 5, 1, 197, 6, 1, 10, 0, 0, 11, 0, 14, 83, 107, 117, 108, 108, 79, 119, 110, 101, 114, 79, 114, 105, 103, 0, 0, 0, 4, 202, 47, 213, 238, 162, 172, 74, 211, 174, 153, 235, 120, 249, 157, 173, 158, 10, 0, 10, 83, 107, 117, 108, 108, 79, 119, 110, 101, 114, 8, 0, 4, 78, 97, 109, 101, 0, 7, 82, 101, 105, 103, 110, 95, 73, 11, 0, 2, 73, 100, 0, 0, 0, 4, 91, 253, 93, 98, 138, 94, 54, 113, 175, 78, 127, 177, 153, 185, 57, 210, 10, 0, 10, 80, 114, 111, 112, 101, 114, 116, 105, 101, 115, 9, 0, 8, 116, 101, 120, 116, 117, 114, 101, 115, 10, 0, 0, 0, 1, 8, 0, 5, 86, 97, 108, 117, 101, 1, 152, 101, 119, 111, 103, 73, 67, 74, 48, 97, 87, 49, 108, 99, 51, 82, 104, 98, 88, 65, 105, 73, 68, 111, 103, 77, 84, 85, 53, 79, 84, 69, 49, 78, 106, 77, 51, 77, 106, 77, 48, 78, 67, 119, 75, 73, 67, 65, 105, 99, 72, 74, 118, 90, 109, 108, 115, 90, 85, 108, 107, 73, 105, 65, 54, 73, 67, 74, 106, 89, 84, 74, 109, 90, 68, 86, 108, 90, 87, 69, 121, 89, 87, 77, 48, 89, 87, 81, 122, 89, 87, 85, 53, 79, 87, 86, 105, 78, 122, 104, 109, 79, 84, 108, 107, 89, 87, 81, 53, 90, 83, 73, 115, 67, 105, 65, 103, 73, 110, 66, 121, 98, 50, 90, 112, 98, 71, 86, 79, 89, 87, 49, 108, 73, 105, 65, 54, 73, 67, 74, 83, 90, 87, 108, 110, 98, 108, 57, 74, 73, 105, 119, 75, 73, 67, 65, 105, 99, 50, 108, 110, 98, 109, 70, 48, 100, 88, 74, 108, 85, 109, 86, 120, 100, 87, 108, 121, 90, 87, 81, 105, 73, 68, 111, 103, 100, 72, 74, 49, 90, 83, 119, 75, 73, 67, 65, 105, 100, 71, 86, 52, 100, 72, 86, 121, 90, 88, 77, 105, 73, 68, 111, 103, 101, 119, 111, 103, 73, 67, 65, 103, 73, 108, 78, 76, 83, 85, 52, 105, 73, 68, 111, 103, 101, 119, 111, 103, 73, 67, 65, 103, 73, 67, 65, 105, 100, 88, 74, 115, 73, 105, 65, 54, 73, 67, 74, 111, 100, 72, 82, 119, 79, 105, 56, 118, 100, 71, 86, 52, 100, 72, 86, 121, 90, 88, 77, 117, 98, 87, 108, 117, 90, 87, 78, 121, 89, 87, 90, 48, 76, 109, 53, 108, 100, 67, 57, 48, 90, 88, 104, 48, 100, 88, 74, 108, 76, 122, 103, 51, 79, 87, 85, 119, 78, 87, 82, 106, 77, 71, 81, 121, 78, 122, 86, 107, 89, 106, 85, 51, 79, 68, 69, 122, 89, 106, 103, 49, 78, 50, 85, 51, 89, 109, 73, 53, 79, 84, 73, 122, 79, 84, 85, 121, 77, 84, 85, 49, 79, 71, 86, 109, 89, 109, 69, 121, 90, 84, 85, 48, 79, 87, 74, 107, 78, 68, 77, 121, 78, 50, 82, 106, 78, 84, 66, 107, 77, 68, 69, 120, 90, 109, 69, 105, 67, 105, 65, 103, 73, 67, 66, 57, 67, 105, 65, 103, 102, 81, 112, 57, 8, 0, 9, 83, 105, 103, 110, 97, 116, 117, 114, 101, 2, 172, 66, 117, 48, 106, 43, 70, 57, 75, 108, 82, 108, 112, 88, 50, 97, 112, 109, 68, 112, 52, 121, 118, 72, 76, 118, 99, 67, 47, 80, 86, 98, 105, 51, 100, 102, 119, 88, 81, 73, 50, 57, 75, 107, 103, 102, 82, 72, 97, 97, 121, 81, 122, 114, 99, 66, 75, 51, 85, 86, 49, 52, 106, 103, 88, 110, 85, 110, 105, 90, 111, 120, 88, 53, 106, 48, 116, 111, 101, 120, 54, 108, 99, 106, 99, 107, 47, 43, 106, 84, 121, 120, 67, 117, 73, 114, 83, 120, 105, 112, 116, 113, 85, 97, 43, 52, 87, 89, 43, 97, 111, 55, 116, 116, 121, 80, 113, 68, 97, 71, 47, 81, 82, 87, 50, 110, 73, 101, 52, 54, 66, 109, 55, 49, 106, 65, 47, 74, 47, 81, 65, 111, 53, 56, 86, 84, 53, 51, 106, 87, 89, 77, 56, 81, 98, 77, 97, 84, 112, 77, 56, 43, 69, 110, 108, 76, 105, 72, 84, 113, 121, 121, 110, 72, 73, 77, 118, 54, 80, 80, 66, 117, 100, 70, 80, 81, 104, 90, 89, 98, 89, 118, 121, 101, 115, 68, 103, 120, 118, 87, 106, 101, 99, 99, 107, 87, 86, 97, 97, 90, 53, 98, 50, 101, 55, 87, 55, 101, 107, 98, 73, 80, 97, 83, 112, 57, 90, 69, 117, 80, 75, 103, 104, 120, 82, 100, 48, 84, 118, 47, 65, 113, 102, 102, 48, 55, 75, 120, 97, 77, 101, 84, 120, 66, 67, 117, 89, 69, 51, 78, 112, 53, 90, 79, 98, 73, 85, 104, 74, 84, 71, 113, 57, 81, 84, 102, 102, 77, 54, 81, 52, 73, 65, 114, 120, 114, 113, 75, 56, 50, 100, 70, 70, 87, 50, 77, 71, 66, 113, 100, 77, 75, 84, 81, 69, 56, 80, 101, 55, 88, 76, 114, 66, 102, 83, 106, 69, 119, 104, 118, 101, 122, 66, 72, 99, 55, 85, 78, 57, 116, 103, 47, 54, 116, 67, 84, 84, 103, 114, 75, 89, 66, 84, 116, 49, 55, 122, 69, 116, 52, 51, 69, 76, 54, 107, 89, 80, 117, 122, 54, 118, 48, 70, 101, 85, 82, 122, 85, 111, 103, 76, 56, 81, 47, 102, 108, 70, 105, 86, 102, 90, 66, 50, 81, 81, 48, 57, 76, 102, 65, 88, 69, 114, 114, 55, 102, 110, 51, 108, 82, 117, 84, 75, 83, 76, 108, 122, 88, 48, 99, 53, 114, 81, 74, 90, 79, 73, 105, 88, 117, 84, 88, 111, 68, 70, 69, 66, 51, 112, 56, 55, 53, 88, 65, 52, 97, 122, 54, 81, 71, 102, 106, 102, 50, 82, 122, 82, 71, 117, 53, 118, 77, 55, 119, 66, 67, 113, 70, 65, 82, 88, 119, 77, 110, 53, 69, 71, 115, 53, 116, 114, 84, 79, 98, 71, 76, 76, 106, 112, 78, 112, 122, 116, 66, 111, 88, 55, 57, 82, 66, 104, 107, 109, 116, 119, 72, 67, 109, 100, 66, 52, 79, 71, 114, 109, 110, 104, 89, 103, 112, 82, 48, 54, 90, 87, 43, 104, 49, 73, 76, 43, 111, 86, 102, 118, 51, 107, 81, 90, 104, 112, 107, 85, 49, 99, 56, 47, 85, 113, 53, 104, 108, 119, 55, 69, 101, 90, 67, 73, 80, 116, 72, 70, 111, 122, 98, 117, 53, 119, 89, 115, 109, 77, 116, 81, 79, 110, 112, 121, 112, 107, 114, 77, 49, 107, 56, 102, 51, 79, 79, 85, 80, 52, 90, 110, 77, 90, 106, 98, 83, 115, 81, 112, 108, 121, 43, 89, 90, 99, 106, 51, 48, 117, 47, 80, 107, 56, 119, 53, 101, 71, 104, 51, 73, 107, 98, 56, 80, 56, 86, 109, 84, 117, 119, 117, 55, 47, 82, 97, 111, 122, 114, 88, 101, 107, 118, 114, 68, 84, 114, 98, 117, 100, 65, 120, 76, 66, 76, 86, 111, 114, 110, 84, 101, 115, 52, 56, 65, 99, 54, 109, 78, 47, 117, 70, 109, 102, 110, 115, 121, 109, 73, 118, 66, 106, 81, 68, 71, 69, 86, 108, 78, 76, 48, 61, 0, 0, 0, 0]
Failed to read all of packet 0x47, had 1292 bytes left
iceiix commented 3 years ago

Duplicate of #408, parses correctly with changes in #438:

packet = Some(EntityEquipment_Array(EntityEquipment_Array { entity_id: 751, equipments: EntityEquipments { equipments: [EntityEquipment { slot: 2, item: Some(Stack { id: 645, count: 1, damage: None, tag: Some(NamedTag("", Compound({"Damage": Int(0)}))) }) }, EntityEquipment { slot: 3, item: Some(Stack { id: 644, count: 1, damage: None, tag: Some(NamedTag("", Compound({"Damage": Int(0)}))) }) }, EntityEquipment { slot: 4, item: Some(Stack { id: 643, count: 1, damage: None, tag: Some(NamedTag("", Compound({"Damage": Int(0)}))) }) }, EntityEquipment { slot: 5, item: Some(Stack { id: 837, count: 1, damage: None, tag: Some(NamedTag("", Compound({"SkullOwner": Compound({"Name": String("Reign_I"), "Id": IntArray([1543331170, -1973537167, -1353809999, -1715914286]), "Properties": Compound({"textures": List([Compound({"Value": String("ewogICJ0aW1lc3RhbXAiIDogMTU5OTE1NjM3MjM0NCwKICAicHJvZmlsZUlkIiA6ICJjYTJmZDVlZWEyYWM0YWQzYWU5OWViNzhmOTlkYWQ5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJSZWlnbl9JIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg3OWUwNWRjMGQyNzVkYjU3ODEzYjg1N2U3YmI5OTIzOTUyMTU1OGVmYmEyZTU0OWJkNDMyN2RjNTBkMDExZmEiCiAgICB9CiAgfQp9"), "Signature": String("Bu0j+F9KlRlpX2apmDp4yvHLvcC/PVbi3dfwXQI29KkgfRHaayQzrcBK3UV14jgXnUniZoxX5j0toex6lcjck/+jTyxCuIrSxiptqUa+4WY+ao7ttyPqDaG/QRW2nIe46Bm71jA/J/QAo58VT53jWYM8QbMaTpM8+EnlLiHTqyynHIMv6PPBudFPQhZYbYvyesDgxvWjecckWVaaZ5b2e7W7ekbIPaSp9ZEuPKghxRd0Tv/Aqff07KxaMeTxBCuYE3Np5ZObIUhJTGq9QTffM6Q4IArxrqK82dFFW2MGBqdMKTQE8Pe7XLrBfSjEwhvezBHc7UN9tg/6tCTTgrKYBTt17zEt43EL6kYPuz6v0FeURzUogL8Q/flFiVfZB2QQ09LfAXErr7fn3lRuTKSLlzX0c5rQJZOIiXuTXoDFEB3p875XA4az6QGfjf2RzRGu5vM7wBCqFARXwMn5EGs5trTObGLLjpNpztBoX79RBhkmtwHCmdB4OGrmnhYgpR06ZW+h1IL+oVfv3kQZhpkU1c8/Uq5hlw7EeZCIPtHFozbu5wYsmMtQOnpypkrM1k8f3OOUP4ZnMZjbSsQply+YZcj30u/Pk8w5eGh3Ikb8P8VmTuwu7/RaozrXekvrDTrbudAxLBLVornTes48Ac6mN/uFmfnsymIvBjQDGEVlNL0=")})])})}), "SkullOwnerOrig": IntArray([-902834706, -1565766957, -1365644424, -107106914])}))) }) }] } }))