跳到主要内容

菜单

云公会有 17 个箱子菜单,外观全部写在 plugins/CloudGuild/menus/ 里。改完执行 /cg admin reload 生效。 想恢复某个文件的默认样子:把它改名或删除,再 /cg admin reload,会重新生成默认文件(文件不存在时,也会直接使用插件内置的版本)。

文件菜单打开方式
main.yml公会主页/cg(有公会时;装了云界面时改用 云界面画面)
browse.yml公会列表/cg list、没有公会时的 /cg、主页的「公会列表」
info.yml公会资讯公会列表或排行里点一个公会
members.yml成员列表/cg members、主页的「成员」
member.yml管理一位成员成员列表里点一位你能管理的成员
applications.yml入会申请/cg applications、成员列表的「入会申请」
invite.yml邀请玩家/cg invite、成员列表的「邀请玩家」
bank.yml公会银行/cg bank、主页的「公会银行」
shop.yml公会商店/cg shop
tasks.yml公会任务/cg tasks
notices.yml公告栏/cg notice
settings.yml公会设定主页的「公会设定」
relations.yml同盟与敌对/cg relations、/cg ally
top.yml公会排行主页的「公会排行」
buffs.yml公会增益/cg buff
homes.yml公会据点/cg homes、主页「回到据点」右键
confirm.yml二次确认退出、解散、踢人、转让、解除同盟、宣战、删除公告 / 据点

除了公会列表、公会资讯、公会排行与二次确认,其他菜单都需要有公会(没有时提示「你還沒有公會」)。

共通的写法​

title: '&8公會銀行 &7· &6{funds}'
rows: 6
content-slots: ['28-34', '37-43']
sounds:
open: BLOCK_ENDER_CHEST_OPEN:0.5:1.4
click: UI_BUTTON_CLICK:0.5:1.2
decorations:
border:
material: GRAY_STAINED_GLASS_PANE
slots: ['0-3', '5-9', 17, 18]
entries:
in:
material: LIME_STAINED_GLASS_PANE
name: '&a{amount} &7· {action}'
empty:
material: PAPER
name: '&7還沒有紀錄'
buttons:
withdraw:
slot: 15
material: HOPPER
name: '&c提領'
键作用
title菜单标题,支持 & 颜色、&#RRGGBB 与 MiniMessage,可用该菜单的变量
rows行数,1 ~ 6
content-slots放「清单」的格位(成员、公会、商品、任务、记录……),可以写数字或范围 '10-16';没写时使用除了最后一行以外的全部格位
items-per-page(选填)每页最多显示几项,默认等于内容格位的数量
empty-slot-index(选填)清单是空的时,entries.empty 放在第几个内容格位(从 0 算),默认 0
soundsopen 打开菜单、click 点击按钮或清单项目
decorations装饰(玻璃板等),可以写好几组,键名随便取,点了没反应
entries清单项目的外观,名称依菜单而定(default、online、locked……);empty = 清单是空的时显示
buttons按钮。键名就是功能(见各菜单的功能键),不认识的键名是只执行 actions 的自定义按钮

格位编号从 0 开始,第一行是 0 ~ 8,第二行 9 ~ 17,依此类推。

音效写法​

写法意思
UI_BUTTON_CLICK原版音效名称,音量与音调都是 1
UI_BUTTON_CLICK:0.6音量 0.6
UI_BUTTON_CLICK:0.6:1.2音量 0.6、音调 1.2
minecraft:block.note_block.pling音效 ID(资源包的自定义音效也可以,例如 myserver:ui.open:0.8:1)
''不播放

写错的音效会被忽略,不会让菜单出错。

按钮、装饰与清单项目的键​

键默认作用
type键名指定功能。键名就是功能键时不用写;想用别的键名、或同一个功能放两个按钮时写 type: bank 这样。写 type: action 表示只执行 actions
slot / slots—格位:slot: 4、slots: [45, 53]、slots: ['0-8', 17](清单项目不用写)
material按钮 STONE / 装饰 BLACK_STAINED_GLASS_PANE材质,写错时变成石头
amount1数量
name空名称,支持颜色与变量
lore无说明,一行一个项目,支持颜色与变量
custom-model-data0自定义模型数据,0 = 不用
item-model空物品模型(1.21.4+),例如 myserver:gui/bank
tooltip-style空提示框样式(1.21.2+)
head空头颅材质(material 要是 PLAYER_HEAD),见下方
glowfalse附魔光效
sound菜单的 click点击这个按钮的音效
permission空没有这个权限节点的玩家看不到这个按钮
enabledtruefalse = 暂时停用这个按钮 / 装饰,不用删掉整段
states—不同状态下的外观,见下方
actions—点击时执行的动作,见下方

按钮物品会隐藏原版的属性、附魔等说明。

用游戏物品当底的项目:公会图示(主页与资讯的 info、设定的 icon、公会列表、排行、外交的清单项目)、玩家头颅(成员、申请、邀请、管理成员的 info)、商店商品、任务与增益的图示,会保留物品本身的材质与模型,只换上这里的名称、说明、数量与光效。

head 的写法:

写法显示
'{player}'正在看这个菜单的玩家自己的头
'{target}'这个项目代表的玩家(例如邀请菜单里的每位玩家)
Steve 或 UUID那个玩家的头
很长的一串 base64头颅网站复制的 textures 值(可以加 base64: 前缀)

states 状态外观: 只写要改的项目,其余沿用按钮本身的设定。每个功能键有哪些状态,见下面各菜单的说明;状态是 hidden 时按钮不显示。

signin:
slot: 24
material: WRITABLE_BOOK
name: '&e每日簽到'
glow: true
states:
done: # 今天已经签到过
material: BOOK
glow: false
lore: ['&a今天已經簽到過了', '&7明天再來吧']

YAML 会把 on / off 读成 true / false,云公会会自动认回 on / off,直接写就好。

actions 动作(自定义按钮;功能键也可以加 actions,会先执行动作再执行功能):

写法效果
'command: spawn'玩家执行指令(也可以写 player:)
'console: give {player} diamond 1'控制台执行指令
'message: &a哈囉'给玩家发一条消息(也可以写 msg:)
'sound: ENTITY_PLAYER_LEVELUP'播放音效
'open: shop'打开另一个云公会菜单(写文件名,不含 .yml;open: main = 公会主页)
'back'回到上一个菜单
'close'关闭菜单

动作里的 {player} 代表玩家名。例子:在主页加一个回主城的按钮:

buttons:
spawn:
slot: 46
material: ENDER_PEARL
name: '&b回到主城'
actions:
- 'close'
- 'command: spawn'

「返回」回到哪里​

back 按钮回到打开这个菜单之前的菜单;直接用指令打开时回到默认的上一层:

菜单默认上一层
main没有(关闭)
infobrowse
member、applications、invitemembers
其他main(没有公会时是公会列表)

说明文字的排版规则​

  • 一行里有多行变量(例如 {description_lines}、{war_list}、{content}、{task_lore}、{buff_lore})时,这一行会按内容重复好几行;内容是空的就整行拿掉。
  • 连续的空行只保留一行,开头与结尾的空行会自动去掉。所以可以放心地用 '' 分段。

共通变量​

变量内容
{player} {rank} {contribution} {total_contribution} {week_contribution} {donated} {unread}自己:名称、职位、贡献、累积贡献、本周贡献、累积捐献、未读公告数
{name} {name_plain} {tag} {level} {color} {members} {max} {funds} {activity} {month} {leader} {created}公会:名称、不含颜色的名称、标签(没有时 -)、等级、等级颜色、成员数、人数上限、资金、活跃、本月活跃、会长、建立时间
{mode} {ff} {kills} {deaths} {war_wins} {war_losses} {position} {online} {homes} {vault_pages} {description}加入方式、友伤、击杀、死亡、胜场、败场、等级排名、本服在线成员数、据点上限、仓库页数、介绍
{next_level} {next_cost} {next_activity} {next_members} {next_max}下一级、升级资金、需要活跃、需要成员、升级后的人数上限(已经最高级时都是 -)
{page} {pages} {count}清单的目前页码、总页数、项目数(标题、按钮与清单项目都可以用)

「公会」变量在自己公会的菜单里是自己的公会;在公会资讯里是正在看的那个公会;在公会列表、排行与外交的清单项目里是那一项的公会。 公会列表、排行与二次确认菜单的按钮与标题只有「自己」的变量与该菜单的变量。


main.yml 公会主页​

功能键作用状态
info公会资讯(以公会图示显示),只显示—
members打开成员列表—
bank打开公会银行—
shop打开公会商店—
tasks打开公会任务—
notices打开公告栏unread:有未读公告
signin每日签到done:今天已签到;signin.enabled: false 时隐藏
home左键回到主要据点,右键打开据点菜单—
homes打开据点菜单(默认文件没有放)—
relations打开同盟与敌对—
buffs打开公会增益—
vault打开公会仓库第 1 页vault.enabled: false 时隐藏
top打开公会排行—
wars公会战,只显示active:正在开战
chat左键切换公会频道,右键切换同盟频道none / guild / ally:目前的频道
settings打开公会设定—
upgrade升级公会ready:条件都满足;max:已经最高级
browse打开公会列表—
leave退出公会(二次确认)会长看不到
close关闭—

额外变量:{chat} 目前频道名称、{wars} 准备中与进行中的战争数;多行:{war_list} 每场战争的比分与剩余时间(没有时显示 messages.yml 的 menu.war-none)、{description_lines} 公会介绍(| 换行、自动折行)。

browse.yml 公会列表​

清单是所有公会,按目前的排序排列,点一个公会打开 公会资讯。

清单外观用在
default其他公会
own自己的公会
empty还没有任何公会
功能键作用状态
sort切换排序:左键下一种、右键上一种level / activity / month / funds / members / kills / wars
create建立公会(在聊天栏输入「名称 标签」)有公会时隐藏
back返回没有公会时隐藏
previous / next上一页 / 下一页前后没有页时隐藏

变量:{sort} 排序名称、{total} 公会总数、{create_money} {create_points} 建立费用;清单项目另有公会变量、{relation}(和自己公会的关系)、{value}(目前排序的数值)、多行 {description_lines}。

info.yml 公会资讯​

功能键作用状态
info公会资讯(以公会图示显示),只显示—
join加入 / 申请(apply 时在聊天栏输入留言)open / apply / closed:对方的加入方式;member:这是你的公会;in-guild:你已经有公会了
ally提出同盟;已经是同盟时点击解除(二次确认)allied:已是同盟;自己的公会、没有公会、没有 relation 权限或关闭外交时隐藏
enemy设为 / 取消敌对enemy:已敌对;隐藏条件同上
war宣战(二次确认)自己的公会、没有公会、没有 war 权限或关闭公会战时隐藏
back返回—

变量:公会变量(正在看的公会)、{relation}、{war_cost} 宣战花费;多行 {description_lines}。

members.yml 成员列表​

清单是所有成员,按职位权重、累积贡献排序。点一位你能管理的成员(职位比你低,而且你有踢人 / 升职 / 降职权限或是会长)打开 管理成员。

清单外观用在
online在这个子服上在线的成员
offline不在这个子服上的成员(可能在别的子服在线)

清单项目的变量:{member} 名称、{member_rank} 职位、{member_contribution} 贡献、{member_total} 累积贡献、{member_week} 本周贡献、{member_donated} 捐献、{member_joined} 加入时间、{member_kills} {member_deaths} 击杀 / 死亡、{member_seen} 在线或最后上线、{manage} 能管理时显示 messages.yml 的 menu.click-manage。

功能键作用状态
invite打开邀请菜单没有 invite 权限时隐藏
applications打开入会申请没有 accept 权限时隐藏
back / previous / next返回 / 翻页—

额外变量:{applications} 待审核的申请数。

member.yml 管理一位成员​

功能键作用状态
info成员资讯(以玩家头颅显示),只显示—
promote升职没有 promote 权限、或已经升不上去时隐藏
demote降职没有 demote 权限、或已经是最低职位时隐藏
kick踢出(二次确认)没有 kick 权限时隐藏
transfer转让会长(二次确认)不是会长时隐藏
back返回—

变量:{member} {member_rank} {member_contribution} {member_total} {member_joined}、{promote_to} / {demote_to}(升 / 降后的职位名称)。

applications.yml 入会申请​

清单外观 default(每一份申请)与 empty。左键同意、右键拒绝(需要 accept 权限)。 清单项目变量:{applicant} 申请人、{message} 留言(没有时显示 menu.no-message)、{time} 多久以前。按钮:back、previous、next。

invite.yml 邀请玩家​

清单是这个子服上没有公会的在线玩家,外观 default 与 empty,点一下就邀请。清单项目变量:{target} 玩家名(head: '{target}' 显示他的头)。 按钮:back、previous、next。其他子服的玩家请用 /cg invite <玩家>。

bank.yml 公会银行​

清单是最近的银行记录:

清单外观用在
in收入(存入、任务奖励、公会战胜利……)
out支出(提领、发公告、升级增益、宣战、被掠夺……)
empty还没有记录

清单项目变量:{who} 谁、{amount} 金额(带 +)、{after} 之后的余额、{time} 时间、{action} 动作名称(messages.yml 的 bank-action)。

功能键作用状态
balance只显示(公会资金、我的钱、贡献)—
quick-1 / quick-2 / quick-3存入 bank.quick-amounts 的第 1 / 2 / 3 个金额没有设定那么多金额时隐藏
deposit在聊天栏输入金额存入—
withdraw在聊天栏输入金额提领没有 withdraw 权限时隐藏
back返回—

额外变量:{quick_1} {quick_2} {quick_3} 快速金额、{min} 最少存款、{rate} 每 1 元得到的贡献、{balance} 自己身上的钱。

shop.yml 公会商店​

清单是 plugins/CloudGuild/shop.yml 的商品,点一下购买。商品物品本身的外观会保留,名称与说明换成这里的。

清单外观用在
default可以购买
locked公会等级不够
soldout本期已经买满
empty没有商品

清单项目变量:{item} 商品名称、{price} 价格、{required_level} 需要的公会等级、{limit} 已买 / 限购(不限时显示 menu.unlimited)、{period} 限购周期、{amount} 数量。 按钮:balance(只显示)、back、previous、next。

tasks.yml 公会任务​

清单外观用在
default进行中
done这一期已完成
locked公会等级不够
empty没有任务

清单项目变量:{task} 名称、{progress} / {goal} 进度与目标、{percent} 百分比、{bar} 20 格进度条、{period} 每日 / 每周、{reward_funds} {reward_activity} {reward_contribution} 奖励、{mine} 我这一期的出力、{required_level};多行 {task_lore}(任务的 lore)。 按钮:back。

notices.yml 公告栏​

清单外观用在
unread未读(左键标为已读)
read已读
empty没有公告

有 notice 权限时右键删除(二次确认)。清单项目变量:{title} 标题、{author} 发布者、{time} 时间、{delete}(有权限时显示 menu.right-delete);多行 {content}。

功能键作用状态
post发布公告(依序输入标题、内容)没有 notice 权限时隐藏
read-all全部标为已读—
back / previous / next返回 / 翻页—

settings.yml 公会设定​

功能键作用状态
rename改名(在聊天栏输入)没有 settings 权限时隐藏
tag标签(输入 - 清除)没有 settings 权限或 tag.enabled: false 时隐藏
description公会介绍没有 settings 权限时隐藏
icon把主手物品设为公会图示(以公会图示显示)没有 settings 权限时隐藏
join-mode切换加入方式open / apply / closed;没有 settings 权限时隐藏
friendly-fire切换友伤on / off;没有 settings 权限时隐藏
sethome把现在的位置设为据点 main没有 home 权限时隐藏
upgrade升级公会max:已经最高级;没有 upgrade 权限时隐藏
disband解散公会(二次确认)不是会长时隐藏
back返回—

额外变量:{rename_cost} 改名花费;多行 {description_lines}。

relations.yml 同盟与敌对​

清单外观用在点击(需要 relation 权限)
ally同盟解除同盟(二次确认)
enemy敌对取消敌对
outgoing自己送出、等待对方同意的同盟请求撤回
incoming对方送来的同盟请求左键同意、右键拒绝
empty没有任何关系—

清单项目变量:公会变量(那个公会)与 {relation} 关系名称。按钮:info(只显示)、back。

top.yml 公会排行​

清单外观用在
top1 / top2 / top3第 1 / 2 / 3 名
own自己的公会(不在前三名时)
default其他
empty没有公会

清单项目变量:公会变量、{n} 名次、{value} 目前排序的数值。点一个公会打开公会资讯。 按钮:sort(状态同公会列表)、back、previous、next。标题与按钮可用 {sort} 排序名称。

buffs.yml 公会增益​

清单外观用在
default可以升级
locked公会等级不够
max已经升到最高级
empty没有设定增益

点一下升级(需要 buff 权限)。清单项目变量:{buff} 名称、{buff_level} 目前等级(含赠送)、{buff_max} 最高等级、{cost} 下一级花费、{required_level};多行 {buff_lore}(增益的 lore)。按钮:back。

homes.yml 公会据点​

清单外观 default(每个据点)与 empty。左键传送,有 home 权限时右键删除(二次确认)。 清单项目变量:{home} 名称、{world} 世界、{server} 子服、{xyz} 坐标、{delete}。

功能键作用状态
sethome在这里设定据点(在聊天栏输入名称)没有 home 权限时隐藏
back返回—

confirm.yml 二次确认​

功能键作用
confirm确定,执行操作
question只显示问题({question},文字在 messages.yml 的 confirm)
cancel取消,回到原本的菜单

按钮的键名是 confirm / cancel,不要改成 yes / no:YAML 会把 yes、no 读成 true / false。

小技巧​

  • 换成资源包的 GUI:把装饰的玻璃板改成透明材质 + item-model,按钮也加上 item-model / custom-model-data,标题用资源包字体画背景。
  • 移动按钮:改 slot 就好;content-slots 不要和按钮重叠。
  • 只给 VIP 看的按钮:加 permission: group.vip。
  • 不想要某个按钮:加 enabled: false,或整段删掉。
  • 在主页放一个打开据点菜单的按钮:新增一段 homes:(功能键),或写 type: action + actions: ['open: homes']。