使用“告示牌”并配合命令方块或插件,通过编辑文本行、颜色代码和JSON文本组件来实现,最直接的方法是在告示牌上点击右键逐行输入,再用染料给文字染色。
公告栏基础指令与权限设置
在生存或创造模式下,告示牌是搭建公告栏的主体,放置告示牌后,点击任意一面即可进入编辑界面,默认支持四行文本输入,若想实现点击公告栏就弹出详细说明的效果,需要借助命令方块或者服务器插件。
告示牌的放置与编辑权限
- 手持告示牌右键方块即可放置,之后再次右键可修改内容。
- 原版游戏中,告示牌编辑权限默认只给放置者本人,若服务器使用Paper或Spigot核心,可通过
/setblock命令放置带有固定内容的告示牌,绕过个人编辑限制。 - 使用
/data命令可以修改告示牌的front_text和back_text标签,操作路径为:/data get block查看JSON数据,再用/data merge block写入新文本。
命令方块驱动公告栏刷新
命令方块是制作公告栏动态内容的核心工具,先输入/give @p command_block获取,摆放时让其朝向告示牌方向,用红石信号激活后可执行以下指令:
/tellraw @p ["",{"text":"服务器公告:每周五晚上8点全员活动","color":"gold"}]
执行后玩家聊天栏会显示公告,但告示牌本身不会改变,若想让告示牌文本实时更新,使用/setblock替换告示牌方块并携带Text1到Text4的NBT数据:
/setblock ~ ~1 ~ minecraft:oak_wall_sign{front_text:{messages:['{"text":"欢迎来到生存服"}','{"text":"QQ群:12345"}','{"text":"禁止作弊"}','{"text":"遵守规矩哦"}']}}
这里每个messages元素对应一行,注意用单引号包裹JSON格式,内部双引号不能少。
公告栏文字样式与配色方案
默认白色文字容易看不清,调整颜色和样式能让公告栏更醒目,原版告示牌编辑界面中没有直接选色按钮,必须通过命令或数据包实现。
颜色代码与格式代码对照表
在文本前加上符号可以改变颜色,具体对照如下:
§0黑色,§1深蓝色,§2深绿色,§3深青色§4深红色,§5紫色,§6金色,§7灰色§8深灰色,§9蓝色,§a绿色,§b青色§c红色,§d粉色,§e黄色,§f白色- 格式代码:
§l加粗,§o斜体,§n下划线,§m删除线,§k随机闪烁
在命令方式写入告示牌时,颜色代码需要放在JSON文本的color字段中,
/setblock ~ ~1 ~ minecraft:oak_wall_sign{front_text:{messages:['{"text":"活动公告","color":"red","bold":true}','{"text":"周六下午2点","color":"yellow"}','{"text":"地点:主城广场","color":"green"}']}}
使用数据包自定义告示牌样式
若嫌命令太长,可以创建数据包替换告示牌默认显示逻辑,在数据包中定义函数文件,用execute if block检测玩家点击告示牌时的坐标,配合data modify临时改变文本,这是相对进阶的玩法,适合服务器管理员日常维护。
多行文本与特殊字符转义
告示牌一行只能显示18个字符,中文字符宽度不一,实际能放下的汉字数约为8到12个,想写完整句子,需要拆分成多行,或者利用JSON文本的extra数组实现跨行续写。
换行与缩进处理技巧
- 在命令行输入时,直接使用
n不会在告示牌上换行,告示牌本身每行独立,不存在转义换行符。 - 若想在某行内留出空白,可以输入空格或使用
{"text":" ","extra":[]}配合空格字符。 - 特殊符号如引号、反斜杠在JSON中必须转义,例如
{"text":"他说:"欢迎""},否则命令报错。 - 实际测试中,中文标点如逗号、句号占一个字符宽度,英文标点占半个,排版时可适当使用空格对齐。
颜色在JSON中的通用写法
无论/setblock还是/data命令,统一使用以下结构:
{"text":"具体内容","color":"red","bold":true,"italic":false,"underlined":false}
color字段支持颜色名称,如red、yellow,也支持十六进制颜色码,例如color:"#FF5555",但十六进制颜色码仅在1.16及以上版本有效,如果服务器版本低于1.16,只能使用原版16色名称。
动态公告栏与自动化更新方案
手动更新公告栏太麻烦,多数服务器会接入插件或脚本实现定时刷新,这里介绍两种常见方案,也是很多群组服在用的公告栏内容调法。
使用DeluxeMenus或BossAnnouncer插件管理公告栏
- DeluxeMenus:在
menus.yml中配置菜单项,使用material: OAK_SIGN作为告示牌图标,点击后执行tellraw或broadcast命令。 - BossAnnouncer:适合在玩家头顶显示滚动公告,但它不修改告示牌方块,只是做一个视觉上的公告栏效果,如果你想真正的告示牌内容变化,需要用
SignEdit插件。
SignEdit能直接修改已放置告示牌的内容,管理员手持告示牌右键选择行,输入文字和颜色,插件命令路径为/signedit setColor并配合数字选择颜色,许多国内服务器用的就是SignEdit,因为它免去了敲命令的麻烦。
基于命令方块的定时刷新机制
利用命令方块搭一个循环脉冲:
- 放置一个命令方块,设为循环模式,红石延迟设为10秒。
- 指令区域写入上述
/setblock命令,每次执行都会强制覆盖告示牌内容。 - 旁边放一个红石时钟电路,或用
/tick rate调整脉冲间隔。
这样,服务器公告栏就能每隔一段时间自动切换内容,比如每天中午12点更新“今日维护安排”,下午6点更新“晚上活动组队信息”,具体操作路径是:先建一个计分板记录时间,在命令方块中通过
execute if score判断时间段,再执行setblock写入对应文本。
行业共识认为,动态公告比静态公告更能吸引玩家注意力,因为玩家路过时看到内容变化,会下意识停留几秒,据多数开服者的反馈,用插件付费定制公告栏样式是当前比较省事的方式,第三方插件如PlaceholderAPI也支持在告示牌中显示在线人数、玩家名等占位符。
版本差异对公告栏内容的影响
- 20版本及以后,告示牌支持双面文本,背面默认可编辑,同时增加了蜡封功能,用蜜脾可以锁定告示牌防止被修改。
- 16至1.19版本中,JSON文本格式和颜色代码与旧版兼容,但十六进制颜色不可用。
- 如果你的服务器是Java版,还可以使用
§x加六个十六进制数字来表示自定义颜色,写法如§x§F§F§5§5§5§5,这种用法在16版本有效。
Q&A:我的世界服务器公告栏内容怎么调
问:告示牌上输入的中文文字变成了乱码,怎么解决?
主要是编码问题,服务器控制台或客户端必须使用UTF-8编码,打开server.properties检查server-ip等配置,再把setblock命令中的中文用ChatComponent序列化一次,如果还乱码,建议换成插件写入文本,插件内部会统一编码。
问:公告栏第一行文字能不能加粗并设置成金色?
可以,使用命令时把该行JSON写成{"text":"欢迎光临","color":"gold","bold":true}即可,注意bold字段是布尔值,不能写true以外的字符串。
问:想让公告栏文字根据在线人数自动变化,需要怎么做?
使用PlaceholderAPI插件配合SignEdit或MiniMessage格式,在告示牌文本中放置%online%占位符,插件会自动替换为数字,具体操作路径为:安装PlaceholderAPI,在告示牌插件中开启占位符解析开关,再把文本写成在线人数:%online%。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/761376.html


![[Minecraft]服务器公告栏!你不会还不会吧?超级详细的指令教程!CusStudio](https://i2.hdslb.com/bfs/archive/6ce690444b351d37de61aad30b7012c0edbf59c2.jpg)


