diff options
author | Joey Sacchini <joey@sacchini.net> | 2021-01-04 21:20:30 -0500 |
---|---|---|
committer | Joey Sacchini <joey@sacchini.net> | 2021-01-04 21:20:30 -0500 |
commit | 9d36f9a8b5810fc39e096155b61c031093bfb713 (patch) | |
tree | 1dfb6b9eba95e2281cc4a7c1a4414c5be830ca55 | |
parent | b31b2d344e244baa735b7a144b7f71c056712438 (diff) | |
download | mcproto-rs-9d36f9a8b5810fc39e096155b61c031093bfb713.tar.gz mcproto-rs-9d36f9a8b5810fc39e096155b61c031093bfb713.tar.bz2 mcproto-rs-9d36f9a8b5810fc39e096155b61c031093bfb713.zip |
fix status parsing
-rw-r--r-- | src/chat.rs | 2 | ||||
-rw-r--r-- | src/status.rs | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/chat.rs b/src/chat.rs index 550c9ce..59b9097 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -973,7 +973,7 @@ impl super::Deserialize for Chat { String::mc_deserialize(data)?.try_map(move |raw| { serde_json::from_str(raw.as_str()).map_err(move |err| super::DeserializeErr::FailedJsonDeserialize(format!( - "failed to serialize chat as JSON :: {:?}", err + "failed to deserialize chat from JSON '{}' :: {:?}", raw, err ))) }) } diff --git a/src/status.rs b/src/status.rs index 274fcbe..74538ad 100644 --- a/src/status.rs +++ b/src/status.rs @@ -13,7 +13,7 @@ use crate::protocol::TestRandom; #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct StatusSpec { - pub version: StatusVersionSpec, + pub version: Option<StatusVersionSpec>, pub players: StatusPlayersSpec, pub description: Chat, #[serde(skip_serializing_if = "Option::is_none")] @@ -47,10 +47,10 @@ impl McDeserialize for StatusSpec { impl TestRandom for StatusSpec { fn test_gen_random() -> Self { Self { - version: StatusVersionSpec { + version: Some(StatusVersionSpec { protocol: rand::random(), name: String::test_gen_random(), - }, + }), players: StatusPlayersSpec { sample: Vec::default(), max: rand::random(), @@ -118,7 +118,7 @@ impl<'de> Deserialize<'de> for StatusFaviconSpec { let v = str_tag(v, "data:", &self)?; let (content_type, v) = str_until_pat(v, ";", &self)?; let rest = str_tag(v, "base64,", &self)?; - match base64::decode(rest) { + match base64::decode(rest.replace('\n', "")) { Ok(data) => { Ok(StatusFaviconSpec{ data, |