aboutsummaryrefslogtreecommitdiff
path: root/minecraft-protocol/src/packets/status
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2021-12-10 00:54:58 -0600
committermat <github@matdoes.dev>2021-12-10 00:54:58 -0600
commitbe762fc5d37ba48386996afb4c5ba0c94aaf5883 (patch)
treea7c96227c51e291e4e59eab7a66c6bc223973e06 /minecraft-protocol/src/packets/status
parentf64750afdd9b18379f706df66c32806b6d21bbe8 (diff)
downloadazalea-drasl-be762fc5d37ba48386996afb4c5ba0c94aaf5883.tar.xz
rust is driving me insane
Diffstat (limited to 'minecraft-protocol/src/packets/status')
-rw-r--r--minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs19
-rw-r--r--minecraft-protocol/src/packets/status/serverbound_status_request_packet.rs13
2 files changed, 21 insertions, 11 deletions
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<u8>) {}
- fn parse<T: tokio::io::AsyncRead + std::marker::Unpin>(
- buf: &mut T,
+ async fn read<T: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send>(
+ buf: &mut BufReader<T>,
) -> Result<Packet<'_>, 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<u8>) {}
- fn parse<T: tokio::io::AsyncRead + std::marker::Unpin>(&self, buf: T) -> () {}
+
+ async fn read<T: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send>(
+ buf: &mut BufReader<T>,
+ ) -> Result<Packet<'_>, String> {
+ Err("ServerboundStatusRequestPacket::read not implemented".to_string())
+ }
}