aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Sacchini <joey@sacchini.net>2021-01-04 21:20:30 -0500
committerJoey Sacchini <joey@sacchini.net>2021-01-04 21:20:30 -0500
commit9d36f9a8b5810fc39e096155b61c031093bfb713 (patch)
tree1dfb6b9eba95e2281cc4a7c1a4414c5be830ca55
parentb31b2d344e244baa735b7a144b7f71c056712438 (diff)
downloadmcproto-rs-9d36f9a8b5810fc39e096155b61c031093bfb713.tar.gz
mcproto-rs-9d36f9a8b5810fc39e096155b61c031093bfb713.tar.bz2
mcproto-rs-9d36f9a8b5810fc39e096155b61c031093bfb713.zip
fix status parsing
-rw-r--r--src/chat.rs2
-rw-r--r--src/status.rs8
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,