原版的MTP插件虽然提供了items.yml等配置用来修改名称和描述,但是如果名称中包含[数字 字母 下划线]以外的字符,则会导致插件崩溃.
本插件在自己的服务器上测试了两周,没有任何问题.
测试环境: pufferFish1.21.4
服务端版本必须高于1.21.4(包含),否则会报错崩溃(插件使用setModel方法,这个方法只有1.21.4才开始有)
解释:因为插件用items.yml的name去掉空格作为NamedspaceKey的key参数
修复原理:通过修改字节码在读取item cache的类里添加了一个方法getFileName用来把含有非规范内容转换为规范内容的toHexCode再用于namedspaceKey.使插件支持汉化物品以及机器.
*本站还有MTP插件的全config汉化文件*
下面是自己的使用经验:
如何添加自己的机器:
新建插件,依赖于此插件.机器类继承于Device,填充方法.
在MineItems类里的几个HashMap添加自己的机器
在items.yml按照格式添加自己的机器
监听Bukkit的BlockBreakEvent,isDevice判断什么的复制Minoistener,在事件里给方块添加NamedspaceKey,对象和传进MineItems的HashMap里的一样.
完成!
逻辑实现参考自带的其他设备,没混淆
------yazi_au
本插件在自己的服务器上测试了两周,没有任何问题.
测试环境: pufferFish1.21.4
服务端版本必须高于1.21.4(包含),否则会报错崩溃(插件使用setModel方法,这个方法只有1.21.4才开始有)
解释:因为插件用items.yml的name去掉空格作为NamedspaceKey的key参数
修复原理:通过修改字节码在读取item cache的类里添加了一个方法getFileName用来把含有非规范内容转换为规范内容的toHexCode再用于namedspaceKey.使插件支持汉化物品以及机器.
*本站还有MTP插件的全config汉化文件*
下面是自己的使用经验:
如何添加自己的机器:
新建插件,依赖于此插件.机器类继承于Device,填充方法.
在MineItems类里的几个HashMap添加自己的机器
在items.yml按照格式添加自己的机器
监听Bukkit的BlockBreakEvent,isDevice判断什么的复制Minoistener,在事件里给方块添加NamedspaceKey,对象和传进MineItems的HashMap里的一样.
完成!
------yazi_au