aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-01-14 03:18:38 +0000
committermat <git@matdoes.dev>2025-01-14 03:18:38 +0000
commit2dcfbe96c3024f9e1d32473d58130efa518c91cf (patch)
treefb3eba8d165d80ab47dc83b41adab124e32dad8a
parenta86d011d4ae869128dd404535f8d377c3a5e4c18 (diff)
downloadazalea-drasl-2dcfbe96c3024f9e1d32473d58130efa518c91cf.tar.xz
fix wrong ServerLinkKind and serialize hex colors correctly in nbt
-rwxr-xr-xazalea-chat/src/style.rs28
-rw-r--r--azalea-client/src/packet_handling/configuration.rs4
-rw-r--r--azalea-client/src/packet_handling/game.rs4
-rw-r--r--azalea-protocol/src/common/server_links.rs2
-rwxr-xr-xazalea-protocol/src/packets/game/c_container_set_content.rs3
-rw-r--r--azalea-protocol/src/packets/game/c_server_links.rs26
6 files changed, 44 insertions, 23 deletions
diff --git a/azalea-chat/src/style.rs b/azalea-chat/src/style.rs
index fd2a58dd..57fe76a0 100755
--- a/azalea-chat/src/style.rs
+++ b/azalea-chat/src/style.rs
@@ -18,22 +18,14 @@ impl Serialize for TextColor {
where
S: Serializer,
{
- serializer.serialize_str(
- &self
- .name
- .as_ref()
- .map(|n| n.to_ascii_lowercase())
- .unwrap_or_else(|| self.format()),
- )
+ serializer.serialize_str(&self.serialize())
}
}
#[cfg(feature = "simdnbt")]
impl simdnbt::ToNbtTag for TextColor {
fn to_nbt_tag(self) -> simdnbt::owned::NbtTag {
- self.name
- .map(|n| NbtTag::String(n.to_ascii_lowercase().into()))
- .unwrap_or_else(|| NbtTag::Int(self.value as i32))
+ NbtTag::String(self.serialize().into())
}
}
@@ -274,18 +266,22 @@ impl TextColor {
Self { value, name }
}
- pub fn format(&self) -> String {
+ fn serialize(&self) -> String {
+ if let Some(name) = &self.name {
+ name.clone()
+ } else {
+ self.format_value()
+ }
+ }
+
+ pub fn format_value(&self) -> String {
format!("#{:06X}", self.value)
}
}
impl fmt::Display for TextColor {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- if let Some(name) = &self.name {
- write!(f, "{}", name.clone())
- } else {
- write!(f, "{}", self.format())
- }
+ write!(f, "{}", self.serialize())
}
}
diff --git a/azalea-client/src/packet_handling/configuration.rs b/azalea-client/src/packet_handling/configuration.rs
index c3eedc8d..8eccebf5 100644
--- a/azalea-client/src/packet_handling/configuration.rs
+++ b/azalea-client/src/packet_handling/configuration.rs
@@ -47,8 +47,8 @@ pub fn send_packet_events(
)) {
Ok(packet) => packet,
Err(err) => {
- error!("failed to read packet: {:?}", err);
- debug!("packet bytes: {:?}", raw_packet);
+ error!("failed to read packet: {err:?}");
+ debug!("packet bytes: {raw_packet:?}");
continue;
}
};
diff --git a/azalea-client/src/packet_handling/game.rs b/azalea-client/src/packet_handling/game.rs
index 4d1d9e10..57e6ce68 100644
--- a/azalea-client/src/packet_handling/game.rs
+++ b/azalea-client/src/packet_handling/game.rs
@@ -165,8 +165,8 @@ pub fn send_packet_events(
{
Ok(packet) => packet,
Err(err) => {
- error!("failed to read packet: {:?}", err);
- debug!("packet bytes: {:?}", raw_packet);
+ error!("failed to read packet: {err:?}");
+ debug!("packet bytes: {raw_packet:?}");
continue;
}
};
diff --git a/azalea-protocol/src/common/server_links.rs b/azalea-protocol/src/common/server_links.rs
index 4aed98f3..7c6bbec4 100644
--- a/azalea-protocol/src/common/server_links.rs
+++ b/azalea-protocol/src/common/server_links.rs
@@ -9,8 +9,8 @@ pub struct ServerLinkEntry {
#[derive(Clone, Debug, AzBuf)]
pub enum ServerLinkKind {
- Known(KnownLinkKind),
Component(FormattedText),
+ Known(KnownLinkKind),
}
#[derive(Clone, Copy, Debug, AzBuf)]
diff --git a/azalea-protocol/src/packets/game/c_container_set_content.rs b/azalea-protocol/src/packets/game/c_container_set_content.rs
index 33fbf77b..2b315a5a 100755
--- a/azalea-protocol/src/packets/game/c_container_set_content.rs
+++ b/azalea-protocol/src/packets/game/c_container_set_content.rs
@@ -19,7 +19,6 @@ mod tests {
use azalea_buf::AzaleaRead;
use super::ClientboundContainerSetContent;
- use crate::packets::ProtocolPacket;
#[test]
fn test_read_write_container_set_content() {
@@ -29,7 +28,7 @@ mod tests {
0, 0, 0, 0, 0, 0, 0, 1, 196, 6, 0, 0, 0,
];
let mut buf = Cursor::new(contents.as_slice());
- let packet = ClientboundContainerSetContent::read(&mut buf).unwrap();
+ let packet = ClientboundContainerSetContent::azalea_read(&mut buf).unwrap();
println!("{:?}", packet);
assert_eq!(buf.position(), contents.len() as u64);
diff --git a/azalea-protocol/src/packets/game/c_server_links.rs b/azalea-protocol/src/packets/game/c_server_links.rs
index 80c444f0..ac08ec27 100644
--- a/azalea-protocol/src/packets/game/c_server_links.rs
+++ b/azalea-protocol/src/packets/game/c_server_links.rs
@@ -7,3 +7,29 @@ use crate::common::server_links::ServerLinkEntry;
pub struct ClientboundServerLinks {
pub links: Vec<ServerLinkEntry>,
}
+
+#[cfg(test)]
+mod tests {
+ use std::io::Cursor;
+
+ use azalea_buf::AzaleaRead;
+
+ use super::*;
+
+ #[test]
+ fn test_read_server_links() {
+ tracing_subscriber::fmt::try_init().ok();
+ let contents = [
+ 1, 0, 10, 8, 0, 5, 99, 111, 108, 111, 114, 0, 7, 35, 48, 48, 70, 66, 57, 65, 8, 0, 4,
+ 116, 101, 120, 116, 0, 15, 65, 98, 111, 117, 116, 32, 86, 101, 108, 111, 99, 105, 116,
+ 97, 98, 0, 40, 104, 116, 116, 112, 115, 58, 47, 47, 119, 105, 108, 108, 105, 97, 109,
+ 50, 55, 56, 46, 110, 101, 116, 47, 112, 114, 111, 106, 101, 99, 116, 47, 118, 101, 108,
+ 111, 99, 105, 116, 97, 98,
+ ];
+ let mut buf = Cursor::new(contents.as_slice());
+ let packet = ClientboundServerLinks::azalea_read(&mut buf).unwrap();
+ println!("{:?}", packet);
+
+ assert_eq!(buf.position(), contents.len() as u64);
+ }
+}