minecraft-chat

Crates.iominecraft-chat
lib.rsminecraft-chat
version0.1.0
sourcesrc
created_at2019-12-22 15:28:49.952281
updated_at2019-12-22 15:28:49.952281
descriptionTiny library for minecraft chat messages.
homepagehttps://github.com/eihwaz/minecraft-chat
repositoryhttps://github.com/eihwaz/minecraft-chat
max_upload_size
id191487
size23,367
(vagola)

documentation

README

minecraft-chat

crates.io Build Status codecov

Minecraft chat are represented as json object. It's used in different packets. Information about format can be found at https://wiki.vg/Chat.

Usage

Add this to your Cargo.toml:

[dependencies]
minecraft-chat = "0.1"

Example

Serialize

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());

Deserialize

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());
Commit count: 0

cargo fmt