From 9642558f8f8d983a7087f15d68be8cf07a85f0c2 Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 15 Dec 2021 23:10:55 -0600 Subject: azalea --- .../status/clientbound_status_response_packet.rs | 58 ------------------- minecraft-protocol/src/packets/status/mod.rs | 66 ---------------------- .../status/serverbound_status_request_packet.rs | 23 -------- 3 files changed, 147 deletions(-) delete mode 100644 minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs delete mode 100644 minecraft-protocol/src/packets/status/mod.rs delete mode 100644 minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs (limited to 'minecraft-protocol/src/packets/status') diff --git a/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs b/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs deleted file mode 100644 index 920e3484..00000000 --- a/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs +++ /dev/null @@ -1,58 +0,0 @@ -use minecraft_chat::component::Component; -use serde::Deserialize; -use serde_json::Value; -use tokio::io::BufReader; - -use crate::mc_buf::Readable; - -use super::StatusPacket; - -#[derive(Clone, Debug, Deserialize)] -pub struct Version { - pub name: Component, - pub protocol: u32, -} - -#[derive(Clone, Debug, Deserialize)] -pub struct SamplePlayer { - pub id: String, - pub name: String, -} - -#[derive(Clone, Debug, Deserialize)] -pub struct Players { - pub max: u32, - pub online: u32, - pub sample: Vec, -} - -// the entire packet is just json, which is why it has deserialize -#[derive(Clone, Debug, Deserialize)] -pub struct ClientboundStatusResponsePacket { - pub description: Component, - pub favicon: Option, - pub players: Players, - pub version: Version, -} - -impl ClientboundStatusResponsePacket { - pub fn get(self) -> StatusPacket { - StatusPacket::ClientboundStatusResponsePacket(Box::new(self)) - } - - pub fn write(&self, _buf: &mut Vec) {} - - pub async fn read( - buf: &mut BufReader, - ) -> Result { - let status_string = buf.read_utf().await?; - let status_json: Value = - serde_json::from_str(status_string.as_str()).expect("Server status isn't valid JSON"); - - let packet = ClientboundStatusResponsePacket::deserialize(status_json) - .map_err(|e| e.to_string())? - .get(); - - Ok(packet) - } -} diff --git a/minecraft-protocol/src/packets/status/mod.rs b/minecraft-protocol/src/packets/status/mod.rs deleted file mode 100644 index ac6a34e1..00000000 --- a/minecraft-protocol/src/packets/status/mod.rs +++ /dev/null @@ -1,66 +0,0 @@ -pub mod clientbound_status_response_packet; -pub mod serverbound_status_request_packet; - -use async_trait::async_trait; -use tokio::io::BufReader; - -use crate::connect::PacketFlow; - -use super::ProtocolPacket; - -#[derive(Clone, Debug)] -pub enum StatusPacket -where - Self: Sized, -{ - ServerboundStatusRequestPacket( - serverbound_status_request_packet::ServerboundStatusRequestPacket, - ), - ClientboundStatusResponsePacket( - Box, - ), -} - -#[async_trait] -impl ProtocolPacket for StatusPacket { - fn id(&self) -> u32 { - match self { - StatusPacket::ServerboundStatusRequestPacket(_packet) => 0x00, - StatusPacket::ClientboundStatusResponsePacket(_packet) => 0x00, - } - } - - fn write(&self, buf: &mut Vec) { - match self { - StatusPacket::ServerboundStatusRequestPacket(packet) => packet.write(buf), - StatusPacket::ClientboundStatusResponsePacket(packet) => packet.write(buf), - } - } - - /// Read a packet by its id, ConnectionProtocol, and flow - async fn read( - id: u32, - flow: &PacketFlow, - buf: &mut BufReader, - ) -> Result - where - Self: Sized, - { - match flow { - PacketFlow::ServerToClient => match id { - 0x00 => Ok( - clientbound_status_response_packet::ClientboundStatusResponsePacket::read(buf) - .await?, - ), - _ => Err(format!("Unknown ServerToClient status packet id: {}", id)), - }, - PacketFlow::ClientToServer => match id { - 0x00 => Ok( - serverbound_status_request_packet::ServerboundStatusRequestPacket::read(buf) - .await?, - ), - _ => Err(format!("Unknown ClientToServer status packet id: {}", id)), - }, - } - } -} diff --git a/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs b/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs deleted file mode 100644 index 6a58da1f..00000000 --- a/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs +++ /dev/null @@ -1,23 +0,0 @@ -use std::hash::Hash; -use tokio::io::BufReader; - -use super::StatusPacket; - -#[derive(Hash, Clone, Debug)] -pub struct ServerboundStatusRequestPacket {} - -impl ServerboundStatusRequestPacket { - pub fn get(self) -> StatusPacket { - StatusPacket::ServerboundStatusRequestPacket(self) - } - - pub fn write(&self, _buf: &mut Vec) { - panic!("ServerboundStatusRequestPacket::write not implemented") - } - - pub async fn read( - _buf: &mut BufReader, - ) -> Result { - Err("ServerboundStatusRequestPacket::read not implemented".to_string()) - } -} -- cgit v1.2.3