Hueihuea 发表于 2022-2-20 18:34
是自定义ClassLoader
也就是你自己的 另外你也不应该直接使用系统的(你直接使用系统的 但系统的Cl ...
原来是这样吗
我再试试... 我第一次做这种的,
emm 这些不是前置的插件,而是。。emm
就类似于 java ... -classPath "" ...
"classPath" 中的内容
Hueihuea 发表于 2022-2-20 19:00
直接丢plugin 一样可以用
你如果是mod服 你直接丢mods都能用
???这样也行。。。。但是那样太丑了啦(
而且你是想直接在服务端jvm上跑一个mirai机器人程序吗
其实我更推荐你单独跑一个mirai程序,然后用其他方式通信,比如http
而不是直接塞进spigot里
因为这确实可能导致问题,
比如你要导入的netty
mc的lib里有这个类 你强行导入可能导致版本冲突
虽然自定义的classloader+字节码技术能版本隔离来解决这个问题
但我还是不推荐你这么做
其实我更推荐你单独跑一个mirai程序,然后用其他方式通信,比如http
而不是直接塞进spigot里
因为这确实可能导致问题,
比如你要导入的netty
mc的lib里有这个类 你强行导入可能导致版本冲突
虽然自定义的classloader+字节码技术能版本隔离来解决这个问题
但我还是不推荐你这么做
BlessAzek 发表于 2022-2-20 19:07
???这样也行。。。。但是那样太丑了啦(
可是 plugins 文件夹不是只能存放插件吗。。。
放入其它不是插件的东西会报 Could not load xxxx in folder 'plugins'
BlessAzek 发表于 2022-2-20 19:07
???这样也行。。。。但是那样太丑了啦(
但是不知道为毛要审核。
我觉得你直接通过ClassLoader载入也是不行的
因为我刚刚发现你的类库里有netty(别的也可能冲突)
minecraft已经有这个类库了
可能会有版本冲突
虽然你可以用classloader+字节码黑魔法来解决这个问题
但这对你来说可能太难了
我觉得最好的解决办法是你单独跑一个mirai程序
然后用http通信
BlessAzek 发表于 2022-2-20 19:09
可是 plugins 文件夹不是只能存放插件吗。。。
放入其它不是插件的东西会报 Could not load xxxx in fold ...
你放mods也报错
他会告诉你这不是一个mod 但我们(forge)仍然会把他当作类库载入
插件我记得也可以的
Hueihuea 发表于 2022-2-20 19:10
我刚刚给你发了条回复
但是不知道为毛要审核。
我觉得你直接通过ClassLoader载入也是不行的
那就删掉,有了的就不弄了(
能减一点是一点
BlessAzek 发表于 2022-2-20 19:13
那就删掉,有了的就不弄了(
能减一点是一点
你有没有考虑过一个问题
他用的netty新版本 有的方法旧版本没有
当然也可能没有这种问题 如果这样子的话你当然可以试试
 本帖最后由 QingyuOvO 于 2022-2-20 23:44 编辑 
唉,算了,想了想,还是应该对新手宽容一点。毕竟不是所有人都有闲工夫静下心来研究的。
我2016年前后尝试开发过一款群组服转发器(类似于BC),其中就是用了打包在jar中的类库和需要加载的插件。我可以非常负责的告诉你,我提到的那篇帖子绝对能解决你的问题,如果你认为不能解决,我建议你重复阅读,直到你认为能够解决为止。
BlessAzek 发表于 2022-2-20 17:08
我承认我是一个初学者,
但你也不用给出这样的回答,
不用这样阴阳怪气的哈,
唉,算了,想了想,还是应该对新手宽容一点。毕竟不是所有人都有闲工夫静下心来研究的。
我2016年前后尝试开发过一款群组服转发器(类似于BC),其中就是用了打包在jar中的类库和需要加载的插件。我可以非常负责的告诉你,我提到的那篇帖子绝对能解决你的问题,如果你认为不能解决,我建议你重复阅读,直到你认为能够解决为止。