Merge pull request #232 from minimouse0/bds

补充LeviLamina相关
This commit is contained in:
lilingfengdev 2024-08-16 09:57:20 +08:00 committed by GitHub
commit d5b95fc61a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 288 additions and 7 deletions

View File

@ -7,6 +7,6 @@ sidebar_position: 3
我的世界基岩版由于使用微软开发的 Visual C++ 编写,需要依赖 Visual C++ 运行库vc运行库才能正常运行。在玩家的电脑上由于 Windows 系统会自动为游戏补全这些运行库,所以玩家下载好基岩版之后就可以直接开始游戏。
但是在基岩版的服务器软件BDS这边情况就有所不同了。BDS只是一个软件,它并不具备自己补全 vc 运行库的功能需要手动进行安装否则就会报错“缺少vmruntimexxx.dll”。你需要为服务器安装至少 [Visual C++ Redistributable for Visual Studio 2015-2022](https://aka.ms/vs/17/release/vc_redist.x64.exe) 这个运行库才行。
但是在基岩版的服务器软件BDS这边情况就有所不同了。BDS 只是一个可执行文件,它并不具备自己补全 vc 运行库的功能需要手动进行安装否则就会报错“缺少vmruntimexxx.dll”。你需要为服务器安装至少 [Visual C++ Redistributable for Visual Studio 2015-2022](https://aka.ms/vs/17/release/vc_redist.x64.exe) 这个运行库才行。
有时一些辅助软件也会依赖这个运行库例如LeviLamina在缺少运行库时会报错“Error code: 1114 动态裢接库DLL初始化例程失败。”安装这个运行库也可以解决问题。

View File

@ -1,5 +1,5 @@
---
title: LeviLamina安装教程
title: LeviLamina 安装教程
sidebar_position: 1
---
@ -7,7 +7,7 @@ sidebar_position: 1
本篇文档持续更新中...<br />
支持后续 PR
# LeviLamina安装教程
# LeviLamina 安装教程
作者:[星凌QAQ](https://github.com/XingLingQAQ)
:::

View File

@ -7,7 +7,68 @@ sidebar_position: 1
本篇文档持续更新中...<br />
支持后续 PR
# 插件安装教程
作者:[星凌QAQ](https://github.com/XingLingQAQ)
:::
# 插件安装教程
## 插件的结构
LeviLamina 的插件是以文件夹的格式存在的。通常插件文件夹中包含以下内容:
```c
插件文件夹
├─manifest.json // 插件元数据文件,该文件必须存在并格式正确才能被 LeviLamina 识别
├─(插件配置文件和数据库)... // 插件生成的配置文件和数据库等大多数插件的配置文件名叫config.json并以一个文件夹或一个 .db 或 .json 后缀文件作为数据库
├─(插件代码或二进制文件)... // 插件源代码,通常是 .js、.lua、.dll 后缀的文件。不要删除,修改或重命名文件,否则可能导致插件无法运行!
```
通常情况下,你不需要手动修改 `manifest.json` 这个文件,因为插件作者会将它事先配置好。如果有特殊插件需要手动配置这个文件,该插件文档应该会给出相应教程。
## 使用 Lip 安装插件
如果你还没有安装 Lip可以参考 [上一章的教程](./LeviLamina-Install.md#准备工作-安装-lip) 。
要使用 Lip 安装插件,你必须确保该插件**支持通过 Lip 安装** 。如果插件文档没有写明任何使用 Lip 安装的方法或命令,你就不应该使用 Lip 安装该插件。
通常情况下,一个 Lip 插件的安装命令会像这样:
```shell
lip install <一个URL>
```
### 通过命令安装插件
在服务端根目录(包含 `bedrock_server_mod.exe` 的文件夹)打开 powershell执行插件使用说明给出的 Lip 安装命令,
### 通过 LipUI 安装插件
TODO
随后插件将在服务器下次启动时被加载。要想让正在运行的服务器加载该插件,你必须**重启服务器** 。
## 手动安装插件
### 原生native插件
解压并整理插件文件夹,确保其结构符合上文结出的插件结构。**有时插件压缩包解压后里面会套一层文件夹,这点要格外留意。**
将插件文件夹放入服务器的 `plugins` 文件夹,它将在服务器下次启动时被加载。要想让正在运行的服务器加载该插件,你必须**重启服务器** 。
### LSE 插件
要安装 LSE 插件,你的服务器必须安装了 [Legacy Script Engine](./legacy-script-engine.md) 作为前置。
#### quick-js、lua、python 单文件
指只有一个 .js/.lua/.py 代码文件的插件。
首先将插件文件放入 `plugins` 文件夹,然后启动或重启一次服务器。此时服务器将警告 `WARN [legacy-script-engine-quickjs] Legacy plugins have been migrated, please restart the server to load them!`。**此时插件并未被加载,你需要再次重启服务器** ,之后插件就能加载了。
#### nodejs、python 多文件
指 .llplugin 后缀名或解压后为一个文件夹的 LSE 插件。
如果插件为文件夹,那么检查该文件夹结构。如果其中包含 `manifest.json`,直接将其放入 `plugins` 文件夹即可。随后它将在服务器下次启动时被加载。要想让正在运行的服务器加载该插件,你必须**重启服务器** 。
如果该插件为文件夹但不包含 `manifest.json`,你需要将其放入 `plugins` 文件夹后,按上文 quickjs、lua、python 单文件的操作方法进行操作。
如果该插件为 .llplugin 后缀名的单个文件,你需要将其后缀名改成 .zip 并解压,之后按照上面两种方法进行操作。

View File

@ -3,9 +3,11 @@ title: LeviLamina
sidebar_position: 3
---
# 建设阶段
# LeviLamina
以下内容为LeviLamina的配置教程
LeviLamina 是 BDS 核心的一款功能强大的插件加载器, 曾被称为 LiteLoaderBDS。
以下内容为 LeviLamina 的配置教程
import DocCardList from '@theme/DocCardList';

View File

@ -0,0 +1,58 @@
---
title: Legacy Script EngineLSE
sidebar_position: 2
---
# Legacy Script EngineLSE
## 什么是 Legacy Script Engine
Legacy Script Engine 简称 LSE是 LeviLamina 上的一系列插件,被用作 LiteLoader Scipt EngineLLSE到 LeviScriptLS的过渡。LSE 的一些特性与 LLSE 相同,你可以阅读 LLSE 来了解该插件的特点。以下是这两个插件的不同之处:
1. LSE 只能在 LeviLamina 上运行LLSE 只能在 LiteLoader 上运行
2. LSE 的插件格式与 LLSE 不同。要想让 LSE 运行 LLSE 插件,需要 LSE 自动或服主手动进行格式转换。
3. LSE 虽然是 LeviLamina 开发计划的一部分,但是它被设计作为可选模块,需要服主额外安装。而 LLSE 则是集成在 LiteLoaderBDS 中,安装 LiteLoaderBDS 的过程中即安装完毕,不需要额外安装。
4. LSE 的 python 脚本引擎 legacy-script-engine-python 与系统中的 python 解释器冲突。
5. LSE 的更新仅提供版本适配和错误修复,不会更新新的 API 等功能,也不受理任何相关建议。
## 插件内容
目前 LSE 有以下插件:
- **LegacyMoney** :用于为 LSE 插件提供经济 API 相关功能
- **LegacyParticleAPI** :用于为 LSE 插件提供 ParticleAPI 相关功能
- **LegacyRemoteCall** 用于为 LSE 插件提供插件间相互调用功能
- **legacy-script-engine-lua** :用于加载和运行 lua 插件
- **legacy-script-engine-quickjs** :用于加载和运行单文件 js 插件quickjs 插件)
- **legacy-script-engine-nodejs** :用于加载和运行 nodejs 插件
- **legacy-script-engine-python** :用于加载和运行 python 插件,**和系统中的 python 解释器冲突**
这其中 LegacyMoney、LegacyParticleAPI、LegacyRemoteCall 几乎是必须安装的,因为很多插件都依赖这些插件运行。其他四个用于加载不同种类 LSE 插件的可以根据服务器所用到的插件的类型进行安装。
## [安装方法](https://lse.liteldev.com/zh/)
### 使用 Lip 安装
**非常推荐使用 Lip 安装。手动安装 LSE 的过程极其复杂繁琐**
一次性安装 QuickJS 和 Lua 引擎
```shell
lip install github.com/LiteLDev/LegacyScriptEngine
```
安装 nodejs 引擎
```shell
lip install gitea.litebds.com/LiteLDev/legacy-script-engine-nodejs
```
安装 python 引擎
```shell
lip install gitea.litebds.com/LiteLDev/legacy-script-engine-python
```
:::warning
由于 legacy-script-engine-python 与系统中的 python 解释器冲突,安装时你需要确保系统中没有 python 解释器。如果系统中已安装 python 解释器,你需要将其**彻底卸载** 。如果你必须使用系统中的 python 解释器,你只能放弃所有的 python 插件。
:::
### 手动安装
手动安装要装一大堆插件我还没试过教程求大佬补充qaq

View File

@ -0,0 +1,27 @@
---
title: LiteLoaderBDS
sidebar_position: 4
---
# LiteLoaderBDS
LiteLoaderBDS 是 BDS 核心的一款功能强大的插件加载器,简称 ll是 [LeviLamina](../LeviLamina/LeviLamina.md) 的前身,**现已停更**。
:::tip[你知道吗]
根据该加载器开发者所说,他们本来是因为 LiteLoaderBDS 的代码过于臃肿、难以维护、开发标准老旧、功能太过局限而希望重构 LiteLoaderBDS后来转为计划启动新项目 LeviLamina。这也是 LeviLamina 的“ll3”别称的来历。
:::
:::warning
由于该加载器已经停止维护,目前只建议给无法使用 LeviLamina 的旧版 BDS 使用。
:::
以下内容为 LiteLoaderBDS 的配置教程
import DocCardList from '@theme/DocCardList';
<DocCardList />

View File

@ -0,0 +1,38 @@
---
title: LiteLoaderBDS 安装教程
sidebar_position: 1
---
# LiteLoaderBDS 安装教程
## 下载安装 BDS
LiteLoaderBDS 不会自动下载安装对应版本 BDS你需要手动寻找和下载相应版本的旧版 BDS。
除了一些第三方网站提供的存档以外,你可以通过这种方式下载到旧版 BDS`https://minecraft.azureedge.net/bin-win/` 与 BDS 压缩包文件名拼接起来。例如要下载1.20.30.02,你就可以在浏览器中访问 `https://minecraft.azureedge.net/bin-win/bedrock-server-1.20.30.02.zip`
## 下载 LiteLoaderBDS
:::warning
LiteLoaderBDS 仅适配了 BDS 的1.20.32 及以下版本。对于更高版本的 BDS 需要使用 [LeviLamina](../LeviLamina/LeviLamina.md) 加载器。对于 1.20.40 - 1.20.51 版本,你需要使用其他加载器。如果你只需要兼容 1.20.40 - 1.20.51 的客户端进服,你可以选用 BDS 1.20.32、最新版 LiteLoader 和 Glacie 插件的方案。
:::
前往 https://github.com/LiteLDev/LiteLoaderBDSv2/releases 下载 BDS 版本对应的发行版。你可以在更新日志的 BDS 标签中找到该发行版适配的 BDS 版本。例如 2.14.1、2.14.0 的 BDS 标签写着 1.20.0.01,证明该发行版适配了 BDS 的 1.20.0.01 版本。
## 安装 LiteLoaderBDS
下载好 `LiteLoaderBDS.zip` 后,解压该压缩包,其中包含四个文件/文件夹:
- LiteLoader.dll
- LLPreLoader.dll
- PreEditor.exe
- plugins
将这四个文件放进 BDS 的根目录。
随后,双击运行 PreEditor.exe。该程序会弹出一个命令行窗口当其中显示 **Done** 的时候,证明安装成功。
## 运行带有 LiteLoaderBDS 加载器的 BDS
双击 `bedrock_server_mod.exe` 来运行。不要运行 `bedrock_server.exe`

View File

@ -0,0 +1,33 @@
---
title: 插件安装教程
sidebar_position: 2
---
# 插件安装教程
## 插件的分类
LiteLoaderBDS 的插件共有以下几类:
1. 原生插件native俗称 dll 插件。通常是一个 .dll 后缀的文件。
2. QuickJS 插件qjs俗称单文件 js 插件。通常是一个 .js 后缀的文件。
3. Lua 插件:通常是一个 .lua 后缀的文件。
4. NodeJS 插件:通常是一个文件夹或是一个 .llplugin 后缀的文件。
5. Python 插件:通常是一个文件夹或是一个 .py 后缀的文件。
6. LL.NET 插件:通常是一个 .dll 后缀的文件。虽然和原生插件后缀相同,但是这种插件必须安装了 LL.NET 插件的依赖才能正常加载和运行。
## 安装原生、QuickJS、Lua、Python 单文件插件
将插件的所有文件放入 `plugins` 文件夹,然后服务器将在下次启动时加载该插件。
## 安装 NodeJS 插件
将插件的所有文件放入 `plugins` 文件夹中的 `nodejs` 文件夹,然后服务器将在下次启动时加载该插件。
## 安装 Python 多文件插件
将插件的所有文件放入 `plugins` 文件夹中的 `python` 文件夹,然后服务器将在下次启动时加载该插件。
## 安装 LL.NET 插件
TODO

View File

@ -0,0 +1,18 @@
---
title: 协议版本
sidebar_position: 3
---
# 协议版本
Minecraft Wiki 中有对该概念的 [详细介绍](https://zh.minecraft.wiki/w/%E5%8D%8F%E8%AE%AE%E7%89%88%E6%9C%AC) 。本文将讲解开服过程中需要注意的重点内容。
简单来说,协议版本就像客户端与服务器之间的语言版本。把旧版协议比作老奶奶,比如“古代人” 1.20.50 讲的是“古汉语”协议 630而你 1.20.60 讲的是“现代汉语”协议 649。古代人1.20.50和你1.20.60)讲(连接)古汉语(使用协议 630你听不懂。同理1.20.60和古代人1.20.50)讲(连接)现代汉语(使用协议 649古代人听不懂。为了能互相理解你只能和同为现代人同为 649 协议)交谈,古代人也只能和古代人(同为 630 协议)交谈。
## 更新规律
通常来说MOJANG 会在每个修订版本号十位发生改变时改变协议版本。例如1.20.10 - 1.20.15 同为协议版本 594而 1.20.30 开始协议版本变更为618。之后的 1.20.31、1.20.32 都是 618 协议版本,到 1.20.40时再次更新为 622。
有时 MOJANG 会为了一些原因和目的在十位之内更新协议版本,例如 1.19.60 - 62 和 1.19.63 协议版本不同1.21.0 - 1.21.1 和 1.21.2 - 1.21.3 协议版本不同。
通常 MOJANG 会每五周左右发布一次这种更新协议的版本。

View File

@ -0,0 +1,44 @@
---
title: 服务器版本选择
sidebar_position: 4
---
# 选择合适的版本
先说结论:如果没有明确需求,**选择对应服务端的最新版即可。** 最新版的服务端往往支持最新版的客户端进入。
## 版本差异
各个版本更新的内容可以在 [Minecraft Wiki](https://zh.minecraft.wiki) 找到,此处不对游戏内容做过多叙述。除了关注游戏内容上的差异外,你还需要注意以下几个被官方轻描淡写,但对玩家有重大影响的客户端方面的更新:
- 1.20.50 :由于该版本中有许多方块进行了“扁平化”,经过了代码重构,导致一些该版本以下的跨版本插件无法很好地兼容该版本及以上版本。
- 1.20.40 :该版本中新的触控布局可以自定义位置
- 1.20.x没有确切版本望大佬补充 :大约从此版本开始,安卓版本出现了严重的卡顿问题,该问题截至撰写本文时仍未修复,社区也没有任何解决方案。
- 1.19.50 :该版本加入了新的触控布局
- 1.18.30 :从该版本开始,由于客户端实装了渲染龙,客户端无法使用传统的光影,只能使用硬件光追或延迟渲染改善游戏画面。
## 喜欢“自动更新”的玩家们
本意上为了确保用户第一时间接收到最新功能和错误修复,包括 App Store、Microsoft Store、Google Play 在内的主流应用商店都具备了自动更新 app 的功能,并且推荐用户开启。
然而这个功能在基岩版上却造成了这样的问题:由于基岩版每隔若干版本都要更换协议,这就导致一些玩家的客户端在其不知情的情况下自动更新,并导致他们无法进入服务器,遇到类似“所有的玩家都应该更新到最新版本然后再试一次”的提示。在 Java 版上这个问题很少见到,因为只有官启中有类似自动更新的机制,而玩家们并不都习惯于用官启。
为了让这些玩家们能够进入服务器,你需要持续不断地把你的服务器更新最新版,或者要求玩家们必须关闭自动更新或使用指定游戏安装包。然而后者会带来这个问题:由于 iOS 系统的机制原因iOS 玩家无法使用特定的安装包安装游戏他们只能下载安装最新版本的游戏。iOS 玩家的这个问题是社区一直无法完美解决的相当棘手的问题,在后面的章节中,我们会陆续介绍一些折中的方案来让你应对这些 iOS 玩家。
除了自动更新机制外,玩家们仍然倾向于使用最新版,主要因为以下原因:
- Microsoft Store、App Store、Google play、第三方应用商店提供的破解版安卓版安装包会优先下载安装最新版
- 社区资讯媒体都倾向于发表最新版游戏相关内容,玩家们会在这些信息源的引导下优先选择最新版
- 基岩版游戏在任何一个平台切换版本都不容易,因此社区形成了全员跟进最新版这一不成文的规定。如果玩某旧版本的服务器,玩家就只能玩所有该指定版本的服务器,要玩其他服务器时只能进行繁琐的操作切换版本,自由度大打折扣。
这些因素均导致了玩家们始终倾向于玩新版服务器。
## 权衡版本间的利弊
**除非你有明确需求,任何新手服主都应选择支持最新版客户端加入的服务器**
在选择版本时,你**首先需要考虑是否需要强制玩家固定版本。**
上文已经介绍了玩家倾向于自动更新的行为。如果你强制玩家固定版本,将产生以下后果:
1. 你将失去几乎所有 iOS 玩家。
2. 你将失去所有只玩最新版的玩家。**由于跟进最新版的服务器数量庞大,对应的玩家群体也非常庞大,失去他们将是重大损失** 。
3. 你的客服团队需要人工指导一些完全不会安装 appx 或 apk 格式安装包的小白。
如果你确定这些后果不会严重影响服务器的受欢迎度,你就可以选择特定版本。在选择版本时,除了根据游戏内容进行选择外,你还需要考虑玩家客户端所具备的功能,尤其是渲染龙、安卓版本的卡顿问题等饱受社区诟病的问题。选择让服务器匹配一个游戏体验较好的客户端版本,可以在一定程度上提高玩家在你服务器中的游戏体验。