{"text":…} 这串原文,而不是报错。 中文服普遍还在 1.20.1 / 1.21.1,抄新版写法会直接翻车。四行文本 + 颜色代码,生成放置告示牌的指令。
免费在线
正在加载工具…
{
front_text: {
messages: ['{"text":"第一行"}', '{"text":""}', '{"text":""}', '{"text":""}'],
color: "black", // 整面文字颜色
has_glowing_text: 0b // 是否发光
},
back_text: { messages: [...] },
is_waxed: 0b
}{"text":…} 这串原文,而不是报错。 中文服普遍还在 1.20.1 / 1.21.1,抄新版写法会直接翻车。# 1.20 – 1.21.4
give @s oak_sign[block_entity_data={id:"minecraft:sign",front_text:{messages:['{"text":"商店","color":"gold","bold":true}','{"text":"点击交易"}','{"text":""}','{"text":""}']}}] 1
# 1.21.5 及以后
give @s oak_sign[block_entity_data={id:"minecraft:sign",front_text:{messages:[{text:"商店",color:"gold",bold:true},{text:"点击交易"},{text:""},{text:""}]}}] 1
# 直接在世界里放一块写好字的牌(1.20 – 1.21.4)
setblock ~ ~ ~ oak_sign{front_text:{messages:['{"text":"传送点"}','{"text":""}','{"text":""}','{"text":""}']}}color), 游戏内无法给单个字上色。要做逐字彩色,只能靠指令写文本组件。§ 不会被解析成颜色码 —— 那是聊天与配置文件的机制。彩色告示牌一律要靠指令生成。clickEvent 在告示牌上有效,常用来做「点一下传送」的路牌。 注意 run_command 仍受玩家权限限制。不是固定字数,而是按像素宽度算:每行约 90 像素。英文字母平均 6 像素,一行大概 15 个字符;中文汉字每个约 10 像素,一行只能写 9 到 10 个汉字。超出的部分在游戏里直接不显示,所以写中文告示牌时要主动断行。
1.20 以后告示牌变成双面:手持任意物品对着背面右键就能进入编辑,或者用染料/发光墨囊单独给某一面上色。用指令时对应 back_text 这个复合标签,结构和 front_text 一样,包含 messages(4 行)、color 和 has_glowing_text 三个字段。
颜色用染料对着告示牌右键,16 种染料对应 16 种字色;发光用发光墨囊右键,对应 NBT 里的 has_glowing_text:1b,发光后夜里也能看清并带描边。想让同一行里不同的字不同颜色,只能用指令写文本组件,游戏内手动编辑做不到。