您尚未登录,立即登录享受更好的浏览体验!
您需要 登录 才可以下载或查看,没有帐号?注册(register)
x
本帖最后由 ColorsWind 于 2020-4-4 11:27 编辑
写在前面
v2版本已发布,欢迎尝试
https://github.com/ColorsWind/VirtualMenu
前段时间我发布了ChestCommandsPro插件,由于在ChestCommands上通过"打补丁"的方式增加功能效率不高而且功能实现受到限制,所以我利用ProtocolLib发送/拦截Inventory的数据包写了一款全新的菜单插件,兼容原ChestCommands菜单,只需将./plugins/ChestCommands/menu/复制到./plugins/VirtualMenu/menu可直接使用。
事务繁忙,插件很多用法没有详细说明,请参考
1、实例文件 example.yml
2、ChestCommands的wiki
如果您愿意帮忙补全插件的教程,可以私信索要联系方式,我会详细解答你的问题。更新消息:
最新(0.0.11-dev)支持各种类型的菜单
支持各种类型菜单1.png (94.04 KB, 下载次数: 2)
2019-8-16 19:15 上传
支持各种类型菜单2.png (77.97 KB, 下载次数: 1)
2019-8-16 19:15 上传
支持的服务端:
CraftBukkit,Spigot,Paper,Thermos,CatServer
以及各种能够使用ProtocolLib的服务端,支持1.7.10-1.14.4
计划补全插件文档,如果你愿意提供帮助,我会非常感激
区别
菜单使用发送/拦截数据包实现
menu-settings.auto-refresh单位:s->tick,其余相同
皮革颜色,玩家头所有者标签用被删除,已经被NBT标签代替,支持更多物品NBT
REQUIRED-ItEM,COMMAND采用新的格式(见示例),同时兼容原格式
OVERRIDE采用新的格式(ChestCommandsPro only)
木牌打开菜单由于使用脚本方块等插件完全可以实现,故不支持此功能
权限系统大大简化,绝大部分操作不需要权限,只有命令部分需要权限virtualmenu.admin
菜单绑定的物品需要在bound.yml配置,支持更高级的配置特性
目前已经实现了绝大部分ChestCommands的功能
支持检测玩家点击菜单外
支持更多类型的菜单(漏斗,发射器,以及各种奇怪的GUI)
支持CommandPrompter
基本支持原ChestCommands配置文件
菜单动态更新和玩家点击合法性检测异步实现
菜单错误精确到节点提示
支持各种物品的NBT(如皮革颜色,旗子样式以及ItemFlag等)(NBT节点)
支持给不同玩家显示不同的菜单物品执行不同的命令
新增先进的REQUIRED-ITEM检测,可以检测物品名称,LORE等
新增可视物品金钱,点券(VIEW-MONEY,VIEW-POINTS)
支持PlaceHolderAPI变量+定时更新(PLACEHOLDERAPI节点)
声音支持音高和音量,新增Title,Actionbar执行
支持左击/右击等更多点击方式检测,同上支持原配置格式
玩家不可能从菜单“偷”出物品
游戏内GUI菜单物品编辑器(/vm builder)
游戏内物品菜单YAML格式输出器(/vm info)
支持更高级的物品绑定,如下界之星左击打开A菜单,右击打开B菜单
关于PlaceholderAPI变量没用,请检查菜单文件PLACEHOLDERAPI: true 是否设置
命令
/vm reload 重载插件配置文件和菜单
/vm builder 游戏内编辑编辑器
/vm info 输出手上物品信息,可直接贴到菜单里面(同时控制台也会输出一份)
/vm open 为自己打开菜单
/vm open 为其他人打开菜单
/vm list 列出所有菜单权限
op默认拥有所有权限(virtualmenu.admin)
采用发送/拦截数据包实现菜单有什么好处?
玩家不可能“偷”出菜单物品
可以实现漏斗菜单/发射器菜单/铁毡菜单
很多对菜单的操作可以异步执行下载
0.0.16-dev (2020.2.19)
下载遇到问题? 直接下载
2020-2-19 20:44 上传
点击文件名下载附件
0.0.16-dev
0.0.15-dev (2020.2.7)
2020-2-7 14:58 上传
点击文件名下载附件
0.0.15-dev
0.0.14-dev(2020.1.29)
VirtualMenu.jar
(0204.26 KB, 下载次数: 130)
下载遇到问题? 直接下载
2020-1-29 11:52 上传
点击文件名下载附件
0.0.14-dev
请删除原config.yml
0.0.13-dev (2019.10.5)
VirtualMenu.jar
(0294.1 KB, 下载次数: 101)
下载遇到问题? 直接下载
2019-10-5 13:40 上传
点击文件名下载附件
0.0.13-dev
0.0.12-dev(2019.9.8)
VirtualMenu.jar
(0211.85 KB, 下载次数: 55)
下载遇到问题? 直接下载
2019-9-8 10:36 上传
点击文件名下载附件
0.0.12-de
0.0.11b-dev(2019.8.17)
VirtualMenu.jar
(0210.88 KB, 下载次数: 63)
下载遇到问题? 直接下载
2019-8-17 17:26 上传
点击文件名下载附件
0.0.11b-dev
0.0.10-dev(2019.8.13)
VirtualMenu.jar
(0211.54 KB, 下载次数: 52)
下载遇到问题? 直接下载
2019-8-13 14:46 上传
点击文件名下载附件
0.0.10-dev
0.0.9-dev (2019.8.12)
VirtualMenu.jar
(0210.17 KB, 下载次数: 13)
下载遇到问题? 直接下载
2019-8-12 11:12 上传
点击文件名下载附件
0.0.9-dev
0.0.8-dev(2019.8.10)
VirtualMenu.jar
(0187.69 KB, 下载次数: 23)
下载遇到问题? 直接下载
2019-8-10 12:06 上传
点击文件名下载附件
0.0.8-dev
https://github.com/ColorsWind/VirtualMenu/releases
更多历史版本请到github查看
本帖提供历史版本是为了在较新版本不能使用的情况下尝试
但是没有特殊情况请使用最新版本,兼容的服务端都是一样的
有问题在本帖回复或者在github发issue
更新记录
https://github.com/ColorsWind/VirtualMenu/commits/master
配置
config.yml——插件配置文件
# 消息前缀
Prefix: '&b[&dVirtualMenu&b]'
# 两次点击背包物品的间隔,单位毫秒,设置为-1关闭这个功能
AntiSpam: 200
# 是否启用NBT支持,非原版服务端可能出现异常
SupportNBT: true
# 全局语言,菜单设置的语言会覆盖全局设定
Lang:
NoEnoughMoney: '金钱不足,你需要 {0} 来执行这个动作'
NoEnoughPoint: '点券不足,你需要 {0} 来执行这个动作'
NoEnoughtItem: '物品不足,你需要 {0} 个 {1} 来执行这个动作'
NoPermission: '权限不足,你需要 {0} 来执行这个命令'
InternalError: '插件出现内部错误,动作被取消,请联系管理员,错误摘要: {0}'复制代码
bound.yml——绑定配置文件
# 格式
# :
# :
# material参考https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# 可用的action: RIGHT_SHIFT, LEFT_SHIFT, DROP_SHIFT, RIGHT_CLICK, LEFT_CLICK, DROP_ITEM
# 下面是一个例子 下界之星 潜行右击打开 example菜单 丢弃打开example2菜单
NETHER_STAR:
RIGHT_SHIFT: example
DROP_ITEM: example复制代码
example.yml——菜单例子
玩家名称用代替
menu-settings:
# 【必须】菜单名称
name: '&9&lVirtualMenu测试菜单'
# 【必须】箱子的行数
rows: 1
# 【可选】刷新间隔,同时也会刷新PlaceHolderAPI的变量
# 单位是tick
auto-refresh: 10
# 【可选】有关整个菜单的事件
events:
# 左击菜单的边界外
LEFT: 'tell: 点击左击边界外'
# 右击菜单的边界外
RIGHT: 'tell: 点击右击边界外'
# 鼠标中键点击边界外(由于minecraft的bug,只能检测创造模式)
MIDDLE: 'tell: 鼠标中键(创造模式)点击边界外'
# 打开菜单时
OPEN: 'tell: 打开菜单(此项在menu-settings.event.open中配置)'
# 关闭菜单时
# 及时玩家不关闭菜单直接退出游戏,仍然会触发关闭菜单
CLOSE: 'console:say 玩家 关闭了测试菜单(此项在menu-settings.event.open中配置)'
# 【可选】可在./plugins/VirtualMenu/bound.yml设置,有更多功能
X1Y1:
NAME: '&a&l支持绝大部分NBT'
ID: LEATHER_CHESTPLATE
DATA-VALUE: 0
KEEP-OPEN: true
LORE:
- '支持皮革,旗帜,刷怪蛋等'
- '支持更多但未测试'
- '&c&l本功能需要ProtocolLib'
AMOUNT: 1
NBT: "CgAACgAHZGlzcGxheQMABWNvbG9yADNMsgAA\r\n"
POSITION-X: 1
POSITION-Y: 1
X2Y1:
NAME: '&b&l支持更多点击检测'
ID: ENCHANTED_BOOK
KEEP-OPEN: true
LORE:
- '支持的检测,点击这里测试'
- 'LEFT 左击 SHIFT_LEFT 潜心键+左击'
- 'RIGHT 右击 SHIFT_RIGHT 潜心键+右击'
- 'DROP 丢弃键'
DATA-VALUE: 0
KEEP-OPEN: true
COMMAND:
DEFAULT: 'tell; 默认操作'
LEFT: 'tell: 左击'
SHIFT_LEFT: 'tell: 潜心键+左击'
RIGHT: 'tell: 右击'
SHIFT_RIGHT: 'tell: 潜心键+右击'
DROP: 'tell: 丢弃'
AMOUNT: 1
NBT: "CgAACQASU3RvcmVkRW5jaGFudG1lbnRzCgAAAAECAANsdmwAAQIAAmlkACEAAA==\r\n"
POSITION-X: 2
POSITION-Y: 1
X3Y1:
NAME: '&d&l支持PlaceHolderAPI'
LORE:
- '例子:是否AFK: %essentials_afk%'
- '如果是第一次使用,还需要进行以下配置才'
- '才能正常显示测试内容'
- '1.确保按照了PlaceHolderAPI和'
- 'Essentials(因为papi的附件需要)'
- '2.输入/papi ecloud download essentials下载papi的附件'
- '3.将菜单文件PLACEHOLDERAPI改成true'
- '4.输入/vm reload 重载插件'
- '支持Papi变量自动刷新'
- '需要设定菜单的auto-refresh'
KEEP-OPEN: true
DATA-VALUE: 0
AMOUNT: 1
PLACEHOLDERAPI: true
ID: MONSTER_EGG
NBT: "CgAACgAJRW50aXR5VGFnCAACaWQAA1BpZwAA\r\n"
POSITION-X: 3
POSITION-Y: 1
X4Y1:
ID: SPLASH_POTION
DATA-VALUE: 0
NAME: '&d&l菜单显示优先级实例'
LORE:
- '&c&l拥有1500金钱'
- '&c&l拥有1500点券'
OVERRIDE:
- PRIORITY: 2
ID: SPLASH_POTION
PRICE: 1000
VIEW-MONEY: 1500
NAME: '&d&l支持菜单菜单物品显示优先级 优先级:1 '
LORE:
- '&a&l拥有1500金钱'
- '&d&l当你同时拥有点券和金钱时,优先显示点券'
COMMAND: 'say 消耗1000金钱'
- PRIORITY: 3
ID: SPLASH_POTION
VIEW-POINTS: 1500
POINTS: 1000
NAME: '&d&l支持菜单菜单物品显示优先级 优先级:2'
LORE:
- '&a&l拥有1500点券'
- '&d&l当你同时拥有点券和金钱时,优先显示点券'
COMMAND: 'say 消耗1000点券'
AMOUNT: 1
NBT: "CgAACAAGUG90aW9uABhtaW5lY3JhZnQ6bG9uZ19zd2lmdG5lc3MA\n"
KEEP-OPEN: true
POSITION-X: 4
POSITION-Y: 1
X5Y1:
ID: SLIME_BLOCK
COMMAND: 'vm builder'
DATA-VALUE: 0
NAME: '&9&lGUI菜单物品创建器'
LORE:
- '/vm builder (name) 创建(指定)菜单'
- '(name)为可选参数,用于区分未编辑完的菜单物品'
- '编辑完毕后菜单物品将会保存在插件目录menu文件夹'
- '点击这里创建一个随机菜单'
- '&c&o如果已经存在,则会打开已经编辑的菜单'
AMOUNT: 1
KEEP-OPEN: true
POSITION-X: 5
POSITION-Y: 1
X6Y1:
ID: SIGN
DATA-VALUE: 0
COMMAND: 'vm info'
NAME: '&2&l物品信息查看器'
LORE:
- '/vm info 查看手持物品的信息'
- '控制台也会按照配置文件的格式输出一样的信息'
AMOUNT: 1
KEEP-OPEN: true
POSITION-X: 6
POSITION-Y: 1
X7Y1:
ID: SAND
DATA-VALUE: 0
NAME: '&9&l物品绑定器'
LORE:
- '本插件提供更好的物品绑定'
- '具体在bound.yml内设置'
- '支持一个物品绑定多个菜单'
- '通过配置文件开启'
AMOUNT: 1
KEEP-OPEN: true
POSITION-X: 7
POSITION-Y: 1
X8Y1:
ID: ICE
DATA-VALUE: 0
NAME: '&9&l支持CommandPrompter'
LORE:
- 'https://www.spigotmc.org/resources/commandprompter.47772/'
- 'https://www.mcbbs.net/thread-858668-1-1.html'
COMMAND: 'say '
AMOUNT: 1
KEEP-OPEN: false
POSITION-X: 8
POSITION-Y: 1
X9Y1:
ID: SAND
DATA-VALUE: 0
NAME: '&9&l更好的物品需求'
LORE:
- '同上兼容原REQUIRED-ITEM格式'
AMOUNT: 64
REQUIRED-ITEM:
ID: sand
NAME: '&a测试用沙子'
KEEP-OPEN: true
POSITION-X: 9
POSITION-Y: 1复制代码
一些效果图
游戏内编辑器/vm builder
QQ截图20190731195620.png (32.49 KB, 下载次数: 1)
2019-7-31 19:56 上传物品信查看器/ccp info
QQ截图20190731195807.png (57.49 KB, 下载次数: 1)
2019-7-31 19:58 上传
QQ截图20190731200031.png (106.47 KB, 下载次数: 1)
2019-7-31 20:00 上传
图片.png (8.79 KB, 下载次数: 1)
2019-7-31 20:02 上传
反馈前请阅读
https://github.com/ColorsWind/VirtualMenu/issues
1、确保你所用的VirtualMenu是最新版本
2、提供服务端版本/version
3、提供所用Protocolib版本/protocol version
4、请尽量使用github issue反馈
FAQ
1、1.7.10 MOD服出现ClassNotFoundException
classnotfond.png (149.72 KB, 下载次数: 2)
2019-8-17 19:19 上传
原因:服务端带的asm版本过旧,不支持java8编辑的插件
解决方案:参考https://blog.yumc.pw/posts/Fix-T ... in-Class-Not-Found/
2、 使用/reload或者plugman之类的插件重载更新插件出现LinkageError
exception.png (79.77 KB, 下载次数: 1)
2019-8-17 19:15 上传
原因:由于某些原因,Class没有被卸载回收,然后新的Class就载入了
解决方案:重启服务器
强烈建议收藏本帖,更新将会通知收藏本帖的用户
如果本插件对您有帮助,请回复+评分(评分人气不消耗自身的)