- 支持核心:
- Spigot
- 支持版本:
- 1.7
- 1.8
- 1.9
- 1.10
DeluxeMenus 介绍
DeluxeMenus 命令
- 点击某个图标需要的权限
- 某个变量达到一定的值时的显示等等
- 每个界面都有着可以设置的yml文件
- 支持PlaceholderAPI
- 支持BungeeCord跨服
- 多种变量
- 具备了大多数菜单(比如ChestCommands)的功能
/deluxemenus可以缩写成/dm
/dm open <菜单名字> (玩家名字) #(向某玩家)打开对应的菜单
/dm list #列出无配置问题的菜单
/dm reload #重载菜单插件配置
DeluxeMenus 权限
deluxemenus.admin #全部插件的权限 默认值:OP
deluxemenus.open #打开菜单权限 默认值:OP
deluxemenus.open.others #为某玩家打开菜单权限 默认值:OP
DeluxeMenus 效果图
![]()
(这个动态杜蕃斯菜单是付费插件,作用已经被作者删除)
DeluxeMenus 配置教程
转载于www.mcbbs.net
一、给每个菜单独立的yml文本文档
如果你是初次运行该插件,那么插件会在plugins创建一个名为DeluxeMenus的文件夹(废话!)
那么会有一个config.yml的文件,这个文件是干什么的呢?很简单: 在这一个文本里面可以多个菜单,包括每个菜单的图标. 但我并不建议这么做,如果你的服务器是Windows系统.转为ANSI码之后.那就成UTF-8码了.具体原因不太清楚,我不是很了解YAML格式.233.
使用方法:
删除config.yml所有的内容,当然,你英语好可以留着注释的部分,那也是一个官方的小教程.
然后粘贴一下内容:
设置好重载插件或者重启服务器时.会在原有的文件夹内生成一个名叫 gui_menus 的文件夹打开它.代码 (Text):
[LIST=1]
[*]check_updates: true #检查更新
[*]gui_menus:
[*]main:
[*] file: main.yml #一个名叫main的菜单.
[*]prefix:
[*] file:prefix.yml #一个名叫prefix的菜单.
[/LIST]
在该文件夹内,会生成原先设置好的两个菜单.在这里分别是: main.yml 和 prefix.yml
二、菜单详解(菜单文件独立开之后)
代码 (Text):
[LIST=1]
[*]menu_title: '<菜单的标题,很好理解>'
[*]open_command: #打开该菜单的指令
[*]- 'cmd'
[*]- 'menu' #正如你所见,可以多个
[*]open_requirement:
[*]expression: 'BukkitPlayer.hasPermission("some.permission");' #这个的教程在后面.
[*]deny_commands:
[*]- '[message] &c你缺少权限权限: some.permission'#这个是没达到上方要求时执行的指令.
[*]#你肯定会问,这个[message]又是什么鬼,这个后面会讲到.
[*]size: 9 #菜单的大小,必须为9的倍数,不能大于54.
[*]updata_interval: 1 #刷新菜单的延迟.秒为单位
[*]items: #以下就是每个图标的设置了.
[*] test: #图标的名字而已.不要和其他的重复.这个名为 test
[*] material: 1 #图标的材质,可以为数字ID或者英文代码ID 如果是玩家头: 'head;玩家名字/也可以是变量'
[*] data: 2 #附加值吧算是.比如羊毛的数字ID":"后面的那串数字.
[*] amount: 20 #显示的数量
[*] priority: #优先级.如果一个位置有多个图标,那么这个非常有用。[这个后面详细教程]
[*] view_requirement: 'BukkitPlayer.hasPermission("some.permission");' #这个后面有教程
[*] updata: true #true或false 如果打开这个,那么会在菜单已打开的情况下刷新变量.默认是打开菜单才刷新.
[*] hide_attributes: true #true或false 隐藏物品的属性.
[*] hide_enchantments: true #true或false 隐藏物品的附魔.
[*] hide_effects: true #true或false 隐藏效果,药水.
[*] banner_meta: #如果上方的图标材质为旗帜.那么这个很有用.
[*] - '<颜色>;<花纹类型>'
[*] - 'WHITE;CREEPER' #白色,苦力怕形状.
[*] #这个具体如何用,参考网址:点击进入 这个本人也没用过,不太懂旗帜.
[*] display_name: 'thisaname' #物品的展示名字,自定义.可变量/彩色等.
[/LIST]
三、优先级
首先,先说说优先级是什么:
在这个插件中 优先级的大小关系 最高:1 最低:2147483647
问: 优先级有什么用? 答:优先级可以让处于一个位置的多个图标区分来显示给玩家. [这时候就要配合可视需求了]
例子: 个人觉得优先级这一部分可能不太好理解,结合例子,自己实际动手做几个图标,慢慢感受一下.
代码 (Text):#我这里有2个名字分别为1,2的图标.
#它们都处于同一个位置 slot都为20 .
items:
1:
material: 2
slot: 20
display_name: '&7&l这是第一个图标'
update: true
priority: 1 #这个优先级为1, #这个优先级最高
view_requirement: '%vaulteco_balance% = 20'
#金币为20时会显示图标 1 否则显示2.
lore:
- '第一个图标'
2:
material: 3
priority: 2 #这个优先级为2.
slot: 20
display_name: '&7&l这是第二个图标'
update: true
lore:
- '第二个图标'
#那么你猜猜它们的显示顺序把,很好理解.
详细:
图标1的优先级为1,所以没有可视需求之前,他肯定是第一个显示,
如果一旦有可是需求,要达到可视需求才行.
此时当一个玩家的钱数为20时,会显示第一个图标
四、可视/点击需求
注意,此部分扩展性非常高,不仅仅是几个判定方式.如果你懂bukkit的API,那么你可以玩转这玩意.
我只是在这里列举常用的,我可不是藏着掖着,而是真的有很多,无法讲完.
首先,先明白什么是需求(requirement):
需求在本插件就是达到一定的条件去打开某个菜单/显示某个图标,或是点击某个图标.
这个比较多:
点击需求:
例子:
left_click_requirement: #这是左键点击的需求,右键也是如此 left改为right.
expression: '%vaulteco_balance% > 100' #这里是金币需要高于100.
deny_commands: #以下是没有100时,点击执行的命令.
- '[close]'
- '[message] &cYou dont have 100 dollars to click that item'
-----------------------------------------------------------------------------------------------
打开需求: #打开一个菜单的需求
列子: 其实和点击需求一样,把 *_click_requirement 改为 open_requirement 即可 (偷懒一下不会死)
-----------------------------------------------------------------------------------------------
可视需求:
例子:
view_requirement: '%vaulteco_balance% > 100' #金币大于100时才可看见图标.
注意一下,为什么和点击需要不一样呢,因为点击需求没达到条件时可以执行命令,而这个就没必要了2333
-----------------------------------------------------------------------------------------------
需求说明 [仅仅列举3个常用,如果你懂bukkit的插件编程,那么你一看就懂.]:
1.数值变量: 返回值为数字的变量,例如PlayerPoints的。vault的等等.
'%vaulteco_balance% = 100'
'%vaulteco_balance% >= 100' 大于或者等于,这就是判断大小的问题,可以小于、大于、大于或等于、小于或等于、
2.权限需求: 例如: 'BukkitPlayer.hasPermission("test.1.a")'需要有权限: test.1.a
'BukkitPlayer.noPermission("test.1.a")'这个的意思是没有此权限的才算达到需求
-----------------------------------------------------------------------------------------------
3.返回值判定(文本型) 列如:
'"%player_world%".equalsIgnoreCase("world_nether")' 当变量%player_world%的返回值为 world_nether 时,才达到需求.
'!"%player_world%".equalsIgnoreCase("world_nether")' 前方加个 ! 用法就和上面的权限需求差不多了.
五、执行类型[重要!必看部分]
这一部分是指令节点部分,就是本插件的一种....一种... 23333 没想到什么专业名词,简单来说,就是执行类型!不仅仅是执行指令哦~
先来个看完前面的教程就能明白的小“栗子”
left_click_requirement:
expression: '%vaulteco_balance% > 100'
deny_commands:
- '[close]' #关闭菜单的意思,
- '[message] 这是没达到条件时执行,这是一句话!'
left_click_commands:
- '[close]'
- '[message] 这是达到所需条件后执行的,这是一句话!'
- '[console] fuck you 2333' #指令,由控制台执行!
如果这个例子的前三句你没看明白,那肯定是没看前面的教程!
肯定有人问了,这个[close] [message] [console] 又是什么鬼东西!那么我下面给你解释一下:
[console] - 由控制台执行一条指令!
用法: - '[console] eco give SerLiunx 233' #由控制台给玩家SerLiunx一些金币 233个.
[player] - 由点击这个图标的玩家执行指令
用法: - '[player] spawn' #回主城,有玩家执行的。
[commandevent] - 这个我觉得比较不好理解,说白了就是执行没有使用bukkit的指令系统所生成的指令,
# 不好理解?再说明白点. 如果你想用这个打开chestcommands的面板,你发现用你chestcommands设置好的打开菜单的指令却无法打开。因为我们自定义chestcommands的菜单指令时,是没有用到bukkit的指令系统的。所有你要使用这个执行方式.
用法: - '[commandevent] main' #假如我有一个需用用/main 来打开的一个chestcommands的菜单,那么这样就可能正常打开
[message] - 向点击的玩家发送一条消息
用法: - '[message] <文本>' #这个不多说了...
[openguimenu] - 打开一个本插件的菜单!别想用这个打开cc的,[这个只能用在点击命令中
用法: - '[openguimenu] shit' #打开一个名为shit的菜单
[connect] - 连接一个bungeecord的服务器,如果你不使用bc,忽略这个.
用法: - '[connect] skyblock' #连接至服务器skyblock
[close] - 关闭
用法: - '[close]' #这个不用多说了吧 2333 本插件的图标点击后不会自动关闭,需要使用这个.
DeluxeMenus 坐标图
![]()