#component #adventure #minecraft #chat #color #click #mini-message

lobsterchat

Minecraft 聊天组件和 Adventure MiniMessage 在 Rust 中的实现

3 个版本

0.4.2 2022年10月9日
0.4.1 2022年10月8日
0.4.0 2022年10月8日

335游戏

MIT 许可证

35KB
708

LobsterChat

LobsterChat 是 Minecraft 聊天组件和 Adventure MiniMessage 在 Rust 中的实现。

示例

不使用 minimessage

use lobsterchat::component::*;

let text_component: Component = Component::text("Hello, World! ")
                    .color(0xFFAAFF)
                    .click_event(ClickEvent::open_url("https://github.com/Maxuss/lobster"))
                    .append(
                        Component::translatable("my.translation.key")
                        .color(NamedColor::Gold)
                        .hover_event(HoverEvent::ShowText(Component::text("Click for surprise!")))
                        .insert_text("I love lobsterchat!")
                    )
                    .append(
                        Component::keybind("key.sprint")
                        .bold(true)
                        .italic(false)
                    );

println!("{}", text_component.to_string());

使用 minimessage

use lobsterchat::message::*;
use lobsterchat::component::{Component, Colored, NamedColor};

let component: Component = lobster("<gold><bold>This is some message!</bold> <blue>Some blue text <#AAFFAA>Some hex text!");
let placeholdered: Component = placeholder_lobster(
    "Some normal text. <first> And then <gold><second>.",
    [
        (
            "first",
            Component::text("Some replacement.").color(NamedColor::Gold)
        ),
        (
            "second",
            Component::translatable("translated.text.key")
        )
    ])

通过 minimessage 链接特性启用 minimessage

速度

running 1 test
test tests::benchmark_lobster ... bench:       6,335 ns/iter (+/- 147)

大约需要 6mcs 将消息转换为组件。

功能

  • 组件

  • 组件类型(文字、可翻译等)

  • 格式化和颜色

  • 组件中的点击/悬停事件

  • MiniMessage

  • 命名颜色标签(例如 <red>, <blue>

  • 十六进制颜色标签(例如 <#AAFFAA>

  • 格式化标签(例如 <bold>, <reset>

  • 占位符标签

  • 悬停/点击事件

  • 高级格式化标签(例如 <rainbow>, <gradient>

依赖

~3.5MB
~50K SLoC