本帖最后由 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)支持各种类型的菜单


支持的服务端:
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)
VirtualMenu-0.0.16-dev.jar (205.46 KB, 下载次数: 369)
0.0.15-dev (2020.2.7)
VirtualMenu-0.0.15-dev.jar (204.55 KB, 下载次数: 45)

0.0.14-dev(2020.1.29)
VirtualMenu.jar (204.26 KB, 下载次数: 128)

请删除原config.yml
0.0.13-dev (2019.10.5)
VirtualMenu.jar (294.1 KB, 下载次数: 101)

0.0.12-dev(2019.9.8)
VirtualMenu.jar (211.85 KB, 下载次数: 55)
0.0.11b-dev(2019.8.17)

VirtualMenu.jar (210.88 KB, 下载次数: 63)
0.0.10-dev(2019.8.13)
VirtualMenu.jar (211.54 KB, 下载次数: 52)
0.0.9-dev  (2019.8.12)
VirtualMenu.jar (210.17 KB, 下载次数: 13)
0.0.8-dev(2019.8.10)
VirtualMenu.jar (187.69 KB, 下载次数: 23)

https://github.com/ColorsWind/VirtualMenu/releases

更多历史版本请到github查看
本帖提供历史版本是为了在较新版本不能使用的情况下尝试
但是没有特殊情况请使用最新版本,兼容的服务端都是一样的

有问题在本帖回复或者在github发issue

更新记录
https://github.com/ColorsWind/VirtualMenu/commits/master




配置

config.yml——插件配置文件

bound.yml——绑定配置文件

example.yml——菜单例子
该文件经常变更,最新版本https://github.com/ColorsWind/Vi ... esource/example.yml

玩家名称用<player>代替



一些效果图






反馈前请阅读
https://github.com/ColorsWind/VirtualMenu/issues

1、确保你所用的VirtualMenu是最新版本
2、提供服务端版本/version
3、提供所用Protocolib版本/protocol version
4、请尽量使用github issue反馈


FAQ
1、1.7.10 MOD服出现ClassNotFoundException

2、 使用/reload或者plugman之类的插件重载更新插件出现LinkageError

解决方案:重启服务器




强烈建议收藏本帖,更新将会通知收藏本帖的用户
如果本插件对您有帮助,请回复+评分(评分人气不消耗自身的)

本插件以GPL-3.0协议开源
本插件所用代码部分来自其他开源或闭源(已授权)作品

https://github.com/tylerhasman/Packet-Menu (MIT)
https://github.com/CryptoMorin/XMaterial (MIT)
部分代码来自以上,其余部分为原创