• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

导航 【入门必读】BDS 插件开发 介绍与整理

1. 简介:什么是BDS插件

Bedrock Delicated Server(下称BDS)作为Mojang官方推出的全特性基岩版服务器,在世界范围内得到了广泛的欢迎和使用。和Java版类似,为了扩展原版服务端,使其具备一些原版所无法做到的能力,BDS插件开始逐渐得到发展。

2. 介绍:插件开发

BDS插件在底层使用C/C++语言,将插件通过系统机制注入到BDS服务端进程中,并通过对某些特定函数的 Hook 来实现对游戏的修改和自定义。

由于使用到的机制相对复杂,基础的BDS插件开发难度相对较大。
因此,有许多优秀的 C++ 开发框架涌现而生。他们都或多或少地对一些常用的BDS开发接口进行了封装,给开发者们开发插件提供了便利,也使得插件开发完成后后续的维护城本大为降低。这些开发框架,我们统称为“插件加载器”。

继 C++ 之后,又有许多开发者在底层接口之上开发了“脚本插件加载器”,让开发者们可以使用自己熟悉的脚本语言(js,python,lua等)为BDS编写插件。他们的到来,进一步降低了插件开发门槛。


3. 圈子现状

现在,这个圈子正处于蓬勃发展,百花齐放的阶段。

如今,如果有兴趣为BDS开发插件,你有多种选择:你既可以使用现有加载器提供的接口进行脚本插件的开发;也可以针对特定的特殊功能自己编写底层BDS插件,自行通过 Hook 操作BDS内部的函数和机制;甚至,你可以编写自己的加载器,完成从零起步构筑整座大厦的梦想。





=== 名词解释 ===

目前,BDS插件系统主要大概可以分为四个层级:底层、第一层、第二层和应用层。每个层级都有自己对应的任务,对下使用接口,对上提供服务。简单做一下名词解释:

1. 底层:【Bedrock Delicated Server】
官方BDS服务器程序(核心)。一切游戏内容的核心,插件正是通过修改核心的部分功能来达到自己的目的。

2. 第一层:【底层加载器】
依赖底层的BDS服务器核心,为插件平台提供“挂钩”注入服务。不同注入器平台互不兼容。
可以把他们类比于插件框架的启动器。目前,这一层已经基本不再单独存在,而是由LiteLoaderBDS插件框架使用的一个组件PreLoader实现。具体技术细节不必深究,了解即可。

3. 第二层:【插件框架】
被第一层的加载器加载到BDS中,为插件开发提供与底层交互的接口和代码执行环境
可以把他们类比于Java插件界的Forge、Fabric等框架。
目前,使用最为广泛的为 LiteLoaderBDS C++插件框架,以及同属于同一项目的 LiteLoader ScriptEngine 脚本插件框架 以及 LiteLoader.NET 托管插件框架。他们构成了如今BDS插件最重要的支撑体系。

4. 应用层:【插件】
依赖于第二层的插件平台,是实现具体功能的Mod。如行为日志插件、反作弊插件、黑名单插件等等。腐竹们平时从平台下载安装的各种插件就属于这一层的产物。





=== LiteLoaderBDS 插件框架 ===

LiteLoaderBDS 是目前使用最为广泛的、由社区积极开发维护的 Minecraft 服务端插件加载器,为基岩版专用服务器—— Bedrock Dedicated Server 提供插件开发支持 和 插件加载服务,弥补了官方行为包开发接口长期以来存在的一些不足。

LL 提供了海量的API、强大的事件系统以及大量封装的开发基础设施接口,为拓展基岩版BDS 的更多玩法和功能提供了坚实的基础。通过插件,可以很容易地拓展BDS的功能,相关开发易于学习,且开发方式比较灵活。

项目支持使用 C++、JavaScript、Lua、C# 等各种语言编写插件。同时,插件不需要随着BDS 版本更新而不断修改代码,仅需本项目在底层适配更新即可,给插件开发与维护带来了很大的便利。

项目的 MineBBS 主页详见:https://www.minebbs.com/liteloader/
项目的 GitHub 主页详见:https://github.com/LiteLDev/LiteLoaderBDS
项目的文档站详见:
https://docs.litebds.com/

⭐我们希望听到你的反馈和贡献⭐



=== 光荣退休榜 ===
- BedrockX
- 梦故(DT)
- BDS.NetRunner(CSR)
- BDL
- BDXCS
- BDXGLang
- BDSJSRunner(老JSR)
- IronPythonRunner
- IronLuaLoader
- NetLuaRunner
- BDSJavaRunner
- LuaLoadCore
- LiteLuaLoader
- ElementZero
- NetJsRunner
- IronLuaRunner


在漫长的历史过程中,这些曾经历史上名扬一时的加载器为BDS圈的发展做出了不朽的贡献。感谢他们对社区发展做出的积极贡献!

 
最后由版主编辑于:
已更新(关系越来越复杂了啊啊啊啊啊:喷水:
LiteLoader与CSR大有一统天下之势
 
重构了一下 看起来不那么乱了
顺手顶贴 :evil:
 
已更新
如果有修改建议可以联系作者
 
ElementZero已由第三方重新启动维护,链接已更新
是否加入图表视维护情况而定
图表计划重新设计,同时编写更多相关介绍文字
 
内容更新,增加简单的开发圈子的介绍。
 
已更新。
水印非常抱歉。。。。
emmm反正不影响大家看就好:evil:
 

1. 简介:什么是BDS插件

Bedrock Delicated Server(下称BDS)作为Mojang官方推出的全特性基岩版服务器,在世界范围内得到了广泛的欢迎和使用。和Java版类似,为了扩展原版服务端,使其具备一些原版所无法做到的能力,BDS插件开始逐渐得到发展。

2. 介绍:插件开发

BDS插件在底层使用C/C++语言,将插件通过系统机制注入到BDS服务端进程中,并通过对某些特定函数的 Hook 来实现对游戏的修改和自定义。

由于使用到的机制相对复杂,基础的BDS插件开发难度相对较大。
因此,有许多优秀的 C++ 开发框架涌现而生。他们都或多或少地对一些常用的BDS开发接口进行了封装,给开发者们开发插件提供了便利,也使得插件开发完成后后续的维护城本大为降低。这些开发框架,我们统称为“插件加载器”。

继 C++ 之后,又有许多开发者在底层接口之上开发了“脚本插件加载器”,让开发者们可以使用自己熟悉的脚本语言(js,python,lua等)为BDS编写插件。他们的到来,进一步降低了插件开发门槛。


3. 圈子现状

现在,这个圈子正处于蓬勃发展,百花齐放的阶段。

如今,如果有兴趣为BDS开发插件,你有多种选择:你既可以使用现有加载器提供的接口进行脚本插件的开发;也可以针对特定的特殊功能自己编写底层BDS插件,自行通过 Hook 操作BDS内部的函数和机制;甚至,你可以编写自己的加载器,完成从零起步构筑整座大厦的梦想。





如今,BDS模组圈 各大平台的关系较为复杂
因此此贴的目的在于索引记录相关信息
给萌新们提供思路指导 方便快速了解圈子内的发展情况,快速上手
也有意作为各平台的索引贴 便于大家查找

如有修改意见或者添加意向,欢迎回复说明!



=== 名词解释 ===

目前,BDS插件系统主要大概可以分为四个层级:底层、第一层、第二层和应用层。每个层级都有自己对应的任务,对下使用接口,对上提供服务。简单做一下名词解释:

1. 底层:【Bedrock Delicated Server】
官方BDS服务器程序(核心)。一切游戏内容的核心,插件正是通过修改核心的部分功能来达到自己的目的。

2. 第一层:【加载器】
依赖底层的BDS服务器核心,为插件平台提供“挂钩”注入服务。不同注入器平台互不兼容。
可以把他们类比于插件平台的启动器

(举例:BedrockX, BDXCore, LiteLoader 等)

3. 第二层:【插件平台】
需要被第一层的加载器加载到BDS中,为插件开发提供与底层交互的接口和代码执行环境
可以把他们类比于Java插件界的Forge、Fabric等框架。
(举例:BDSNetRunner, BDSpyRunner, .NetJsRunner, LiteXLoader 等)


4. 应用层:【插件】
依赖于第二层的插件平台,是实现具体功能的Mod。
为不同插件平台开发的插件,除有特殊说明外,一般都互不兼容。
(举例:各家的经济插件、行为日志监控插件、备份插件等)




=== 图解 ===

由于上述体系在实际工作过程中呈现逐层加载的过程,于是借助此图来呈现当前仍然在继续维护更新的加载器的的大概情况,方便开发者和服主们根据情况配置安装。
图中的箭头,由加载器指向其支持的插件平台

浏览附件19463
图中,圆括号内为圈内常见的称呼缩写,方括号内为这个插件平台支持的开发语言

标为 [蓝色] 的平台有比较好的发展潜力,正在活跃发展,有比较厚重的生态积淀
标为 [灰色] 的平台为正常状态
标为 [浅灰色] 的平台已经长久未有插件更新或活跃



=== 光荣退休榜 ===
- BedrockX
- BDL
- BDXCS
- BDXGLang
- BDSJSRunner(老JSR)
- IronPythonRunner
- IronLuaLoader
- NetLuaRunner
- BDSJavaRunner
- LuaLoadCore
- LiteLuaLoader
- ElementZero


在漫长的历史过程中,他们也同样为BDS圈的发展做出了不朽的贡献。
让我们不要忘记他们!



=== 附录 ===

【导航】各平台链接简单整理
注:若地址发生变化请回帖提醒我

[加载器 + 插件平台] 梦之故里 简易插件注入启动器
https://www.minebbs.com/resources/1150/
[加载器 + 插件平台] BedrockX —— 新一代Mod框架 For BDS Win
https://www.minebbs.com/threads/bdx-bedrockx-mod-for-bds-win-new-1-14-x.3404/
[加载器+ 插件平台] ElementZero
https://github.com/Shock95x/ElementZero
[加载器+ 插件平台] BDSX - 基于nodejs的强大插件框架
https://github.com/bdsx/bdsx
[加载器 + 插件平台] BDXCore —— DLL Mod加载器核心与SDK
https://www.minebbs.com/threads/bdxcore-dll-mod-sdk.4501/
[加载器 + 插件平台] LiteLoader——新时代的插件加载器
https://www.minebbs.com/resources/bdsliteloader.2059/

[插件平台] BDSNetRunner——Win版BDS下.Net扩展插件运行平台
https://www.minebbs.com/resources/api-bdsnetrunner-win-bds-net.1516/
[插件平台] 梦之故里 WIN版BDS JS插件平台 BDSJSRunner
https://www.minebbs.com/threads/win-bds-js-bdsjsrunner.2993/
[插件平台] Net版JS插件运行平台
https://www.minebbs.com/resources/api-net-js.1875/
[插件平台] BDSPyrunner
https://www.minebbs.com/resources/bdspyrunner.2079/
[插件平台] IronLuaRunner
https://www.minebbs.com/resources/api-ironluarunner.2071/
[插件平台] PFJSR-Net版JS插件运行平台-采用Jint解释器
https://www.minebbs.com/resources/api-net-js-jint.2105/
[插件平台] BDSJavaRunner - Win版BDS下Java插件运行平台
https://www.minebbs.com/resources/bdsjavarunner-win-bds-java.2259/
[插件平台] LiteLuaLoader --新时代的Lua加载器
https://www.minebbs.com/resources/litelualoader-lua.2390/
[插件平台] LiteXLoader - 划时代 x 跨语言BDS脚本插件框架
https://www.minebbs.com/resources/litexloader-x-bds.2670/
哇,开发,原来也是这么难的吗?
 
哇,开发,原来也是这么难的吗?
由于逆向工程的缘故,确实开发的难度不小
如果大佬有兴趣,欢迎加入我们~
 
感谢大家的支持
如果有什么不全的话欢迎补充说明
 

在线会员

  • 玩世不恭又何妨
  • Loliiiico
  • 谷鸽
  • xiaokong233
  • make_nat
  • mc506lw
  • pingguomc
  • 浓浓会发光
  • 小鸡
  • f0s1zen
  • MrXiaoM
  • frea
  • Chuyi
  • 爱无差异
  • Xhl_laser
  • 76456355275
  • XingZi_Nina
后退
顶部 底部