aboutsummaryrefslogtreecommitdiff
path: root/minecraft-protocol/src/packets/status
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2021-12-11 15:17:42 -0600
committermat <github@matdoes.dev>2021-12-11 15:17:42 -0600
commitba911a8a207eb47df7a055410570767b2e33c2ae (patch)
tree4a53d384f08b7272ba287bdb326f3d7fcb09f289 /minecraft-protocol/src/packets/status
parent6026c74430f311c9217b77e7ac07d183efde5bce (diff)
downloadazalea-drasl-ba911a8a207eb47df7a055410570767b2e33c2ae.tar.xz
correct minecraft-chat :tada:
Diffstat (limited to 'minecraft-protocol/src/packets/status')
-rw-r--r--minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs45
1 files changed, 21 insertions, 24 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 20db9fe1..0868a062 100644
--- a/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs
+++ b/minecraft-protocol/src/packets/status/clientbound_status_response_packet.rs
@@ -1,5 +1,6 @@
use async_trait::async_trait;
use minecraft_chat::component::Component;
+use serde::{Deserialize, Deserializer};
use serde_json::Value;
use tokio::io::BufReader;
@@ -8,29 +9,29 @@ use crate::{
packets::{Packet, PacketTrait},
};
-#[derive(Clone, Debug)]
-struct Version {
- name: String,
- protocol: u32,
+#[derive(Clone, Debug, Deserialize)]
+pub struct Version {
+ pub name: String,
+ pub protocol: u32,
}
-#[derive(Clone, Debug)]
-struct SamplePlayer {
- id: String,
- name: String,
+#[derive(Clone, Debug, Deserialize)]
+pub struct SamplePlayer {
+ pub id: String,
+ pub name: String,
}
-#[derive(Clone, Debug)]
-struct Players {
- max: u32,
- online: u32,
- sample: Vec<SamplePlayer>,
+#[derive(Clone, Debug, Deserialize)]
+pub struct Players {
+ pub max: u32,
+ pub online: u32,
+ pub sample: Vec<SamplePlayer>,
}
-#[derive(Clone, Debug)]
+#[derive(Clone, Debug, Deserialize)]
pub struct ClientboundStatusResponsePacket {
- // version: Version,
- description: Component,
+ pub version: Version,
+ pub description: Component,
}
#[async_trait]
@@ -47,13 +48,9 @@ impl PacketTrait for ClientboundStatusResponsePacket {
let status_string = mc_buf::read_utf(buf).await?;
let status_json: Value =
serde_json::from_str(status_string.as_str()).expect("Server status isn't valid JSON");
- let description_string: &Value = status_json.get("description").unwrap();
-
- // this.status = GsonHelper.fromJson(GSON, friendlyByteBuf.readUtf(32767), ServerStatus.class);
- Ok(ClientboundStatusResponsePacket {
- // version: status_json.get("version"),
- description: Component::new(description_string)?,
- }
- .get())
+
+ Ok(ClientboundStatusResponsePacket::deserialize(status_json)
+ .map_err(|e| e.to_string())?
+ .get())
}
}