LiteLoaderBDS

From Minecraft基岩版开发Wiki
LiteLoaderBDS
软件与应用程序
开发作者
运行平台
  • WindowsLinux
编写语言
最新版本
2.12.0
发布日期
2021/01/28
年龄分级
?
程序大小
标准安装包约 40MB
授权协议
LGPLv3(SDK部分采用MIT协议)
开源情况

LiteLoaderBDS(简称LiteLoaderLL)是BDS的第三方插件加载器。是一款强大,易用,且拥有广泛社区和大量已发布插件的插件加载器。LiteLoaderBDS处于积极维护状态中,是目前最流行的BDS插件加载器。[1]

功能概述[edit]

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

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

提供插件加载能力的基础上,LiteLoaderBDS还修复BDS中的一些漏洞,用以确保的服务器的稳定性和安全性,并广泛使用SEH异常保护框架,降低服务器的崩溃风险。

LiteLoader亦自带了一些辅助性的功能,如可以开关BDS的一些功能,并提供了一个异常NBT的检测和拦截功能。

在提供上述与BDS直接相关的功能的基础上,LiteLoader还提供有经济核心 LLMoney 权限组模块 PermissionAPI 粒子绘制器 ParticleAPI 等子模块为插件开发提供便利。

未来展望[edit]

[3]

LiteLoader 3[edit]

LiteLoaderBDS开发者声称将会在一年内迎来完整重构的全新版本:LiteLoaderBDS 3

  1. 在LiteLoaderBDS 3中,各重要组件将会进一步解耦合。这意味着LiteLoaderBDS将会成为一套工具链,包括多个不同的模块。
  2. 在LiteLoaderBDS 3中,LiteLoader将会更好的耦合LiteLoaderBDS插件和基岩版Addon,使得开发者能够制作类似Java版的Mod。
  3. LiteLoaderBDS 3中,将会引入插件元信息(metadata)的概念,只需要开发者在metadata.json中编写插件依赖信息,玩家就可以根据提示下载对应的插件,或通过LitePackageManager自动安装所有前置插件。
  4. LiteLoaderBDS 3中会提供一些统一的数据存储接口,用以规范插件的数据存储,同时便于用户正确配置,迁移数据。

相关链接[edit]

LiteLoaderBDS文档站 https://docs.litebds.com/zh-Hans/

LiteLoaderBDS Forum 论坛 https://forum.litebds.com/

Minebbs上的LiteLoader插件发布分区 原生插件 脚本插件

历史[edit]

LiteLoader最初基于BedrockX[4],在2.0版本进行了完全重写。

以下内容参考来源:[5][6][7]

LiteLoader
0.1.0发布于2021年1月28日。
The first version
0.1.1发布于2021年2月6日。
[Chakra]修复一个从BedrockX 0425遗留的错误,得以兼容BDSPyRunner 0.2.2以及反作弊(jfishing)
0.1.0只需要替换chakra.dll即可
0.1.2发布于2021年2月7日。
[Chakra]新增preload plugin,将需要preload的插件(如csr)放入plugin_preload即可加载
将新的chakra.dll与liteloader.dll覆盖至bds目录即可更新
0.1.3发布于2021年2月8日。
[LiteLoader]新增helper.cpp
新增ServiceLocator.cpp
新api: runcmd, runcmdEx
0.1.4发布于2021年2月11日。
新增基本的事件api
0.1.5发布于2021年2月15日。
加入真命令注册
添加命令块执行事件
添加注册命令事件
添加一系列事件监听
新添部分api
详见github commits‌[需要与英文更新日志校对]
0.1.6发布于2021年2月16日。
xuiddb
0.1.7发布于2021年2月20日。
修复插件启动无法互相读取依赖的bug
新添GUI api
新添更多event
新添 getallplayer api
修复 teleport api的bug
移除部分不可用api
本版本已支持LLMoney、LLtpa、LLhelper加载
0.1.8发布于2021年3月4日。
添加api: sendtext
添加更多的事件
修复中文文件夹造成服务器控制台不输出的bug
0.1.9发布于2021年3月6日。
数据目录以及plugins_preload目录换了位置
plugins_preload目录改为plugins\preload\
xuiddb数据所在位置改为plugins\LiteLoader\xuiddb\
0.1.8及以下版本用户请在开服前执行 old2new.bat 以进行数据迁移
0.2.1发布于2021年3月12日。
兼容1.16.210
添加/version命令
添加更新检查
添加玩家预加入事件
0.2.2发布于2021年3月14日。
修复一些bugs
修复生物死亡事件
修复更新检测
注意
请下载lib.7z并解压到BDS所在目录
别忘了更新Chakra.dll
0.2.3发布于2021年4月5日。
移除preload文件夹
添加plugins\preload.conf
修改更新检测
修复runCmdEx
修复一些bugs
1.0.0发布于2021年4月10日。
支持1.16.220
修复wplayer::teleport
更新preload功能,现在在插件文件夹内检测到csr存在时会自动preload
1.0.1发布于2021年4月25日。
修复一些不可用的Api
1.0.2发布于2021年6月9日。
支持1.17
1.0.3发布于2021年7月3日。
更新SymDB2
1.1.0发布于2021年7月14日。
适配1.17.10
1.1.1发布于2021年7月25日。
部分事件Api的调整
1.1.2发布于2021年9月5日。
修复一些bugs,添加一些新的api
1.1.2.1发布于2021年9月5日。
修复GUI发包崩溃
1.2.0发布于2021年9月22日。
兼容1.17.30
Please run SymDB2.bat to generate .symdb2 file
1.2.1发布于2021年9月25日。
Fixed SymDB2.exe
Added getPlayerLang
Fixed getAvgPing
Added getPing
Added server version check
1.2.2发布于2021年10月3日。
Added PacketApi
  • sendMessage
  • Transfer
Optimized OffsetHelper
Added Fix DisconnectPacket crash
Fixed the listening port
1.2.3发布于2021年10月4日。
修复了1.2.2中存在的TextPacket的bug
1.2.4发布于2021年10月5日。
修复liteloader::getIP by @xiaoqch
1.2.5发布于2021年10月20日。
Updated to 1.17.40.06.
Added offPlayer::getUserEntityIdentifierComponent
Fixed CommandSelectorBase size by @xiaoqch
LiteLoader 2.x
2.0.0-pre-1发布于2021年12月9日。适配基岩版1.18.1。
Stronger API and Event system
Friendly interfaces
Countless low-level APIs ready to use immediately WITHOUT complex symcall
Utils to help you develop more easily
Auto upgrade system
High performance and light weight
Builtin CrashLogger system
2.0.1-pre-2发布于2021年12月13日。
重写logger系统。
修复大量问题。
2.0.2-pre-3发布于2021年12月16日。
修复NBTAPI, PlayerAPI和其他api的问题。
改进统一Logger。
该版本稳定性高,可用于生产环境。
2.0.3发布于2021年12月22日。
修复LL与LLSDK部分问题。
提供便捷的方式来获取和更新LLSDK,供插件开发。
已确保稳定性:你可以准备将ll2.0用于生产环境。
在未来会有更多有趣好玩的玩意。
2.0.4发布于2021年12月29日。
修复deleteScore无效。
修复setDisplay崩溃。
禁用Symdb2.exe窗口的关闭按钮。
Player::runcmd支持假指令。
修复Drop事件拦截后Q丢出和死亡的物品消失。
修复NPC崩服。
矿车容器处理。
PlayerPlaceEvent可以拦截门床红石等物了。
修复ContainerChangeslotnum错误。
修复防刷物一个误判问题。
2.0.6发布于2022年1月11日。
重要:修复BDS漏洞CVE-2021-45383和CVE-2021-45384
修复NPCCmdEvent
修复ChangePlayerDimEvent事件的问题。
修复计分板API错误的问题。
自动更新恢复。
2.0.7发布于2022年1月20日。
修复PlayerJoinEvent无法正常触发的bug。
修复PlayerChangeDimEvent错误的问题。
修复PistonPushEvent错误的问题。
修复breakBlockNatrally失效的问题。
修复内置命令权限导致的隐私问题。
优化了流水事件的性能。
删除了某些忘记删除的调试代码。
修复了有关FMT库的某些问题。
修复了PluginOwnData库的毛病,ABI变动,涉及到的插件需要重新编译。
为控制台颜色输出增加了开关,面板用户可以关闭颜色输出以避免乱码。
2.0.8发布于2022年1月23日。
修复PlayerAttackBlockEvent报错。
添加监听PlayerExperienceAddEvent
添加全局变量AllowListFile
向玩家隐藏LiteLoader版本查询。
2.0.9发布于2022年1月27日。
修复玩家睡觉丢东西导致服务器假死(拦截版本)(action最新版本完美修复,非拦截丢出,后续更新!)
新添Changable Event Api
移除Logger的Lock
修复指令注册的Bool参数
2.1.0发布于2022年2月12日
[重大变更]

LiteXLoader项目(脚本插件加载器)被合并到LiteLoaderBDS项目中,LXL成为LL的一个子模块。 LiteLoaderBDS将继续更新,作为C++、Go、Js、Lua和其他语言的通用加载器。

所有以前的LXL插件将继续在新的LL版本下正常运行,所有现有的API将保持不变。
适配BDS 1.18.11
[新功能]
  • 更好看的控制台:修改了BDS控制台日志的输出外观,使整体更加美观和直观
  • 检测是否重复运行同一BDS,如果出现则提示是否杀死进程,以避免端口冲突引起的问题
  • 配合服务端allowlist更新,自动搬运whitelist到allowlist文件
  • 禁止BDS默认强制占用19132端口,以避免其引起的一系列问题
  • 添加ProjectileCreatedEvent、PlayerBedEnterEvent事件
  • 添加了新的FormUI 表单接口,并提供了样例文档
  • 添加了ll系列插件管理命令,后台执行help ll查看相关用法
  • 增加了方便的addon安装器:将addon压缩包放置到plugins/AddonHelper/目录下,开服时将自动安装addon到当前存档
  • 增加了新的allowlist api,方便在代码中处理白名单
  • 新增了多项配置设置到配置文件,具体设置内容请参考文档站文档
  • 为异常日志增加了堆栈跟踪信息,以方便地追踪问题
  • 重写了SNBT输出,将格式化性能提高数倍
[BUG修复]
  • 修复了脚本引擎无法在wine工作的问题
  • 修复床引起的一个bug
  • 修复ProjectileSpawnEvent, NpcCmd等数个事件
  • 修复了头文件中所有的枚举类型
  • 修复getAllEntities, getEnderChestContainer等数个接口
  • 修复通过数据包可以异常移动的bug
  • 修复mobhurt、mobdie事件溯源不正确的问题
  • 脚本引擎重写了RPC通信系统,彻底解决曾经的丢包问题
  • 其他大量较小的修复和整理
  • 2.1.1发布于2022年2月12日
    重要的错误修复更新
    [更改]
    • 新增teleportFace API
    [bug修复]
  • 修复部分情况下无法放置门的bug
  • 修复logger崩溃的问题
  • 修复pl.blockPos位置偏移的问题
  • 修复脚本引擎CustomForm的问题
  • 修复AddonInstaller可能出现的失败和崩溃
  • 修复爆炸导致崩溃的问题
  • 修复teleport朝天的问题
  • 修复部分拼写错误
  • 2.1.1发布于2022年2月12日
    重要的错误修复更新
    [更改]
    • 新增teleportFace API
    [bug修复]
  • 修复部分情况下无法放置门的bug
  • 修复logger崩溃的问题
  • 修复pl.blockPos位置偏移的问题
  • 修复脚本引擎CustomForm的问题
  • 修复AddonInstaller可能出现的失败和崩溃
  • 修复爆炸导致崩溃的问题
  • 修复teleport朝天的问题
  • 修复部分拼写错误
  • 2.1.2发布于2022年2月14日
    [新内容]
    • 增加了部分与颜色相关的API
    • 脚本引擎导出了registerPlugin API
    • 导出了新的allowlist API
    • 完成了部分i18n工作
    [BUG修复]
  • 修复脚本引擎存在的一个严重的远程调用死锁问题
  • 修复脚本引擎ll.require工作异常的问题
  • 修复了getXuid可能发生的报错问题
  • 修复了PlayerDrop事件触发错误的问题
  • 修复了玩家重生事件触发异常的问题
  • 修复了弩发射烟花火箭时可能发生的问题
  • 修复了AddonInstaller存在的问题
  • 2.1.3发布于2022年3月2日
    [新内容]
    • 新增了动态真指令注册接口(DynamicCommandAPI)
    • 新增文字编码转换接口(I18nAPI)
    • 新增了内置OutputFilter正则输出过滤功能
    • 新增了addons自动安装、管理和查询命令
    • 增加了CompoundTag::toPrettySNBT美化输出接口
    • 为NetworkNBT格式提供支持
    • 为脚本引擎所有json接口提供注释支持
    • 增加了PrintCurrentStackTraceback的符号缓存开关
    • 升级了附带的LLMoney版本
    [BUG修复]
  • 修复部分数据包类内容错误的问题
  • 修复StructureTemplate类存在的问题
  • 修复热管理命令出现的报错问题
  • 为Logger加锁,解决多线程输出时概率崩服的问题
  • 脚本引擎修复数据库无法关闭的问题
  • 脚本引擎修复ll.require重复加载的问题
  • 脚本引擎修复setNbt后部分对象数据没有更新的问题
  • 脚本引擎修复onLiquidFlow事件维度缺失的问题
  • 脚本引擎修复item.clone
  • 脚本引擎为base64转换提供二进制接口
  • 脚本引擎修复TimeTask可能的问题,增加安全检查
  • 脚本引擎为多处回调增加引擎有效性检查,稳定性得到提高
  • 脚本引擎修复V8输出异常信息触发调试器,导致崩溃的问题
  • 修复SDK中SymDBHelper的部分问题
  • 为大部分异常输出提供UTF8转换,避免输出过程中本地编码导致的崩溃
  • 修复后台输入全角字符造成崩服的问题
  • 2.1.3发布于2022年3月2日
    [新内容]
    • 新增了动态真指令注册接口(DynamicCommandAPI)
    • 新增文字编码转换接口(I18nAPI)
    • 新增了内置OutputFilter正则输出过滤功能
    • 新增了addons自动安装、管理和查询命令
    • 增加了CompoundTag::toPrettySNBT美化输出接口
    • 为NetworkNBT格式提供支持
    • 为脚本引擎所有json接口提供注释支持
    • 增加了PrintCurrentStackTraceback的符号缓存开关
    • 升级了附带的LLMoney版本
    [BUG修复]
  • 修复部分数据包类内容错误的问题
  • 修复StructureTemplate类存在的问题
  • 修复热管理命令出现的报错问题
  • 为Logger加锁,解决多线程输出时概率崩服的问题
  • 脚本引擎修复数据库无法关闭的问题
  • 脚本引擎修复ll.require重复加载的问题
  • 脚本引擎修复setNbt后部分对象数据没有更新的问题
  • 脚本引擎修复onLiquidFlow事件维度缺失的问题
  • 脚本引擎修复item.clone
  • 脚本引擎为base64转换提供二进制接口
  • 脚本引擎修复TimeTask可能的问题,增加安全检查
  • 脚本引擎为多处回调增加引擎有效性检查,稳定性得到提高
  • 脚本引擎修复V8输出异常信息触发调试器,导致崩溃的问题
  • 修复SDK中SymDBHelper的部分问题
  • 为大部分异常输出提供UTF8转换,避免输出过程中本地编码导致的崩溃
  • 修复后台输入全角字符造成崩服的问题
  • 2.1.4发布于2022年3月30日
    [新内容]
    • 自动填充数据包大小
    • 修改llse pl.talkAs, 新添 pl.talkTo
    • 在llse command.setup中添加回调参数
    • 自动延迟设置动态命令
    • 新添一些 NBT APIs
    • 新添SynchedActorData APIs
    • AddonsHelper支持addon更新
    • 自动修复Addon文件列表
    • Addon Command支持无颜色匹配, #298
    • 在addons命令中添加简单的模糊匹配, #298
    • 增加isOperator API
    • 添加 mc.setMaxPlayers(num)
    • 添加wsc.connectAsync
    [Bug修复]
  • 修复 ll list
  • 修复 "Fix abnormal items", fix warning
  • 修复logger在处理异常抛出时的错误
  • 修复broadcast崩溃
  • 新添检查"Fix move view crash"
  • 修复sendTextTalkPacket并添加目标参数
  • 修复 origin.type #301
  • 修复动态命令在服务器启动前注册
  • 修复DynamicCommand::updateAvailableCommands崩溃
  • 修复 _runcmd崩溃
  • 修复 Addons Helper, #223
  • 修复Addons命令,支持按索引删除
  • 修复 llse getSoftEnumNames, #315
  • 修复无法重新加载LLSE插件, #316
  • MobHurtEvent 添加MagicDamage, #313
  • 尝试修复LLSE WebSocket onError回调中的崩溃问题
  • 修复Schedule
  • 修复 LLSE TimeTaskSystem
  • 修复动态指令崩溃, #304, #283
  • 2.1.5发布于2022年3月31日
    一次针对2.1.4的bug修复更新
    [BUG修复]
    • 修复setInterval的一些问题 #324
    • 修复Scoreboard::getScore #229
    • 修复服务器启动时间为负数 #322
    2.1.6发布于2022年4月6日
    [Bug修复]
    • 修复 LLSE 热管理崩溃(加载/重新加载/卸载)
    • 修复非 ascii 文件名插件的加载错误
    • 修复 LLSE setTimeout 和 setInterval 崩溃
    • 修复 LLSE 网络相关的崩溃和死锁
    • 修复 LLSE 远程调用死锁
    • 修复 LLSE onMobHurt 事件,#325
    • 修复 runcmd,#309
    • 修复内存泄漏
      • Level::executeCommandAs
      • ProjectileSpawnEvent
      • Actor::hurtEntity
      • Spawner::spawnMob
    • 修复 AddonsHelper 崩溃
    • 修复 AddonsHelper 解析错误
    • 更改欢迎文字
    2.1.7于2022年4月14日发布
    2.1.8于2022年4月16日发布

    参考[edit]