does not really fix the issue i guess, but at least you don't get the error anymore
This commit is contained in:
parent
95df70c448
commit
7a8f11b984
38
pumpkin-protocol/fuzz/Cargo.lock
generated
38
pumpkin-protocol/fuzz/Cargo.lock
generated
@ -33,9 +33,9 @@ checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-compression"
|
name = "async-compression"
|
||||||
version = "0.4.41"
|
version = "0.4.42"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1"
|
checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compression-codecs",
|
"compression-codecs",
|
||||||
"compression-core",
|
"compression-core",
|
||||||
@ -168,9 +168,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "compression-codecs"
|
name = "compression-codecs"
|
||||||
version = "0.4.37"
|
version = "0.4.38"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7"
|
checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compression-core",
|
"compression-core",
|
||||||
"flate2",
|
"flate2",
|
||||||
@ -178,9 +178,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "compression-core"
|
name = "compression-core"
|
||||||
version = "0.4.31"
|
version = "0.4.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d"
|
checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "const-oid"
|
name = "const-oid"
|
||||||
@ -665,12 +665,6 @@ version = "0.5.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "hermit-abi"
|
|
||||||
version = "0.5.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hkdf"
|
name = "hkdf"
|
||||||
version = "0.12.4"
|
version = "0.12.4"
|
||||||
@ -876,16 +870,6 @@ dependencies = [
|
|||||||
"autocfg",
|
"autocfg",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num_cpus"
|
|
||||||
version = "1.17.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
|
|
||||||
dependencies = [
|
|
||||||
"hermit-abi",
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "once_cell"
|
name = "once_cell"
|
||||||
version = "1.21.4"
|
version = "1.21.4"
|
||||||
@ -1049,7 +1033,6 @@ dependencies = [
|
|||||||
name = "pumpkin-codecs"
|
name = "pumpkin-codecs"
|
||||||
version = "0.1.0-dev+26.1"
|
version = "0.1.0-dev+26.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dashmap",
|
|
||||||
"either",
|
"either",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"tracing",
|
"tracing",
|
||||||
@ -1099,6 +1082,7 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
"uuid",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1172,7 +1156,6 @@ dependencies = [
|
|||||||
"futures",
|
"futures",
|
||||||
"itertools",
|
"itertools",
|
||||||
"lz4-java-wrc",
|
"lz4-java-wrc",
|
||||||
"num_cpus",
|
|
||||||
"pumpkin-config",
|
"pumpkin-config",
|
||||||
"pumpkin-data",
|
"pumpkin-data",
|
||||||
"pumpkin-nbt",
|
"pumpkin-nbt",
|
||||||
@ -1189,6 +1172,7 @@ dependencies = [
|
|||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tracing",
|
"tracing",
|
||||||
"uuid",
|
"uuid",
|
||||||
|
"xxhash-rust",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1909,6 +1893,12 @@ dependencies = [
|
|||||||
"wasmparser",
|
"wasmparser",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "xxhash-rust"
|
||||||
|
version = "0.8.15"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zeroize"
|
name = "zeroize"
|
||||||
version = "1.8.2"
|
version = "1.8.2"
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
use crate::{bedrock::RAKNET_MAGIC, serial::PacketWrite};
|
||||||
|
use pumpkin_macros::packet;
|
||||||
|
|
||||||
|
#[derive(PacketWrite)]
|
||||||
|
#[packet(0x19)]
|
||||||
|
pub struct CIncompatibleProtocolVersion {
|
||||||
|
protocol_version: u8,
|
||||||
|
magic: [u8; 16],
|
||||||
|
server_guid: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CIncompatibleProtocolVersion {
|
||||||
|
#[must_use]
|
||||||
|
pub const fn new(protocol_version: u8, server_guid: u64) -> Self {
|
||||||
|
Self {
|
||||||
|
protocol_version,
|
||||||
|
magic: RAKNET_MAGIC,
|
||||||
|
server_guid,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,3 +1,4 @@
|
|||||||
pub mod connection;
|
pub mod connection;
|
||||||
|
pub mod incompatible_protocol;
|
||||||
pub mod open_connection;
|
pub mod open_connection;
|
||||||
pub mod unconnected_pong;
|
pub mod unconnected_pong;
|
||||||
|
|||||||
@ -1,9 +1,13 @@
|
|||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
|
|
||||||
use pumpkin_protocol::bedrock::{
|
use pumpkin_protocol::bedrock::{
|
||||||
client::raknet::open_connection::{COpenConnectionReply1, COpenConnectionReply2},
|
client::raknet::{
|
||||||
|
incompatible_protocol::CIncompatibleProtocolVersion,
|
||||||
|
open_connection::{COpenConnectionReply1, COpenConnectionReply2},
|
||||||
|
},
|
||||||
server::raknet::open_connection::{SOpenConnectionRequest1, SOpenConnectionRequest2},
|
server::raknet::open_connection::{SOpenConnectionRequest1, SOpenConnectionRequest2},
|
||||||
};
|
};
|
||||||
|
use pumpkin_world::CURRENT_BEDROCK_MC_PROTOCOL;
|
||||||
use tokio::net::UdpSocket;
|
use tokio::net::UdpSocket;
|
||||||
|
|
||||||
use crate::{net::bedrock::BedrockClient, server::Server};
|
use crate::{net::bedrock::BedrockClient, server::Server};
|
||||||
@ -11,10 +15,23 @@ use crate::{net::bedrock::BedrockClient, server::Server};
|
|||||||
impl BedrockClient {
|
impl BedrockClient {
|
||||||
pub async fn handle_open_connection_1(
|
pub async fn handle_open_connection_1(
|
||||||
server: &Server,
|
server: &Server,
|
||||||
_packet: SOpenConnectionRequest1,
|
packet: SOpenConnectionRequest1,
|
||||||
addr: SocketAddr,
|
addr: SocketAddr,
|
||||||
socket: &UdpSocket,
|
socket: &UdpSocket,
|
||||||
) {
|
) {
|
||||||
|
if packet.protocol_version != CURRENT_BEDROCK_MC_PROTOCOL as u8 {
|
||||||
|
Self::send_offline_packet(
|
||||||
|
&CIncompatibleProtocolVersion::new(
|
||||||
|
CURRENT_BEDROCK_MC_PROTOCOL as u8,
|
||||||
|
server.server_guid,
|
||||||
|
),
|
||||||
|
addr,
|
||||||
|
socket,
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Self::send_offline_packet(
|
Self::send_offline_packet(
|
||||||
&COpenConnectionReply1::new(server.server_guid, false, 1400),
|
&COpenConnectionReply1::new(server.server_guid, false, 1400),
|
||||||
addr,
|
addr,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user