- 注册
- 2021/01/15
- 消息
- 678
- 金粒
- 98,293金粒
有个更美的名字,叫做 Reunite In Plugins。
每一个曾经在沙场披荆斩棘的远行者,都终将于此重逢。
目前,LiteLoaderBDS加载器已经完成了
AIP的使命
并在向更规范的设计方向
继续发展
点击 https://docs.litebds.com
继续关注LiteLoaderBDS
AIP的使命
并在向更规范的设计方向
继续发展
点击 https://docs.litebds.com


BDS圈子可谓是人才辈出。
在Addon的API发展不太能够满足目前需求的情况下,各路大佬们纷纷拿出了自家的加载器方案,各种各样的语言支持为BDS插件的百花齐放奠定了坚实的基础。
不过,随着时间的推移,也有问题渐渐暴露出来。
这个帖子给出了目前大概的关系整理,从中可以看出,其实整个体系的复杂程度正在不断上升。
同时,各加载器各自为政的现实很难改变,缺少一定程度的整合,一个很明显的例子就是BDS根目录充斥着各加载器的插件文件夹以及资源DLL,显得混乱不堪,配置插件对于不少对圈内了解不多腐竹们来说是一项比较头疼的任务。
由此,All in plugins (AIP) 的想法应运而生:类似于Linux界的FHS,希望各加载器与插件作者可以在保证兼容性的前提下尽量按照一定的标准进行整合,提升整个环境的使用舒适度。
发一个对比图:
【BDS全加载器(几周前)】

【Nukkit】

类似于Nukkit和Forge这样的系统,他们成功的重要因素之一就是统一而清晰的插件组织架构。
为了圈子继续发展能有一个更清楚的环境,如今提出以下倡议:
推荐将各插件和面板相关的文件和数据收纳到plugins目录中,在目录里按照类似这样的架构安排:

- backup目录存放各种备份数据,包括存档备份以及插件的数据备份之类的东西
- logs目录存放各种日志
- plugins目录第一级存放各类型插件,各插件如有需要,在其第二级创建单独的目录存放自己的配置文件和相关数据。
- 其中plugins/lib存放各插件的依赖库,比如说python36 lua54等等
- 其他类似chakra这种无法移动的文件还是放在根目录中
当然,鉴于有可能会有某些奇奇怪怪的冲突问题,有冲突的加载器也可以通过在plugins中设置属于各自的插件目录来避免问题。
其实,像PFJS这些加载器已经开始提供配置文件可供修改自家的插件目录了。事实证明,从技术层面来说,这样的设计是可行的。只要各加载器作者合理利用二级后缀(比如.net.js),或者提供一下可供修改的插件目录设置项,就可以很好地避免冲突的发生。
大概整理一下,如此:
【对于加载器开发者】
倡议将自家的插件加载目录移动到plugins或者其子目录中,将运行库移动到plugins/lib中,将其他相关数据上述按位置储存
【对于插件开发者】
倡议将自家插件的配置文件和数据都放置到plugins中对应名字的子目录中
【对于整合包作者和腐竹】
将插件直接丢进plugins目录中正确的位置即可
这样做的目的,第一,是为了让整个环境变得更加清楚可控,插件相关的配置数据安排在一个统一的位置,不容易造成误操作和混乱的问题;第二,也是最重要的一点,那就是给插件更新迭代带来了极大的便利,安装插件时也只需要简单地覆盖目录即可,数据方便统一管理,无论是开发者还是腐竹都可以从中获益。
给出一个不错的样例。是不是看起来舒服太多了?

目前,众多加载器开发者和整合包作者都已经开始相应倡议,相信不需要太长时间,简单的整合就可以达到很好的效果。希望各位开发者们也可以共同支持一下这个小小的倡议。简单的想法,为了BDS圈可以更好地成长

最后编辑: