物品属性应该按照下面这个格式来设置
- gui_menus:
- menuname:
- menu_title: 'TEXT'
- open_command: TEXT
- size: #
- update_interval: #
- items:
- 'ItemName':
- material: TEXT
- slot: 0
复制代码如果你使用的是外部的gui.yml文件,你的配置文件将以menu_title开头,你可以把“ItemName”设置成任何东西,无论设置成什么都不会影响config的运作,因为它只起到一个标识作用,你可以把它设置成数字,或者任意字符
这个属性代表菜单内物品的种类(物品名称列表参本帖上方),这个属性直接对应子ID“data”这个属性(当你需要设置药水或者木头等等带有子ID的物品时发挥作用),本属性与旗帜图案属性“banner-meta”也有关,同样,你也可以使用“head:玩家名”来把物品设置成正版玩家的头颅(玩家名使用PAPI变量%player_name%)
这个属性代表物品的子ID,本属性与物品种类属性有关,你可以利用子ID来设置多种彩色的羊毛等等
这个属性代表一个格子内会显示多少个物品
这个属性代表该物品在菜单内的第几个格子,多个物品可以被放入同一个格子,但是你可能要设置优先级属性priority和浏览前提view_requirement来让它工作正常,需要注意的是一个菜单最多只有54个格子,从左上角开始是第一个格子(序号为0),也就是说第九个格子序号是8,这个是没法改变的,用一张图来帮助你理解:
当多个物品存在于同一个格子时,这个属性代表物品的优先级(本属性与格子slot和浏览前提view_requirement有关),数字越大,优先级越低,举个例子,当存在一个优先级为2的物品时,优先级为5的物品将不会显示,如果同时存在优先级为1的物品,那么之前两个物品都不会显示
- view_requirement: 'EXPRESSION'
复制代码这个属性是浏览前提,与格子slot和优先级priority属性有关,你可以在这里设置基础的逻辑判断,或者利用papi做数字判断(papi判断例如:'%vaulteco_balance% > 100'只有你的金钱大于100金币时,你才能看见这个物品,需要Vault作为前置,Java判断例如: 'BukkitPlayer.hasPermission ("some.permissions")'玩家只有拥有这个权限才能看到这个物品)请查看下一部分Wiki来了解更多
如果这个属性设置为true,这个物品名称和lore中的papi变量会被自动刷新,刷新的频率和GUI菜单设置中的"update_interval"属性有关,这个属性可用于显示冷却时间和实时统计
下面这个是一个papi变量刷新的例子
这个属性将会隐藏原版物品的各种属性,设置成true以后,原版物品例如剑,镐,斧上的“+5 攻击伤害”将被隐藏
这个属性与上面那个hide_attributes属性很相似,将会隐藏原版物品的各种效果,设置成true以后,原版药水等物品上的药水效果将会被隐藏
- banner_meta:
- - <dyecolor>;<patterntype>
- - <dyecolor>;<patterntype>
复制代码只有物品种类为旗帜,这个属性才会生效,这个属性可以设置旗帜的颜色和图案,创造出漂亮而独特的旗帜,染色和旗帜图案列表请参考本部分开头链接,要注意的一点是你必须要用英文分号来分隔颜色和图案,而不是通常的英文逗号
物品的名称,可以使用彩色代码,也可以使用papi变量
物品的lore,可以使用彩色代码,也可以使用papi变量,只要原版Minecraft允许,你加多少行都可以 - enchantments:
- - enchantmentid;level
- - enchantmentid;level
复制代码物品的附魔,附魔名称列表请参考本部分开头列出的链接,请务必注意某些物品/方块不能被打上附魔,某些附魔只对特定的物品生效,如果你不想显示附魔,只想显示附魔的闪光效果,可以使用hide_enchantments这个属性 - left_click_commands:
- - '[player] command'
- - '[console] command'
- - '[commandevent] command'
- - '[message] TEXT'
- - '[openguimenu] MenuName'
- - '[connect] ServerName'
- - '[close]'
- right_click_commands:
- - '[player] command'
- - '[console] command'
- - '[commandevent] command'
- - '[message] TEXT'
- - '[openguimenu] MenuName'
- - '[connect] ServerName'
- - '[close]'
复制代码这些属性相当于对功能的解释,Left_click_commands 设置的是玩家左键点击物品发生的事件, right_click_commands 控制的是玩家右键点击物品发生的事件,你想添加多少行都可以,指令会按照从上到下依次执行,指令分为很多种,会在下面列出 (请注意所有指令和内容前面都要留一个空格):
[player] - 以玩家身份执行指令
[console] - 以控制台身份执行指令
[commandevent] - 执行一个特殊的指令世界,类似插件 MyCommand Aliases 或者 DeluxeCommands 里的那样
[message] - 给玩家发送一条消息,可以添加papi变量或者彩色代码
[openguimenu] - 打开另一个菜单,只要输入正确的菜单标题就可以了
[connect] - 传送玩家至一个bungee子服,只要输入正确的子服名称就可以了
[close] - 关闭菜单
<delay=(延迟的tick数)> - 给执行指令添加延迟 - '[close]' - '[message] 距离这个菜单关闭已经过去 5 秒了 <delay=100>' - '[message] 已经过去 10 秒了<delay=200>' 20 ticks i= 1秒. 我们建议不要给打开菜单添加延迟,因为不知情的玩家可能会不停地尝试打开,造成服务器卡顿
- left_click_requirement:
- expression: 'EXPRESSION'
- deny_commands:
- - '[player] 指令'
- - '[console] 指令'
- - '[commandevent] 指令'
- - '[message] TEXT'
- - '[openguimenu] 菜单名'
- - '[connect] 子服名'
- - '[close]'
- right_click_requirement:
- expression: 'EXPRESSION'
- deny_commands:
- - '[player] 指令'
- - '[console] 指令'
- - '[commandevent] 指令'
- - '[message] TEXT'
- - '[openguimenu] 菜单名'
- - '[connect] 子服名'
- - '[close]'
复制代码使用Java/papi来检测使用限制,格式和浏览限制view_requirement相同(只是玩家一直能看的见这个物品罢了),这个限制检测的是玩家能否左键/右键点击这个物品。deny_commands部分可选,如果你设置了这个,它们会和 left_click_commands 属性和 right_click_commands 属性同步工作 当玩家左键/右键触发指令的时候,本限制也会开始工作,若玩家不满足前提,指令将不会生效,同时开始执行deny_commands里的内容(若是你没有设置,将什么都不会执行) |