From db89af6c07ed83850eac1a89579cad7eaf8fe474 Mon Sep 17 00:00:00 2001 From: MeexReay Date: Tue, 6 May 2025 16:18:13 +0300 Subject: [PATCH] crate --- src/{server => }/config.rs | 0 src/{server => }/context.rs | 0 src/{server => }/data/mod.rs | 0 src/{server => }/data/text_component.rs | 2 +- src/{server => }/event/mod.rs | 5 ++-- src/{server/mod.rs => lib.rs} | 30 ++++++++++++++++++++ src/main.rs | 4 +-- src/{server => }/player/context.rs | 3 +- src/{server => }/player/helper.rs | 2 +- src/{server => }/player/mod.rs | 0 src/{server => }/protocol/handler.rs | 2 +- src/{server => }/protocol/id.rs | 0 src/{server => }/protocol/mod.rs | 0 src/{server => }/protocol/play.rs | 2 +- src/{server => }/protocol/registry-data.bin | Bin src/{server => }/protocol/update-tags.bin | Bin 16 files changed, 39 insertions(+), 11 deletions(-) rename src/{server => }/config.rs (100%) rename src/{server => }/context.rs (100%) rename src/{server => }/data/mod.rs (100%) rename src/{server => }/data/text_component.rs (99%) rename src/{server => }/event/mod.rs (85%) rename src/{server/mod.rs => lib.rs} (90%) rename src/{server => }/player/context.rs (98%) rename src/{server => }/player/helper.rs (99%) rename src/{server => }/player/mod.rs (100%) rename src/{server => }/protocol/handler.rs (99%) rename src/{server => }/protocol/id.rs (100%) rename src/{server => }/protocol/mod.rs (100%) rename src/{server => }/protocol/play.rs (99%) rename src/{server => }/protocol/registry-data.bin (100%) rename src/{server => }/protocol/update-tags.bin (100%) diff --git a/src/server/config.rs b/src/config.rs similarity index 100% rename from src/server/config.rs rename to src/config.rs diff --git a/src/server/context.rs b/src/context.rs similarity index 100% rename from src/server/context.rs rename to src/context.rs diff --git a/src/server/data/mod.rs b/src/data/mod.rs similarity index 100% rename from src/server/data/mod.rs rename to src/data/mod.rs diff --git a/src/server/data/text_component.rs b/src/data/text_component.rs similarity index 99% rename from src/server/data/text_component.rs rename to src/data/text_component.rs index 3f63dc2..d08264b 100644 --- a/src/server/data/text_component.rs +++ b/src/data/text_component.rs @@ -5,7 +5,7 @@ use rust_mc_proto::Packet; use serde::{Deserialize, Serialize}; use serde_with::skip_serializing_none; -use crate::server::ServerError; +use crate::ServerError; use super::ReadWriteNBT; diff --git a/src/server/event/mod.rs b/src/event/mod.rs similarity index 85% rename from src/server/event/mod.rs rename to src/event/mod.rs index d7a8f8d..785aa70 100644 --- a/src/server/event/mod.rs +++ b/src/event/mod.rs @@ -1,6 +1,7 @@ use rust_mc_proto::Packet; -use super::protocol::ConnectionState; +use super::{ServerError, player::context::ClientContext, protocol::ConnectionState}; +use std::sync::Arc; #[macro_export] macro_rules! generate_handlers { @@ -10,7 +11,7 @@ macro_rules! generate_handlers { 0 } - fn [](&self, _: std::sync::Arc $(, _: $arg_ty)*) -> Result<(), crate::server::ServerError> { + fn [](&self, _: Arc $(, _: $arg_ty)*) -> Result<(), ServerError> { Ok(()) } } diff --git a/src/server/mod.rs b/src/lib.rs similarity index 90% rename from src/server/mod.rs rename to src/lib.rs index 19988a5..7e0754f 100644 --- a/src/server/mod.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ use std::{error::Error, fmt::Display, net::TcpListener, sync::Arc, thread, time::Duration}; +use config::Config; use context::ServerContext; use ignore_result::Ignore; use log::{error, info}; @@ -104,3 +105,32 @@ pub fn start_server(server: Arc) { }); } } + +// server start helper +pub struct Server { + context: Arc, +} + +impl Server { + pub fn new(context: ServerContext) -> Self { + Self { + context: Arc::new(context), + } + } + + pub fn context(&self) -> &ServerContext { + &self.context + } + + pub fn start(&self) { + start_server(self.context.clone()); + } +} + +impl Default for Server { + fn default() -> Self { + Self { + context: Arc::new(ServerContext::new(Arc::new(Config::default()))), + } + } +} diff --git a/src/main.rs b/src/main.rs index 8ee9002..1701297 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,7 +2,7 @@ use std::{env::args, path::PathBuf, sync::Arc}; use log::{debug, error, info}; use rust_mc_proto::Packet; -use server::{ +use rust_mc_serv::{ ServerError, config::Config, context::ServerContext, @@ -13,8 +13,6 @@ use server::{ start_server, }; -pub mod server; - struct ExampleListener; impl Listener for ExampleListener { diff --git a/src/server/player/context.rs b/src/player/context.rs similarity index 98% rename from src/server/player/context.rs rename to src/player/context.rs index 7028458..74f6bdb 100644 --- a/src/server/player/context.rs +++ b/src/player/context.rs @@ -13,9 +13,8 @@ use std::{ use rust_mc_proto::{MinecraftConnection, Packet}; use uuid::Uuid; -use crate::server::{ServerError, context::ServerContext, protocol::ConnectionState}; - use super::helper::ProtocolHelper; +use crate::{ServerError, context::ServerContext, protocol::ConnectionState}; // Клиент контекст // Должен быть обернут в Arc для передачи между потоками diff --git a/src/server/player/helper.rs b/src/player/helper.rs similarity index 99% rename from src/server/player/helper.rs rename to src/player/helper.rs index f164ed8..d33cc44 100644 --- a/src/server/player/helper.rs +++ b/src/player/helper.rs @@ -6,7 +6,7 @@ use std::{ use rust_mc_proto::{DataReader, DataWriter, Packet}; -use crate::server::{ +use crate::{ ServerError, data::{ReadWriteNBT, text_component::TextComponent}, protocol::{ diff --git a/src/server/player/mod.rs b/src/player/mod.rs similarity index 100% rename from src/server/player/mod.rs rename to src/player/mod.rs diff --git a/src/server/protocol/handler.rs b/src/protocol/handler.rs similarity index 99% rename from src/server/protocol/handler.rs rename to src/protocol/handler.rs index 01e869a..3967afe 100644 --- a/src/server/protocol/handler.rs +++ b/src/protocol/handler.rs @@ -1,6 +1,6 @@ use std::{io::Read, sync::Arc}; -use crate::server::{ +use crate::{ ServerError, player::context::{ClientContext, ClientInfo, Handshake, PlayerInfo}, }; diff --git a/src/server/protocol/id.rs b/src/protocol/id.rs similarity index 100% rename from src/server/protocol/id.rs rename to src/protocol/id.rs diff --git a/src/server/protocol/mod.rs b/src/protocol/mod.rs similarity index 100% rename from src/server/protocol/mod.rs rename to src/protocol/mod.rs diff --git a/src/server/protocol/play.rs b/src/protocol/play.rs similarity index 99% rename from src/server/protocol/play.rs rename to src/protocol/play.rs index 8e4cc33..4c95a8f 100644 --- a/src/server/protocol/play.rs +++ b/src/protocol/play.rs @@ -7,7 +7,7 @@ use std::{ use rust_mc_proto::{DataReader, DataWriter, Packet, read_packet}; -use crate::server::{ +use crate::{ ServerError, data::{ReadWriteNBT, text_component::TextComponent}, player::context::ClientContext, diff --git a/src/server/protocol/registry-data.bin b/src/protocol/registry-data.bin similarity index 100% rename from src/server/protocol/registry-data.bin rename to src/protocol/registry-data.bin diff --git a/src/server/protocol/update-tags.bin b/src/protocol/update-tags.bin similarity index 100% rename from src/server/protocol/update-tags.bin rename to src/protocol/update-tags.bin