LiteLoaderBDS - 划时代 x 跨语言BDS插件加载器

Loader LiteLoaderBDS - 划时代 x 跨语言BDS插件加载器 2.8.1

Source of resources
Original
Copyright link
https://github.com/LiteLDev/LiteLoaderBDS
Wiki
https://minewiki.net/LiteLoader
Language
Multi-language
Supported version
  1. The latest version

LiteLoaderBDS - 划时代 x 跨语言BDS插件加载器


status Discord Telegram Latest Tag GitHub Releases (by Asset)
QQ群: 656669024 QQ2群: 850517473

English | 简体中文


LiteLoaderBDS
LiteLoaderBDS.svg

LiteLoaderBDS 是一个非官方的 Minecraft 服务端插件加载器,为基岩版专用服务器——Bedrock Dedicated Server(以下简称BDS)提供插件开发支持 和 插件加载服务,弥补了官方行为包开发接口长期以来存在的一些不足。

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

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

? 第一印象


“为什么我应该选择LiteLoader?”
易于使用,直观的接口!

C++语言示例插件


C++:
#include <EventAPI.h>
#include <LoggerAPI.h>
#include <LLAPI.h>
#include <MC/Player.hpp>
#include <MC/Actor.hpp>
Logger logger("AttackLog");

void PluginInit()
{
 LL::registerPlugin("PluginName", "Introduction", LL::Version(1, 0, 0));
    logger.info("插件 xxx 已加载.");
    //监听玩家攻击事件
    Event::PlayerAttackEvent::subscribe([](const Event::PlayerAttackEvent& ev) {
        Player* player = ev.mPlayer;
        Actor* actor = ev.mTarget;
        logger.info(u8"玩家:{} 攻击了 {} | 坐标 {} 维度 {}",
         player->getRealName(), actor->getTypeName(), actor->getPos().toString(),
            std::to_string(actor->getDimensionId()));
        return true;
    });
}

脚本语言示例插件


JavaScript:
// 注册关服命令
mc.listen("onServerStarted", () => {
    const cmd = mc.newCommand("stopsvr", "关闭服务器");
    cmd.overload();
    cmd.setCallback((_cmd, ori, out, _res) => {
        out.success("关服命令执行成功");
        mc.broadcast(`玩家${ori.player.realName}执行了关服命令。服务器将在5秒之后关闭`);

        //执行关服命令
        setTimeout(() => mc.runcmd("stop"), 5000);
    });
    cmd.setup();
});

? 优势


  • ? 支持多种不同的语言开发插件,保持接口统一
目前已支持的插件开发语言C++、JavaScript(NodeJs)、Lua 、.NET
即将支持的插件开发语言Python、Ruby、TypeScript、Go
  • ?开发体验流畅,兼容性强
    • 拥有自动生成的C++头文件,可以访问BDS所有的类和功能,拥有完善的工具链支持,且功能不断发展中
    • 对于脚本语言插件,拥有多语言代码补全库、强大的VSCode插件、热加载系统……众多辅助工具,帮你更有效地写好每一行代码
    • 版本更新时,将保证 API 基本 向下兼容,插件几乎不需要随版本更新而修改代码。LiteLoader系列独有符号查找技术,跨版本 自动适配 不再是梦想
  • ?开发文档完善,讲解详细
  • ?大量封装完善的的接口
    • 拥有众多游戏API支持:玩家,实体,方块,物品,容器,NBT,服务器系统……
    • 多达 五十多种 游戏事件监听,不管什么事情发生,都可以第一时间响应
  • ? 安全,稳定,通用
    • 修复BDS中的一些漏洞,确保您的服务器的稳定性和安全性
    • 广泛使用SEH异常保护框架,将服务器崩溃的风险降到最低
    • 支持通过 Wine 在Linux、MacOS平台运行,给其他平台也带来自由的插件体验:一次编写,多平台共享
  • ?应用生态健全
    • 海量现有插件,成熟发布平台,即刻 ?前往官方论坛? 查找并下载你喜欢的 LL 插件
  • ?开源 & 社区共建
    • 项目采用 LGPL-3.0 开源许可证,永远不会 收费或者推出商业版。
    • 设计思想采取 去中心化 设计,放心享受 自由 的插件加载框架!

? 安装


对于 Windows 用户


  1. 前往 MineBBSGitHub Release 下载最新的 LiteLoader-版本号.zip
  2. 将压缩文件内的所有内容解压到 bedrock_server.exe 所在的目录。如果解压的过程中提示文件有冲突,选择覆盖即可。
  3. 保证 bedrock_server.pdb文件存在。 运行 LLPeEditor.exe 来生成具有导出符号的BDS(bedrock_server_mod.exe)
  4. 当控制台输出 请按任意键继续. . . 时,按任意键关闭窗口
  5. 运行 bedrock_server_mod.exe 开服

对于 Linux 用户


安装脚本(Ubuntu)


Bash:
wget https://github.com/LiteLDev/LiteLoaderBDS/raw/beta/scripts/install.sh
chmod +x install.sh
./install.sh

Docker


在终端中输入:
Bash:
docker pull shrbox/liteloaderbds
mkdir <install directory>
docker create --name llbds -v <install directory>:/root/bedrock-server -p 19132:19132/udp -i -t shrbox/liteloaderbds
<install directory> 是用于存放数据的目录,例如: /home/shrbox/bedrock-server
第一次启动需要花费一点时间用于下载Bedrock Dedicated Server和LiteLoaderBDS
启动服务器:docker container start llbds -a
强制停止服务器(不推荐):docker container stop llbds
进入控制台:docker attach llbds
退出控制台:按下 Ctrl + P + Q。如果按下 Ctrl + C,服务器进程将会终止。

? 下载 & 加载插件


插件的下载


LiteLoader主要插件发布渠道:

插件的安装


  1. 如果下载到的是一个压缩包文件,请解压它
  2. 将所有获取到的内容直接放入plugins目录
  3. 运行bedrock_server_mod.exe 开服
更多安装与使用指南 ,请?移步 LiteLoader 文档站?查看


? LiteLoader 插件开发


使用 C++ 开发插件


  1. 前往 LiteLoader 插件模板仓库 下载项目模板,或者根据模板创建自己的项目仓库,并下载代码到本地
  2. 打开 Template.sln 项目文件
  3. 在Plugin.cpp中开始编写插件代码
  4. 编译生成,并按提示选择相应的PDB文件以生成依赖库lib
  5. 复制插件到 plugins 目录进行测试
具体插件开发示例与指导,请?移步 LiteLoader 文档站?查看 如果有修订需求或者有新增API的需要,欢迎联系作者或者发布Issue

使用脚本语言开发插件


  1. 创建文件
  2. 编写代码
  3. 复制插件到 plugins 目录进行测试
请?移步 LiteLoader 文档站?查看详细的API文档插件开发教程 如果有修订需求或者有新增API的需要,欢迎联系作者或者发布Issue

示例插件


点击这里 查看更多开源的 LiteLoader 插件,作为示例插件。 你可以直接在生产环境中使用它们 也可以在这里学习插件开发的方法和技巧

开发辅助工具 - VSCode 开发辅助插件 & 补全库


使用 Moxicat 开发的 LiteLoader 开发辅助插件 帮助你更好地完成脚本插件的开发! 代码提示、自动补全、自动文档、错误提醒、运行时调试…… 只有你想不到,没有他做不到 用过绝不后悔的顶级插件开发体验!

点击这里 查看扩展说明与介绍 VSCode扩展商店搜索LLScriptHelper,安装LLScriptHelper,即刻体验

开发辅助工具 - Blockly-LXL 图形化开发套件


没有编程基础?对复杂的语言规则感到厌烦? 你有没有想过,BDS插件开发可以像拼图一样容易?

看这里!pa733的 Blockly-LXL 图形化开发套件,将插件开发体验提升到了新的高度

点击这里 查看相关安装与使用说明


? 构建项目


前往 GitHub Actions 来获取最新的构建工件(artifact)
当然,如果您愿意自己构建项目,或者向 LiteLoader 贡献代码,您可以按照以下说明自行构建项目
  1. 安装最新的 Microsoft Visual Studio 和标准的 C++ 桌面开发套件
  2. 安装最新的 Windows SDK
  3. 打开 LiteLoader.sln 项目文件,点击 生成 菜单中的 批生成
  4. 弹出批生成对话框,选中对话框右侧所有的生成复选框
  5. 选择完毕之后,点击对话框中的 生成 按钮,进行批生成
  6. 编译生成成功之后,返回到项目根目录,执行 Scripts 文件夹中的 PackRelease.cmd 脚本 执行完之后,根目录 RELEASE 文件夹内的内容即为完整的 LiteLoader 环境及所有的依赖库

? 参与贡献


您可以使用以下方法为 LiteLoader 项目做出贡献

  1. 贡献代码,维护项目和符号
  2. 帮助我们修改并优化开发文档
  3. 按照格式写下你想要的新API并提交一个PR(GitHub Issue),或者提出好的建议
  4. 帮助我们推广 LiteLoader,支持我们的发展
⭐⭐⭐我们欢迎您的贡献!⭐⭐⭐

PS:如果你有意为LL贡献代码,欢迎?移步 LiteLoader 文档站?查看 项目维护与支持文档


? 许可证


  • 开发者不对您负责,开发者没有义务为你编写代码、为你使用造成的任何后果负责
ProjectLicense
LiteLoaderLGPLv3 with extra restrictions&exceptions
ScriptXApache License Version 2.0
OpenSSLApache-2.0 license
SimpleIniMIT license
Nlohmann-JsonMIT license
nbt-cppMIT license
ThreadPoolZlib license
LightWebSocketClientMIT license
magic_enumMIT license
dyncallISC license
vcproxyMIT license
RawPDBBSD 2-Clause license
SQLiteCppMIT license
compact_enc_detApache-2.0 license
detoursMIT license
httplibMIT license
magic_enumMIT license
enttMIT license
fmtLicense
gslMIT license
leveldbBSD-3-Clause license
parallel-hashmapApache-2.0 license
Base64MIT License

额外限制和例外


如果你提供服务器托管服务,你可以免费使用这个框架,但你不应该对这个框架进行私下更改或者作为卖点。去除版权以及赞助商的信息是一件非常可耻的事情!如果您修复或调整了代码,请提交PR,而不是将其设为私有或用于商业用途。

不要作恶。
虽然我们期望建立一个开源社区,但是强迫一切开源会毁了这个社区。 因此,您可以使用任何开源许可证编写基于"LiteLoader"的插件,甚至不发布您的源代码。 但是如果你修改了框架或者基于这个框架编写了一个新的框架,你必须开源它。

如果你想要分发,转载本框架,你必须得到我们的授权!

? 致谢


  • LiteLDev 开发组全体成员对项目的巨大贡献
  • 开源 ScriptX 项目提供的跨语言脚本引擎支持
  • ScriptX开发者 @LanderlYoung 在开发过程中给予的很多帮助
  • LiteLuaLoader 项目 和 BDSPyRunner 项目 提供的很多底层接口实现
  • 感谢整个BDS开源社区为相关技术发展添砖加瓦

重要贡献者


感谢 JetBrains 给开源开发者分配免费的IDE许可证,例如 CLion
Author
LiteLDev
Downloads
8,395
Views
103,063
First release
Last update
Rating
4.99 star(s) 89 ratings

Resource team

More resources from LiteLDev

Share this resource

Latest updates

  1. 2.8.1

    新功能 支持1.19.41 @dreamguxiang 增加Player::getAbilities Player::setAbility #890 @dreamguxiang 添加...
  2. 2.8.0

    LiteLoader Release Note 适配BDS-1.19.40 | 协议版本557 新特性 支持1.19.40 @dreamguxiang...
  3. 2.7.2

    LiteLoader Release Note 适配BDS-1.19.30 |协议版本 554 如果你正在使用2.7.0,请尽快更新到该版本 Bug修复...

Latest reviews

求适配1.19.50
怪就怪mojang的瞎改
1.19.50最近是不会适配了,有维护者不干了,剩下的维护者在上学,
求适配1.19.50
非常棒!支持作者!
你说的对,但是《LiteLoader》是由LiteLDev自主研发的一款全新的基岩版服务端插件加载器。注入发生在一个被称作「bedrock_server」的二进制可执行文件,在这里,被PeEditor选中的服务端文件将被篡改导入表将自身的大部分函数拱手导出,引导加载真正的LiteLoader。你将扮演一位名为「delayloader」的神必角色,在内存空间的旅行中拯救逻辑神秘,bug百出的函数们,和它们一起粉碎删除pdb的阴谋,找回失散的LiteXLoader——同时,逐步发掘「下北泽工作室」和「屎山代码」的真相。
需要适配1.19.40
大佬大佬,求1.19.40