在建立或编辑词条前,请先阅读MineWiki方针与指引

LiteLoader:修订间差异

来自MineWiki
(新增版本说明)
(未显示同一用户的3个中间版本)
第14行: 第14行:
LiteLoader使用了[https://github.com/Sysca11 Sysca11]为[[BedrockX]]编写的动态符号数据库,实现了对pdb文件内符号的解析
LiteLoader使用了[https://github.com/Sysca11 Sysca11]为[[BedrockX]]编写的动态符号数据库,实现了对pdb文件内符号的解析


== 版本历史 ==
== 版本历史<ref>https://www.minebbs.com/liteloader/updates</ref> ==
{| class="wikitable"
{| class="wikitable"
|+
|+
第21行: 第21行:
!更新内容
!更新内容
!适配的BDS版本
!适配的BDS版本
|-
!2.3.0
!2022/6/10
!兼容1.19.1,协议版本527
[新内容]
* 支持BDS1.19.0
* 配置文件新添经济核心(LLMoney)开关
* LLMoney远程调用支持
[改变]
* 更新远程调用API
* LLSE的改变
** bl.setNbt
[BUG修复]
* 修复LL Bugs
** Actor::isPlayer()
* 修复LLSE Bugs
** pl.getRespawnPosition
!1.19.1
|-
!2.2.7
!2022/6/9
![改变]
* 移除 MCVAPI
[BUG修复]
* BDS bugs
** 装备带荆棘附魔的两个玩家相互攻击使服务端崩溃
* LL bugs
** SimulatedPlayer::simulateDestory 异常行为
* LLSE bugs
** en.isPlayer 总是返回 false
** en.toPlayer 总是失败
** sp.simulateWorldMove
** sp.simulateWorldMove
* LLMoney bugs
** LLMoney 指令崩服
!1.18.33
|-
!2.2.6
!2022/6/7
!'''[改变]'''
* 忽略PlayerDB中的模拟玩家
* 更改BossBar API,#416
* 当LLSE加载脚本内容时设置文件名
** 友好的错误输出
* 显示插件版本在Event和Schedule错误中
* 当LLSE中出现错误,现在会输出脚本栈和插件信息,#430
* 删除了一个不稳定的BUG修复
'''[新内容]'''
* 添加自动初始化dlsym函数API在cpp20上
* 添加CompoundTag APIs
** CompoundTag::nbtListToBinary
** CompoundTag::nbtListFromBinary
** CompoundTag::nbtListFromNetwork
** CompoundTag::nbtListToNetwork
* 添加 BoundingBox APIs
** BoundingBox::forEachBlockInBox
** BoundingBox::mergeBoundingBox
* 增加BlockPos和Vec3中的API
* 增加远程调用API的无效返回类型的支持
* 增加LLSE APIs
** pl.langCode property
** en.getBlockFromViewVector
** en.getEntityFromViewVector
** pl.getBlockFromViewVector
** pl.getEntityFromViewVector
** sp.simulateWorldMove
** sp.simulateMoveTo
* 现在可以通过dlsym或MCVAPI调用虚函数
* 更新LibraryBuilder
'''[BUG修复]'''
* BDS bugs
** 异常移动时崩溃的错误
** 钓鱼钩在折跃门时传送造成的崩溃
** 服务器关闭时造成的概率性崩溃#428
* LL bugs
** 处理LoadLibrary错误
** 当目录"./plugins "不存在时造成PreLoader崩溃
** CompoundTag::fromNetworkNBT
** PlayerLeftEvent包含模拟玩家离开
** 模拟玩家的PlayerAPI
* DB bugs
** DB::MyStmt::bind 的bug
** DB::MyStmt复制数据的bug
* LLSE bugs
** mc.spwnSimulatedPlayer的位置错误问题
** File API的返回值错误的问题,#429
** file.read内存泄漏
** file.WriteMode和writeSync的错误,#431
** logger堆栈溢出
** WebSocket崩溃
** "在空全局上获取 "或其他错误
** simulateAttack参数
** simulateDestory错误输出
** simulateNavigateTo位置参数
** 远程调用API位置类型错误
** simulateLocalMove错误
** simulateLookAt错误
!1.18.33
|-
!2.2.5
!2022/5/21
![主要]
* 性能提升
[新内容]
* 新添LLSE ll.hasExported API
[BUG修复]
* 修复BlockActor::refreshData
!1.18
|-
|-
!1.1.0
!1.1.0

2022年6月18日 (六) 08:03的版本

本页面LiteLoader指LiteLoaderBDS

LiteLoaderBDS是一个基于BedrockX的开源插件加载器[1],以GPLv3 with extra restrictions&exceptions许可证发行,兼容加载为梦故加载器编写的插件

继承了BedrockX的优点:

  • 动态符号查找:实现了自动适配Bedrock Dedicated Server的小版本更新而无需重新编译插件,换句话说,只要Mojang没有大量删改函数,那么部分插件即使不更新也能实现插件在新版本的Bedrock Dedicated Server上运行
  • 完善的Api:LiteLoader内置相对完善的Api,内置的Bedrock Dedicated Server中的常用Api,使开发者无需手动在IDA内寻找函数就能编写简单的插件,减轻了插件开发者的时间花费

实现原理

通过劫持Chakra.dll库实现注入LiteLoader.dll,使用微软的Detours开源库Hook Bedrock Dedicated Server主程序,从而实现各种对Bedrock Dedicated Server的修改

动态符号查找

LiteLoader使用了Sysca11BedrockX编写的动态符号数据库,实现了对pdb文件内符号的解析

版本历史[2]

版本号 发布日期 更新内容 适配的BDS版本
2.3.0 2022/6/10 兼容1.19.1,协议版本527

[新内容]

  • 支持BDS1.19.0
  • 配置文件新添经济核心(LLMoney)开关
  • LLMoney远程调用支持

[改变]

  • 更新远程调用API
  • LLSE的改变
    • bl.setNbt

[BUG修复]

  • 修复LL Bugs
    • Actor::isPlayer()
  • 修复LLSE Bugs
    • pl.getRespawnPosition
1.19.1
2.2.7 2022/6/9 [改变]
  • 移除 MCVAPI

[BUG修复]

  • BDS bugs
    • 装备带荆棘附魔的两个玩家相互攻击使服务端崩溃
  • LL bugs
    • SimulatedPlayer::simulateDestory 异常行为
  • LLSE bugs
    • en.isPlayer 总是返回 false
    • en.toPlayer 总是失败
    • sp.simulateWorldMove
    • sp.simulateWorldMove
  • LLMoney bugs
    • LLMoney 指令崩服
1.18.33
2.2.6 2022/6/7 [改变]
  • 忽略PlayerDB中的模拟玩家
  • 更改BossBar API,#416
  • 当LLSE加载脚本内容时设置文件名
    • 友好的错误输出
  • 显示插件版本在Event和Schedule错误中
  • 当LLSE中出现错误,现在会输出脚本栈和插件信息,#430
  • 删除了一个不稳定的BUG修复

[新内容]

  • 添加自动初始化dlsym函数API在cpp20上
  • 添加CompoundTag APIs
    • CompoundTag::nbtListToBinary
    • CompoundTag::nbtListFromBinary
    • CompoundTag::nbtListFromNetwork
    • CompoundTag::nbtListToNetwork
  • 添加 BoundingBox APIs
    • BoundingBox::forEachBlockInBox
    • BoundingBox::mergeBoundingBox
  • 增加BlockPos和Vec3中的API
  • 增加远程调用API的无效返回类型的支持
  • 增加LLSE APIs
    • pl.langCode property
    • en.getBlockFromViewVector
    • en.getEntityFromViewVector
    • pl.getBlockFromViewVector
    • pl.getEntityFromViewVector
    • sp.simulateWorldMove
    • sp.simulateMoveTo
  • 现在可以通过dlsym或MCVAPI调用虚函数
  • 更新LibraryBuilder

[BUG修复]

  • BDS bugs
    • 异常移动时崩溃的错误
    • 钓鱼钩在折跃门时传送造成的崩溃
    • 服务器关闭时造成的概率性崩溃#428
  • LL bugs
    • 处理LoadLibrary错误
    • 当目录"./plugins "不存在时造成PreLoader崩溃
    • CompoundTag::fromNetworkNBT
    • PlayerLeftEvent包含模拟玩家离开
    • 模拟玩家的PlayerAPI
  • DB bugs
    • DB::MyStmt::bind 的bug
    • DB::MyStmt复制数据的bug
  • LLSE bugs
    • mc.spwnSimulatedPlayer的位置错误问题
    • File API的返回值错误的问题,#429
    • file.read内存泄漏
    • file.WriteMode和writeSync的错误,#431
    • logger堆栈溢出
    • WebSocket崩溃
    • "在空全局上获取 "或其他错误
    • simulateAttack参数
    • simulateDestory错误输出
    • simulateNavigateTo位置参数
    • 远程调用API位置类型错误
    • simulateLocalMove错误
    • simulateLookAt错误
1.18.33
2.2.5 2022/5/21 [主要]
  • 性能提升

[新内容]

  • 新添LLSE ll.hasExported API

[BUG修复]

  • 修复BlockActor::refreshData
1.18
1.1.0 2021/7/14 兼容1.17.10 1.17.10
1.0.2 2021/6/8 兼容1.17.0 1.17.0
1.0.0 2021/4/10 兼容1.16.220
修复WActor::teleport
更新插件预加载功能
支持自动将BDSNetRunner列入预加载名单
1.16.220
0.2.3 2021/4/5 移除插件预加载文件夹
新增插件预加载配置文件
修复liteloader::runcmdEx
修复部分bug
1.16.210
0.2.2 2021/3/14 修复生物死亡事件
修复部分bug
1.16.210
0.2.1 2021/3/12 兼容1.16.210
添加玩家预加入事件
1.16.210
0.1.9 2021/3/6 文件夹结构改动 1.16.200
0.1.8 2021/3/4 添加sendtext
添加一些事件
修复中文文件夹导致的显示问题
1.16.200
0.1.7 2021/2/20 添加GUI相关Api
修复teleport
添加getallplayer
添加playermap
1.16.200
0.1.6 2021/2/16 添加xuid数据库 1.16.200
0.1.5 2021/2/15 添加指令注册
add CommandBlockExecute Event
add PlayerDeathEV
add offPlayer::getXUID
add ServerStarted Event
add PlayerUseCmd Event
1.16.200
0.1.4 2021/2/11 添加基本的事件系统 1.16.200
0.1.3 2021/2/8 添加runcmd和runcmdEx 1.16.200
0.1.2 2021/2/7 添加插件预加载功能 1.16.200
0.1.1 2021/2/6 修复Chakra存在的bug 1.16.200
0.1.1 2021/1/28 首个版本 1.16.200

参考