azalea_protocol/packets/game/
clientbound_disguised_chat_packet.rsuse azalea_buf::McBuf;
use azalea_chat::{
translatable_component::{StringOrComponent, TranslatableComponent},
FormattedText,
};
use azalea_protocol_macros::ClientboundGamePacket;
use super::clientbound_player_chat_packet::ChatTypeBound;
#[derive(Clone, Debug, McBuf, ClientboundGamePacket, PartialEq)]
pub struct ClientboundDisguisedChatPacket {
pub message: FormattedText,
pub chat_type: ChatTypeBound,
}
impl ClientboundDisguisedChatPacket {
#[must_use]
pub fn message(&self) -> FormattedText {
let sender = self.chat_type.name.clone();
let content = self.message.clone();
let target = self.chat_type.target_name.clone();
let translation_key = self.chat_type.chat_type.chat_translation_key();
let mut args = vec![
StringOrComponent::FormattedText(sender),
StringOrComponent::FormattedText(content),
];
if let Some(target) = target {
args.push(StringOrComponent::FormattedText(target));
}
let component = TranslatableComponent::new(translation_key.to_string(), args);
FormattedText::Translatable(component)
}
}