From bd47c4070827cdd36796303074043ad998d480af Mon Sep 17 00:00:00 2001 From: Bluezly <141844841+Bluezly@users.noreply.github.com> Date: Fri, 14 Aug 2026 14:04:06 +0300 Subject: [PATCH] fix(plugin): apply WASM packet event results (#2890) Co-authored-by: Bluezly --- crates/pumpkin/src/net/java/mod.rs | 7 ++++--- .../plugin/loader/wasm/wasm_host/wit/v0_1/events/server.rs | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/crates/pumpkin/src/net/java/mod.rs b/crates/pumpkin/src/net/java/mod.rs index 33b9db20c..36c921d9e 100644 --- a/crates/pumpkin/src/net/java/mod.rs +++ b/crates/pumpkin/src/net/java/mod.rs @@ -644,7 +644,6 @@ impl JavaClient { server: &Arc, packet: &RawPacket, ) -> Result<(), Box> { - let mut payload = &packet.payload[..]; let version = self.version.load(); let mut event = crate::plugin::server::packet::PacketReceivedEvent::new( @@ -657,7 +656,9 @@ impl JavaClient { return Ok(()); } - match packet.id { + let mut payload = &event.payload[..]; + + match event.packet_id { id if id == SConfirmTeleport::to_id(version) => { self.handle_confirm_teleport( player, @@ -995,7 +996,7 @@ impl JavaClient { .await; } _ => { - warn!("Failed to handle player packet id {}", packet.id); + warn!("Failed to handle player packet id {}", event.packet_id); } } Ok(()) diff --git a/crates/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/events/server.rs b/crates/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/events/server.rs index ef22ba460..20a90a78b 100644 --- a/crates/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/events/server.rs +++ b/crates/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/events/server.rs @@ -58,6 +58,13 @@ impl ToFromWasmEvent for PacketReceivedEvent { }) } + fn apply_wasm_event(&mut self, event: Event, _state: &mut PluginHostState) { + if let Event::PacketReceivedEvent(data) = event { + self.packet_id = data.packet_id; + self.payload = data.raw_payload.into(); + self.cancelled = data.cancelled; + } + } fn from_wasm_event(event: Event, _state: &mut PluginHostState) -> Self { match event { Event::PacketReceivedEvent(_) => {