From be762fc5d37ba48386996afb4c5ba0c94aaf5883 Mon Sep 17 00:00:00 2001 From: mat Date: Fri, 10 Dec 2021 00:54:58 -0600 Subject: rust is driving me insane --- .../status/clientbound_status_response_packet.rs | 19 +++++++++++-------- .../status/serverbound_status_request_packet.rs | 13 ++++++++++--- 2 files changed, 21 insertions(+), 11 deletions(-) (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 index ada86667..38747cc8 100644 --- a/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs +++ b/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs @@ -1,28 +1,31 @@ use async_trait::async_trait; use std::hash::Hash; +use tokio::io::BufReader; use crate::{ mc_buf, packets::{Packet, PacketTrait}, }; -#[derive(Hash)] -pub struct ClientboundStatusRequestPacket { +#[derive(Hash, Clone)] +pub struct ClientboundStatusResponsePacket { status: String, } -impl PacketTrait for ClientboundStatusRequestPacket { +#[async_trait] +impl PacketTrait for ClientboundStatusResponsePacket { fn get(&self) -> Packet { - Packet::ClientboundStatusRequestPacket(self) + Packet::ClientboundStatusResponsePacket(self.clone()) } fn write(&self, _buf: &mut Vec) {} - fn parse( - buf: &mut T, + async fn read( + buf: &mut BufReader, ) -> Result, String> { - let status = mc_buf::read_utf(&mut buf).await?; + let status = mc_buf::read_utf(buf).await?; // this.status = GsonHelper.fromJson(GSON, friendlyByteBuf.readUtf(32767), ServerStatus.class); - Ok(ClientboundStatusRequestPacket { status }.get()) + let packet = ClientboundStatusResponsePacket { status }.get(); + Ok(packet) } } diff --git a/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs b/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs index f2e6fe9a..b3c87968 100644 --- a/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs +++ b/minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs @@ -1,4 +1,6 @@ +use async_trait::async_trait; use std::hash::Hash; +use tokio::io::BufReader; use crate::{ mc_buf, @@ -8,11 +10,16 @@ use crate::{ #[derive(Hash)] pub struct ServerboundStatusRequestPacket {} -// implement "Packet" for "ClientIntentionPacket" +#[async_trait] impl PacketTrait for ServerboundStatusRequestPacket { fn get(&self) -> Packet { - Packet::ServerboundStatusRequestPacket(self) + Packet::ServerboundStatusRequestPacket(*self) } fn write(&self, _buf: &mut Vec) {} - fn parse(&self, buf: T) -> () {} + + async fn read( + buf: &mut BufReader, + ) -> Result, String> { + Err("ServerboundStatusRequestPacket::read not implemented".to_string()) + } } -- cgit v1.2.3