LiteLoaderBDS

From Minecraft基岩版开发Wiki
LiteLoaderBDS
軟件與應用程式
開發作者
執行平台
  • WindowsLinux
編寫語言
最新版本
2.16.2
發佈日期
2021/01/28
年齡分級
?
程式大小
標準安裝包約 40MB
授權協議
LGPLv3(SDK部分採用MIT協定)
開源情況

LiteLoaderBDS(簡稱LiteLoaderLLLLBDS)是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(目前更名為LeviLamina[4]

  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[5],在2.0版本進行了完全重寫。

以下內容參考來源:[6][7][8]

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]