Conversation
|
Current status: crashes soon after login, thread 'main' panicked at 'Err: IOError(Custom { kind: UnexpectedEof, error: StringError("failed to fill whole buffer") })', src/server/mod.rs:441:33 |
|
thread '' panicked at 'unrecognized recipe type: minecraft:acacia_fence_gate', src/protocol/packet.rs:2504:18 |
|
thread '' panicked at 'unrecognized recipe type: minecraft:sandstone_stairs', src/protocol/packet.rs:2504:18 https://wiki.vg/Pre-release_protocol#Declare_Recipes adds minecraft: prefix to recipe types, but doesn't mention minecraft:acacia_fence_gate or minecraft:sandstone_stairs recipe types. Packet structure changed, identifier is now after type instead of before. |
|
Fixed, now a new type: thread '' panicked at 'unrecognized recipe type: stonecutting', src/protocol/packet.rs:2531:18 minecraft:stonecutting;minecraft:nether_brick_slab_from_nether_bricks_stonecutting^@^A^Aâ^A^A^@^A<81>^A^B^@^Yminecraft:crafting_shaped^Tminecraft:bone_block... '\x00\x01\x01\xe2\x01\x01\x00\x01\x81\x01\x02\x00\x19' |
|
Smelting, blasting, smoking, and campfire_cooking all have same group/ingredient/result/experience/cooking time data, but does stonecutting? Appears not: about to parse id=5a, dir=Clientbound state=Play data/minecraft/recipes has some insight, diorite_stairs.json: {
"type": "minecraft:crafting_shaped",
"pattern": [
"# ",
"## ",
"###"
],
"key": {
"#": {
"item": "minecraft:diorite"
}
},
"result": {
"item": "minecraft:diorite_stairs",
"count": 4
}
}vs diorite_stairs_from_diorite_stonecutting.json: {
"type": "minecraft:stonecutting",
"ingredient": {
"item": "minecraft:diorite"
},
"result": "minecraft:diorite_stairs",
"count": 1
} and https://minecraft.gamepedia.com/Recipe#minecraft:stonecutting explains - count is required (and shows experience and cookingtime are omitted) |
|
Same crash, need to track down invalid UTF-8 string: recipe id="minecraft:sandstone_stairs", ty="crafting_shaped", namespace="minecraft:" |
…a better error reporting
|
thread '' panicked at 'called This decodes to 'inecraft:crafting_shaped\x14minecraft:bone_block\x03\x03\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\x01\x86\x05\x01\x00\x01\xf9\x02\x01\x00\x19m' trailing end of: minecraft:stonecutting;minecraft:nether_brick_slab_from_nether_bricks_stonecutting^@^A^Aâ^A^A^@^A<81>^A^B^@^Yminecraft:crafting_shaped^Tminecraft:bone_block 'm' = 109, not a length |
|
thread '' panicked at 'bad packet id 0x40 in Clientbound Play', src/protocol/versions/v1_14.rs:1:1 |
…ViewPosition, UpdateViewDistance
|
about to parse id=3, dir=Clientbound state=Play https://wiki.vg/Pre-release_protocol#Entity_Metadata_Format src/types/metadata.rs read_from113 |
|
Finally see the world: but crashes soon after: packet = Some(EntityLookAndMove_i16(EntityLookAndMove_i16 { entity_id: 2635, delta_x: -136, delta_y: 287, delta_z: -553, yaw: 118, pitch: 0, on_ground: false })) 0x51 Sound Effect didn't change according to https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723, why is it crashing here? |
std::io::Read read_to_string() [1] reports this uninformative error:
thread 'main' panicked at 'Err: IOError(Custom { kind: InvalidData, error: StringError("stream did not contain valid UTF-8") })', src/server/mod.rs:442:33
Instead of read_to_string(), use read_to_end() to read into a buffer,
then convert using String::from_utf8() and unwrap it. This gives a
better error message when UTF-8 fails to decode:
thread '' panicked at 'called Result::unwrap() on an Err value: FromUtf8Error { bytes: [105, 110, 101, 99, 114, 97, 102, 116, 58, 99, 114, 97, 102, 116, 105, 110, 103, 95, 115, 104, 97, 112, 101, 100, 20, 109, 105, 110, 101, 99, 114, 97, 102, 116, 58, 98, 111, 110, 101, 95, 98, 108, 111, 99, 107, 3, 3, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 249, 2, 1, 0, 25, 109], error: Utf8Error { valid_up_to: 50, error_len: Some(1) } }', src/libcore/result.rs:1009:5
which is helpful for tracking down protocol errors, such as updating to
a new protocol (developed for GH-132 / GH-72).
[1] https://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_to_string
[2] https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8
|
Updated readme so it is not missed, but still probably a ways to go. Need to track down what is going on with failing to read the EntitySoundEffect packet (what are the 11 bytes left?), maybe the error is elsewhere? |
|
0x51 should be SoundEffect: https://wiki.vg/Protocol#Sound_Effect, not EntitySoundEffect. 0x50 is EntitySoundEffect, documentation for 1.14: https://wiki.vg/Pre-release_protocol#Entity_Sound_Effect |
|
No new assets yet since 1.13+ is a big change from 1.12.x: #71 1.13/1.14 assets |
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type
std::io::Read read_to_string() [1] reports this uninformative error:
thread 'main' panicked at 'Err: IOError(Custom { kind: InvalidData, error: StringError("stream did not contain valid UTF-8") })', src/server/mod.rs:442:33
Instead of read_to_string(), use read_to_end() to read into a buffer,
then convert using String::from_utf8() and unwrap it. This gives a
better error message when UTF-8 fails to decode:
thread '' panicked at 'called Result::unwrap() on an Err value: FromUtf8Error { bytes: [105, 110, 101, 99, 114, 97, 102, 116, 58, 99, 114, 97, 102, 116, 105, 110, 103, 95, 115, 104, 97, 112, 101, 100, 20, 109, 105, 110, 101, 99, 114, 97, 102, 116, 58, 98, 111, 110, 101, 95, 98, 108, 111, 99, 107, 3, 3, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 249, 2, 1, 0, 25, 109], error: Utf8Error { valid_up_to: 50, error_len: Some(1) } }', src/libcore/result.rs:1009:5
which is helpful for tracking down protocol errors, such as updating to
a new protocol (developed for GH-132 / GH-72).
[1] https://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_to_string
[2] https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type
std::io::Read read_to_string() [1] reports this uninformative error:
thread 'main' panicked at 'Err: IOError(Custom { kind: InvalidData, error: StringError("stream did not contain valid UTF-8") })', src/server/mod.rs:442:33
Instead of read_to_string(), use read_to_end() to read into a buffer,
then convert using String::from_utf8() and unwrap it. This gives a
better error message when UTF-8 fails to decode:
thread '' panicked at 'called Result::unwrap() on an Err value: FromUtf8Error { bytes: [105, 110, 101, 99, 114, 97, 102, 116, 58, 99, 114, 97, 102, 116, 105, 110, 103, 95, 115, 104, 97, 112, 101, 100, 20, 109, 105, 110, 101, 99, 114, 97, 102, 116, 58, 98, 111, 110, 101, 95, 98, 108, 111, 99, 107, 3, 3, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 249, 2, 1, 0, 25, 109], error: Utf8Error { valid_up_to: 50, error_len: Some(1) } }', src/libcore/result.rs:1009:5
which is helpful for tracking down protocol errors, such as updating to
a new protocol (developed for GH-132 / GH-72).
[1] https://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_to_string
[2] https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type
std::io::Read read_to_string() [1] reports this uninformative error:
thread 'main' panicked at 'Err: IOError(Custom { kind: InvalidData, error: StringError("stream did not contain valid UTF-8") })', src/server/mod.rs:442:33
Instead of read_to_string(), use read_to_end() to read into a buffer,
then convert using String::from_utf8() and unwrap it. This gives a
better error message when UTF-8 fails to decode:
thread '' panicked at 'called Result::unwrap() on an Err value: FromUtf8Error { bytes: [105, 110, 101, 99, 114, 97, 102, 116, 58, 99, 114, 97, 102, 116, 105, 110, 103, 95, 115, 104, 97, 112, 101, 100, 20, 109, 105, 110, 101, 99, 114, 97, 102, 116, 58, 98, 111, 110, 101, 95, 98, 108, 111, 99, 107, 3, 3, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 249, 2, 1, 0, 25, 109], error: Utf8Error { valid_up_to: 50, error_len: Some(1) } }', src/libcore/result.rs:1009:5
which is helpful for tracking down protocol errors, such as updating to
a new protocol (developed for GH-132 / GH-72).
[1] https://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_to_string
[2] https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type
std::io::Read read_to_string() [1] reports this uninformative error:
thread 'main' panicked at 'Err: IOError(Custom { kind: InvalidData, error: StringError("stream did not contain valid UTF-8") })', src/server/mod.rs:442:33
Instead of read_to_string(), use read_to_end() to read into a buffer,
then convert using String::from_utf8() and unwrap it. This gives a
better error message when UTF-8 fails to decode:
thread '' panicked at 'called Result::unwrap() on an Err value: FromUtf8Error { bytes: [105, 110, 101, 99, 114, 97, 102, 116, 58, 99, 114, 97, 102, 116, 105, 110, 103, 95, 115, 104, 97, 112, 101, 100, 20, 109, 105, 110, 101, 99, 114, 97, 102, 116, 58, 98, 111, 110, 101, 95, 98, 108, 111, 99, 107, 3, 3, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 1, 134, 5, 1, 0, 1, 249, 2, 1, 0, 25, 109], error: Utf8Error { valid_up_to: 50, error_len: Some(1) } }', src/libcore/result.rs:1009:5
which is helpful for tracking down protocol errors, such as updating to
a new protocol (developed for GH-132 / GH-72).
[1] https://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_to_string
[2] https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type
Adds 1.14 (477) protocol support, based on: https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723 * New packets: SetDifficulty, LockDifficulty, UpdateJigsawBlock, UpdateViewPosition, UpdateViewDistance * New metadata: Optional VarInt (17) and Pose (18) * Add new join game variant with view distance, without difficulty * Add new server difficulty variant, with locked boolean * Implement recipe parsing changes, add stonecutting recipe type

https://minecraft.gamepedia.com/Java_Edition_1.14 released April 23, 2019
Adds #72 (enhances #18)
1.14 is protocol 477
https://wiki.vg/Protocol
https://wiki.vg/Pre-release_protocol
https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14723#Entity_Metadata_Format