#chat #minecraft #color #payload #text #bold #message

minecraft-chat

用于 Minecraft 聊天信息的微型库

1 个不稳定版本

0.1.0 2019 年 12 月 22 日

#449 in 游戏

每月 35 次下载

MIT 许可证

21KB
496

minecraft-chat

crates.io Build Status codecov

Minecraft 聊天以 json 对象表示。它用于不同的数据包。关于格式的信息可以在 https://wiki.vg/Chat 找到。

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
minecraft-chat = "0.1"

示例

序列化

use minecraft_chat::{MessageBuilder, Payload, Color};

let message = MessageBuilder::builder(Payload::text("Hello"))
   .color(Color::Yellow)
   .bold(true)
   .then(Payload::text("world"))
   .color(Color::Green)
   .bold(true)
   .italic(true)
   .then(Payload::text("!"))
   .color(Color::Blue)
   .build();

println!("{}", message.to_json().unwrap());

反序列化

use minecraft_chat::{MessageBuilder, Color, Payload, Message};

let json = r#"
{
  "bold":true,
  "color":"yellow",
  "text":"Hello",
  "extra":[
     {
        "bold":true,
        "italic":true,
        "color":"green",
        "text":"world"
     },
     {
        "color":"blue",
        "text":"!"
     }
  ]
}
"#;

let expected_message = MessageBuilder::builder(Payload::text("Hello"))
   .color(Color::Yellow)
   .bold(true)
   .then(Payload::text("world"))
   .color(Color::Green)
   .bold(true)
   .italic(true)
   .then(Payload::text("!"))
   .color(Color::Blue)
   .build();

assert_eq!(expected_message, Message::from_json(json).unwrap());

依赖项

~0.6–1.3MB
~31K SLoC