NitWikit/docs-java/advance/MiniMessage.md

81 lines
3.2 KiB
Markdown
Raw Normal View History

2024-05-25 02:19:35 +08:00
---
sidebar_position: 9
---
# MiniMessage
MiniMessage 旨在用简单字符串表示聊天组件,便于用户学习和开发人员扩展。
2024-05-25 02:19:35 +08:00
MiniMessage 的实质是一个叫 Adventure 的库,这是它的 [文档](https://docs.advntr.dev/getting-started.html)。
2024-06-08 17:26:31 +08:00
## 支持列表
目前,一些平台已经支持原生使用 Adventure 来扩展字符串,以下是内置此库的列表:
2024-06-08 17:26:31 +08:00
2024-07-01 17:19:42 +08:00
| 支持平台 | 支持版本 | 备注 |
|----------|------------------------------------|----------------------------------------------------------------------|
| Sponge | Sponge 8 (1.16.5) | / |
| Velocity | 1.1.0 build 158 | 仅支持消息、操作栏标题、boss栏和标题 |
| Paper | 1.16.5 build 473 | / |
| Minestom | Build 7494725 | 内容有点杂,详见[minestom wiki](https://wiki.minestom.net/feature/adventure) |
| Fabric | `adventure-platform-fabric` 5.3.0* | 虽然不是一个东西(?),但是体验是一样的 |
2024-06-08 17:26:31 +08:00
2024-06-23 21:59:20 +08:00
*详情可以参阅 [Adventure 本机支持](https://docs.advntr.dev/platform/native.html)*
2024-06-08 17:26:31 +08:00
:::note
2024-06-23 21:59:20 +08:00
平台原生支持 ≠ 使用此平台开发的模组/插件支持!!!
2024-06-08 17:26:31 +08:00
举个例子仔细观察上述列表你会发现bukkit并没有支持 MiniMessage ,所以你会发现大部分基于 Bukkit 开发的插件没有 MiniMessage 这一功能(如 EssentialsX)
*除非他们自身引入了 Adventure 库(如PlaceholderAPI)。*
2024-06-08 17:26:31 +08:00
而基于 Paper 开发的大部分插件都引入了这一功能,所以不要发现一个新奇玩意就到处瞎套。
2024-06-08 17:26:31 +08:00
:::
## 如何使用
2024-06-23 21:59:20 +08:00
:::warning
2024-06-08 17:26:31 +08:00
2024-06-23 21:59:20 +08:00
本篇不讲述诸如 TAB 等插件或模组自行实现的类似 MiniMessage 效果的使用。
2024-06-08 17:26:31 +08:00
2024-06-23 21:59:20 +08:00
:::
2024-09-16 21:26:41 +08:00
[在线编辑](https://mcg.tuanzi.ink)
和 [格式化代码](format-code.md) 篇一样,用一个 TrMenu 菜单配置展示下:
2024-05-25 02:19:35 +08:00
```yaml
2024-05-25 02:19:35 +08:00
Icons:
test:
display:
material: stone
lore:
- '<rainbow>Hello world'
```
![](_images/MiniMessage/展示.png)
记住 MiniMessage 语言使用标签,也就是说你所做的一切都将使用标签进行定义。
2024-06-08 17:26:31 +08:00
对于 MiniMessage ,你必须要有一个开始标签 `<yellow>`,在非严格模式下,你可以省略结束标签 `</yellow>` ,如下:
2024-06-08 17:26:31 +08:00
```xml
2024-06-08 17:26:31 +08:00
<yellow>Hello <blue>World</blue>!
```
在非严格模式下,所有标记名称**都不区分大小写**,以减少冲突的可能性(懒癌晚期患者狂喜),但美观和符合规定起见,请使用小写字母编写以便减少被他人嘲讽的几率:
2024-06-08 17:26:31 +08:00
```xml
2024-06-08 17:26:31 +08:00
<YelLOw>Hello World!
```
此外,这里有一个[测试网站](https://webui.advntr.dev/),他可以使得你无需启动 Minecraft 便可以预览实际效果。
2024-06-08 17:26:31 +08:00
2024-06-23 21:59:20 +08:00
关于实际使用格式详见 [标准标签](https://docs.advntr.dev/minimessage/format.html#standard-tags)。
2024-05-25 02:19:35 +08:00
2024-06-08 17:26:31 +08:00
### 参考
2024-06-08 17:26:31 +08:00
- https://docs.advntr.dev/minimessage/format.html
- https://docs.advntr.dev/platform/native.html