跳到主要内容

✏️ 文本格式

MiniMessage

在配置插件中的物品名称、提示框中所显示的描述信息、GUI 等内容时,请使用 MiniMessage 格式。https://docs.papermc.io/adventure/minimessage/format/

任何有意义的标签都可以在其生效的位置被转义。在纯文本中,标签起始字符(<)可以通过前置反斜杠(\)进行转义。在带引号的字符串中,起始引号字符('")也可以被转义。在这两种情况下,转义符本身也可以被转义以输出字面上的反斜杠。为简单起见,未加引号的标签参数不能使用转义字符。在不支持转义的上下文中,转义字符会作为普通字符原样输出。在支持转义的上下文中,如需输出反斜杠,应通过双反斜杠(\\)来实现。

注意事项

危险

译者注:不要把 <>[] 以及 _ 写进去了请整个替换

例如: %image_mm_<命名空间>:<路径>% 如果你的图片在配置文件中定义的是 default:icons 那么只需要写 %image_mm_default:icons% 即可

以下是几个例子:

  • %image_mm_<default>:<icons>% ❌️(应该去掉 <>
  • %image_mm_default:icons% ✔️
  • %image_mm_default:icons:[行]:[列]% ❌️(如果你不需要行和列,请删除这两个参数)
  • %image_mm_default:icons:[0]:[1]% ❌️(应该去掉 []
  • %imagemmdefault:icons:1:0% ❌️ (不能去掉必要的 _
  • %image_mm_default:icons:1:0% ✔️
  • id: <test_namespace>:<test/my_path> ❌️(应该去掉 <>
  • id: test_namespace:test/my_path ✔️
  • <shift:_666_> ❌️(应该去掉 _
  • shift:666 ❌️(不是哥们你怎么连最外面的也去掉了)
  • <viewerarg:player.name> ❌️(不能去掉必要的 _
  • <shift:666> ✔️

附加标签

以下是插件提供的其他可用标签。

提示

[_参数_] 表示该参数是可选的。

信息

你可以用 '" 将参数包裹起来,例如 <papi:'exp_multiplier':'1'>

你也可以使用嵌套标签,例如 <expr:'0.##':'<papi:exp_multiplier:1> * 10'>

信息

你可能会注意到,一些标签以 "viewer_" 开头。这是因为在某些场景下,一段文本可能由多个上下文实体共同构建。例如以下示例配置:

message: -|
嗨,<viewer_arg:player.name>。
你有没有注意到 <arg:player.name> 与一个自定义方块进行了交互?

玩家A与自定义方块交互并触发消息广播时,玩家B接收到的消息将显示为:
"嗨,B。你有没有注意到 A 与一个自定义方块进行了交互?"

<shift:_像素值_>

shift 允许你直接使用插件的偏移字符。

item_name: "<!i><shift:-100><#FF8C00>黄玉钓竿"

<papi:_占位符_:[_默认值_]>

<viewer_papi:_占位符_:[_默认值_]>

<rel_papi:_占位符_:[_默认值_]>

papi 允许你使用由 PlaceholderAPI 提供的占位符。

提示

rel_papi 指的是关系型占位符。

item_name: "<!i><#FF8C00><papi:player_name>的黄玉钓竿"

你还可以通过指定默认值,让这些标签在更多场景下安全使用而不会报错,例如:

functions:
- type: drop_exp
count:
type: uniform
min: "<papi:exp_multiplier:1> * 3"
max: "<papi:exp_multiplier:1> * 5"

<image:_命名空间_:_路径_:[_行_]:[_列_]:[_格式_]>

<image:_命名空间_:_路径_:[_格式_]>

image 允许你使用插件中已注册的图片。

item_name: "<!i><white><image:default:icons><#FF8C00>黄玉钓竿"

item_name: "<!i><white><image:default:icons:0:1><#FF8C00>黄玉钓竿"

item_name: "<!i><red><image:default:icons:'<!shadow><white>'> 黄玉钓竿"
item_name: "<!i><red><image:default:icons:0:1:'<!shadow><white>'> 黄玉钓竿"

<i18n:_标识符_>

查找适用于当前服务端语言的翻译。

items:
custom:chinese_lantern:
material: paper
data:
item_name: "<i18n:item.chinese_lantern>"

<l10n:_标识符_>

查找适用于当前客户端语言的翻译。

items:
custom:chinese_lantern:
material: paper
data:
item_name: "<l10n:item.chinese_lantern>"

<expr:_格式_:_表达式_>

进行一些数学运算

item_name: "<!i><#FF8C00><expr:0.##:'70 / 8'>"
item_name: "<!i><#FF8C00><expr:0.##:'<papi:player_x> / 8'>"

将格式写为 bool 可把结果输出为 true / false(非零即为 true):

- "<expr:bool:'<papi:farming_level> >= 10'>"

<random:_标识符_>

<random:_标识符_:_类型_:[参数..._]>

生成一个随机数。同一上下文内,相同 id 始终返回第一次 roll 出的值;不同 id 各自独立 roll。

lore:
- "<!i>攻击力: <random:atk:5~10>"
- "<!i>暴击率: <random:crit:triangle:0:100:80>%"

支持的分布类型(参数为位置参数,[...] 可省略):

类型参数
uniformmin, max
trianglemin, max, [mode](默认为中点)
normal / gaussianmin, max, [mean], [std_dev], [max_attempts]
log_normalmin, max, [location], [scale], [max_attempts]
skew_normalmin, max, skewness, [mean], [std_dev], [max_attempts]
binomialtrials, probability
exponentialmean, [min], [max]
beta[min], [max], [alpha], [beta]
fixed / constantvalue

简写:<random:id:5~10> 等同于 uniform:5:10<random:id:7> 为常量。各分布的详细说明见数字格式

警告

分布在首次 roll 时绑定。同一上下文内如果同一个 id 以不同分布出现,只有第一次生效。

<arg:_索引_>

仅用于 translations 目录下的文件,表示索引参数。

<arg:_标识符_>

<viewer_arg:_标识符_>

这是一个命名参数。其值可以来自两个可能的来源:

  1. 上下文特定的参数 – 这些是在当前上下文中明确传递的参数。
internal.cooking_info.0: "时间:<arg:cooking_time>刻"
internal.cooking_info.1: "经验:<arg:cooking_experience>"
  1. 通用参数

<random:xxx> 标签(或带 idrandom 条件)roll 出的命名随机值,可以在同一上下文内通过链式参数读取:

<arg:random.xxx> # 读取此上下文中已 roll 出的命名随机值
  1. 上下文主体 – 如果上下文主体(例如,一个玩家)提供了参数。查看此页面了解更多:
提示

在某些情况下,多个上下文主体可能同时存在。通过访问不同上下文主体的参数,您可以精确控制函数的范围和行为。

# 在方块的位置生成粒子
- type: particle
x: '<arg:block.x> + 0.5'
y: '<arg:block.y> + 0.5'
z: '<arg:block.z> + 0.5'
...
# 在玩家的位置生成粒子
- type: particle
x: '<arg:player.x>'
y: '<arg:player.y>'
z: '<arg:player.z>'
...
# 广播消息
- type: message
target: 'all'
message:
- "你好,<viewer.arg:player.name>!这条消息来自 <arg:player.name>。"
- "<arg:player.name> 刚刚与 <arg:block.owner> 方块进行了交互!"

<global:_标识符_:[参数...]>

在配置中定义的全局变量。

item_name: "<global:rare_tag> 稀有三叉戟"

<bubble:_id_:_left_:_right_> (需要 CustomNameplates)

创建带有气泡的文字

item_name: "<bubble:chat_1:1:1:'<black><!shadow>What Happened'>"

<nameplate:_id_:_left_:_right_:> (需要 CustomNameplates)

item_name: "<nameplate:xmas:1:1:'ABCDEFG'>"

创建带有铭牌的文字

<background:_id_:_left_:_right_:> (需要 CustomNameplates)

创建带有背景的文字

item_name: "<background:bedrock_1:1:1:'ABCDEFG'>"