394151612
如题,服务端核心为paperspigot 1.12.2

现在希望使用WeaponMechanics这款插件。

WeaponMechanics | Guns in Minecraft | 1.12 - 1.19.4 | SpigotMC - High Performance Minecraft


这个插件目前只支持java16,但我的服务端中有些适配1.12的老插件并不能支持java16开服。

所以我安装了这个插件的1.11.10Beta版本,这个版本仍然支持java8



上述为服务器基本环境,接下来是实际的问题

WeaponMechanics拥有一个附属插件WeaponMechanicsCosmetics

WeaponMechanicsCosmetics | Guns in Minecraft | 1.12.2 - 1.19.4 | SpigotMC - High Performance Minecraft

由于我主插件用的是老版本,所以我就在插件update中查询了一下1.11.10(我目前使用版本)的发布日期

其显示的是Oct 2, 2022,所以我就在这个附属插件的下载列表里找到了该日期的同样版本。

但在安装之后却出现错报


明明是同一个日期发布的附属,且主插件也正常加载,但附属插件却无法安装,希望有使用过WeaponMechanics能帮忙看看或者推荐下大概应该使用什么方法解决这个问题



白可乐
这个插件的2.2.10版本的更新日志中写了修复了1.12.2的启动错误,你可以更新尝试一下

394151612
白可乐 发表于 2023-5-31 02:06
这个插件的2.2.10版本的更新日志中写了修复了1.12.2的启动错误,你可以更新尝试一下
...

并不行 因为他新版本只支持java16,但我的服务端处于1.12,只能用java8

krewella
使用jadx jd luyten recaf其中之一定位到 skincommand.class 97行 查看调用的方法是否不存在或不兼容 可能要对插件逆向修复

桃源村服主
估计这个附属也是需要java16环境的,因此报错
我觉得大体2种解决方案:
(1)联系作者,友好询问他能否用java8环境编译插件
(2)研究下那些老插件为什么不支持java16。
其中第二点,那些1.12的老插件应该使用java8编译的,但是jdk是向下兼容的,所以我并不是很理解为什么会这样,烦请楼主更详细地描述这个问题

小钢炮君
在提供的信息中看到 寻找不到 com.mojang.brigadier.arguments.ArgumentType 这个类。 通过查询可知这个类是在1.13被加入spigot服务端的,在1.12.2并没有打包这个class 所以会产生NoClassFoundError  

Finvoler666_
这个处境的确很难受
但是我也没有很好地解决办法
1.可以上交bug等待修复
2.自己对插件进行修复,删除1.13以上版本的内容
3.保证主插件运行,降低主插件版本(新的附属大概率会兼容旧的主插件,但同时兼容可能会出bug,反正我是这样想的)

1909瓜
394151612 发表于 2023-5-31 03:25
并不行 因为他新版本只支持java16,但我的服务端处于1.12,只能用java8

可以尝试使用java17 我在本地测试paper-1.12.2-1620的服务端可以使用jdk17开启 并且运行正常

394151612
小钢炮君 发表于 2023-5-31 13:37
在提供的信息中看到 寻找不到 com.mojang.brigadier.arguments.ArgumentType 这个类。 通过查询可知这个类 ...

但这个插件是主插件开源了 扩展插件没有开源。
我想修复也无法修复,我查看了一下这个插件的更新日志 作者在新的插件版本中修复了这个bug
但难顶的事情是 新的版本不支持java8了

小钢炮君
394151612 发表于 2023-6-3 23:43
但这个插件是主插件开源了 扩展插件没有开源。
我想修复也无法修复,我查看了一下这个插件的更新日志 作 ...

那确实难顶 要不试试搞个插件打包相关类进去试试