diff --git a/pumpkin-protocol/src/bedrock/client/set_player_gamemode.rs b/pumpkin-protocol/src/bedrock/client/set_player_gamemode.rs index c754101fb..cfcf3b584 100644 --- a/pumpkin-protocol/src/bedrock/client/set_player_gamemode.rs +++ b/pumpkin-protocol/src/bedrock/client/set_player_gamemode.rs @@ -1,9 +1,9 @@ -use crate::{codec::var_int::VarInt, serial::PacketWrite}; +use crate::serial::PacketWrite; use pumpkin_macros::packet; +use pumpkin_util::GameMode; #[derive(PacketWrite)] #[packet(62)] pub struct CSetPlayerGamemode { - // https://mojang.github.io/bedrock-protocol-docs/html/SetPlayerGameTypePacket.html - pub gamemode: VarInt, + pub gamemode: GameMode, } diff --git a/pumpkin/src/entity/player.rs b/pumpkin/src/entity/player.rs index 38e8eca3f..3d803c556 100644 --- a/pumpkin/src/entity/player.rs +++ b/pumpkin/src/entity/player.rs @@ -2522,11 +2522,25 @@ impl Player { )) .await; - self.client - .enqueue_packet(&CGameEvent::new( - GameEvent::ChangeGameMode, - gamemode as i32 as f32, - )).await; + match &self.client { + crate::net::ClientPlatform::Java(client) => { + client + .enqueue_packet(&CGameEvent::new( + GameEvent::ChangeGameMode, + gamemode as i32 as f32, + )) + .await; + } + crate::net::ClientPlatform::Bedrock(client) => { + client + .send_game_packet( + &pumpkin_protocol::bedrock::client::set_player_gamemode::CSetPlayerGamemode { + gamemode, + }, + ) + .await; + } + } true }