Closed Liangbai2333 closed 3 months ago
我只能想到把整个前置的源码复制到新项目去。。
由于relocate的原因,无法使用
一般情况下:让插件直接使用relocate后的API
特殊情况:如果不得不使用非relocate的,需要修改Classloader,让非relocate类执行relocate类
服务器报错,也无法使用,该怎么解决这个问题
有详细报错吗
由于relocate的原因,无法使用
一般情况下:让插件直接使用relocate后的API
特殊情况:如果不得不使用非relocate的,需要修改Classloader,让非relocate类执行relocate类
插件用跳过relocate后的,但是插件自身还会relocate to $package.taboolib,而我前置还是taboolib没变,会导致NoClassDef这样的错误 如果我把插件也跳过relocate了,bukkit就会报taboolib.platform.BukkitPlugin已经重复加载,没有什么很好的解决办法吗,我整个前置几乎要和taboolib互通去
我的使用场景就是再自己封装一些mod的api
使用前置的插件不打包Taboolib,也就是全依赖前置插件的Taboolib,自己使用的话就可以这样
使用前置的插件不打包Taboolib,也就是全依赖前置插件的Taboolib,自己使用的话就可以这样
那我使用前置的插件不就不好使用taboolib 了吗,我可能会用到与前置不同的模块,全依赖于前置的taboolib,好像比较奇怪?
不知道你说的是哪种 api 模式?类似 protocolib 还是 adventure?
不知道你说的是哪种 api 模式?类似 protocolib 还是 adventure?
哈,和这个有关系吗,比如说我不想每次都重复写一遍解析配置文件中的UI,我直接在前置写一个loadUIFromConf(taboolib.module.configuration.Configuration)
我懂了,你要做的不是某种api,而是基于tb的扩展。对此目前没有办法。
只能每个插件打包一份,或是集中使用你 api 的 config 工具(例如借助 kotlin typealias)
我懂了,你要做的不是某种api,而是基于tb的扩展。对此目前没有办法。
只能复制整个源码过去了吗555
理论上可以暴力:
运行时立马替换PluginClassLoader的parent为自己的ClassLoader,然后让自己的ClassLoader转发Taboolib类
你这操作没人懂的。
我懂了,你要做的不是某种api,而是基于tb的扩展。对此目前没有办法。
只能复制整个源码过去了吗555
把你的 api 发布到你自己的仓库里,你的插件可以打包使用
对此你可以参考 tb 的外挂模块 universal-mythic
我建议的方法是自己实现一套插件加载系统
我建议的方法是自己实现一套插件加载系统
又来了,你咋不让他用kts写插件?
别人来问问题,要么能做要么不能做,不要给出一些看似行得通的无效答案。
别人来问问题,要么能做要么不能做,不要给出一些看似行得通的无效答案。
不好意思,我想的方法都很麻烦
对此你可以参考 tb 的外挂模块 universal-mythic
好好好,感谢感谢🙏
我建议的方法是自己实现一套插件加载系统
不是哥们,越来越抽象了,我不太懂
别人来问问题,要么能做要么不能做,不要给出一些看似行得通的无效答案。
不好意思,我想的方法都很麻烦
没人拒绝你想很麻烦的办法,但是你又不提供具体的方案让他们去猜?他们要是做得到就不会来这里问问题。
对此你可以参考 tb 的外挂模块 universal-mythic
好好好,感谢感谢🙏
https://reposilite.com/ 用这个 10 分钟搭建自己的仓库。如果你不想来回复制 jar 的话。
对此你可以参考 tb 的外挂模块 universal-mythic
好好好,感谢感谢🙏
https://reposilite.com/ 用这个 10 分钟搭建自己的仓库。如果你不想来回复制 jar 的话。
学到了,非常有帮助,爱了
taboolib开发的插件作为前置的话,由于relocate的原因,无法使用,跳过relocate就会重复加载taboolib.platform.BukkitPlugin,服务器报错,也无法使用,该怎么解决这个问题