chore(bedrock): send Gamemode packet on gamemode switch

This commit is contained in:
Alexander Medvedev 2026-05-04 18:54:58 +02:00
parent 12de93a4bb
commit 5616f02751
2 changed files with 22 additions and 8 deletions

View File

@ -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,
}

View File

@ -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
}