From 945ddb6ea03467f4a4eb13dc618957d0b68b7141 Mon Sep 17 00:00:00 2001 From: GIKExe <72767917+GIKExe@users.noreply.github.com> Date: Sat, 3 May 2025 20:42:10 +0300 Subject: [PATCH] asdsdasdas --- src/server/protocol/play.rs | 38 +++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/server/protocol/play.rs b/src/server/protocol/play.rs index 9f5e99a..4a56347 100644 --- a/src/server/protocol/play.rs +++ b/src/server/protocol/play.rs @@ -1,19 +1,49 @@ use std::sync::Arc; +use rust_mc_proto::{DataWriter, Packet}; + use crate::server::{ ServerError, data::text_component::TextComponent, player::context::ClientContext, }; +use super::id::clientbound; + // Отдельная функция для работы с самой игрой pub fn handle_play_state( client: Arc, // Контекст клиента ) -> Result<(), ServerError> { // Отключение игрока с сообщением - client.protocol_helper().disconnect(TextComponent::rainbow( - "server is in developement suka".to_string(), - ))?; + // client.protocol_helper().disconnect(TextComponent::rainbow( + // "server is in developement suka".to_string(), + // ))?; - // TODO: Сделать отправку пакетов Play + let mut packet = Packet::empty(clientbound::play::LOGIN); + packet.write_int(10)?; // Entity ID + packet.write_boolean(false)?; // Is hardcore + packet.write_varint(1)?; // Dimension Names + packet.write_string("minecraft:overworld")?; + // packet.write_string("root/minecraft:nether")?; + // packet.write_string("root/minecraft:the_end")?; + packet.write_varint(0)?; // Max Players + packet.write_varint(8)?; // View Distance + packet.write_varint(5)?; // Simulation Distance + packet.write_boolean(false)?; // Reduced Debug Info + packet.write_boolean(true)?; // Enable respawn screen + packet.write_boolean(false)?; // Do limited crafting + + packet.write_varint(0)?; // Dimension Type + packet.write_string("minecraft:overworld")?; // Dimension Name + packet.write_long(0x0f38f26ad09c3e20)?; // Hashed seed + packet.write_byte(0)?; // Game mode + packet.write_signed_byte(-1)?; // Previous Game mode + packet.write_boolean(false)?; // Is Debug + packet.write_boolean(true)?; // Is Flat + packet.write_boolean(false)?; // Has death location + packet.write_varint(20)?; // Portal cooldown + packet.write_varint(60)?; // Sea level + + packet.write_boolean(false)?; // Enforces Secure Chat + client.write_packet(&packet)?; Ok(()) }