从一台装好 LeviLamina、Endstone 或自持态 Linux 载体的服务端,到看见第一个插件运行。
- Windows x64(LeviLamina 与 Endstone Windows);Linux x64(Endstone Linux 与自持态)。
- Minecraft 基岩版专用服务器:BDS 1.26.51+(LeviLamina 26.51+)、BDS 1.26.52+(Endstone 0.11+), 或自持态的 BDS 1.21.3。
- .NET 10 运行时(
Microsoft.NETCore.App)。 - lip。
- 进程外例外示例还需要 Node.js 20+ 在
PATH上。
以下安装命令都在服务端根目录执行。
装 Shim 与 Provider
Section titled “装 Shim 与 Provider”无后缀的包是自持态 Linux 载体。带父级的服务端用对应的 label:
lip install github.com/HosihikariFramework/Shim # 自持态 Linuxlip install github.com/HosihikariFramework/Shim#levilamina # LeviLaminalip install github.com/HosihikariFramework/Shim#endstone # Endstone Windowslip install github.com/HosihikariFramework/Shim#endstone_linux # Endstone Linux再装本例需要的 C# Provider:
lip install github.com/HosihikariFramework/CSharpProvider顺序是 Shim → Provider → 插件包。Provider 的清单不声明对 Shim 的依赖,因为 Shim 的载体变体由安装命令选择。
自持态会把 hosihikari-server 放在服务端根,核心放在 plugins/hosihikari/。通过启动器起服,
它会预加载垫片:
./hosihikari-server自持态的目标是 BDS 1.21.3,启动器需要 .NET 10 运行时。插件包照旧放在 plugins/ 下,并且是
预编译程序集包。
放一个 C# 插件
Section titled “放一个 C# 插件”从维护中的插件包开始,见模板。
克隆文档仓并执行:
git clone https://github.com/HosihikariFramework/hosihikariframework.github.iocd hosihikariframework.github.io$Server = 'C:\bedrock-server'Copy-Item -Recurse .\examples\hello-csharp "$Server\plugins\hello-csharp"包里有:
hello-csharp/ manifest.json main.cs hello-csharp.conf启动服务端。日志里应出现 loaded, package 与 enabled, greeting=你好,星光,数据目录同时写出 loaded.txt 与 enabled.txt:
<服务端>/data/hosihikari/hello-csharp/例外一等 Provider:进程外桥
Section titled “例外一等 Provider:进程外桥”RpcProvider 是例外一等 Provider:官方 Provider,插件在子进程中通过行分隔 JSON-RPC 2.0 与宿主通信,不把源码 AOT 为 IL。
lip install github.com/HosihikariFramework/RpcProviderCopy-Item -Recurse .\examples\hello-node "$Server\plugins\hello-node"Copy-Item "$Server\plugins\hosihikari-rpc\bindings\node\hosihikari.mjs" "$Server\plugins\hello-node\hosihikari.mjs"hosihikari.mjs 是 RpcProvider 随包发布的 Node 绑定。把它放在入口旁边,清单里的命令就能直接运行。启动后日志里应出现 hello-node 的 loaded, package 与 enabled, greeting=你好,星光。
如果目标目录已经存在,先删掉再复制,避免把新文件叠进旧目录。
包内 <name>.conf 是作者给的默认值;服务端侧的覆盖放在 config/hosihikari/,优先于包内:
New-Item -ItemType Directory -Force "$Server\config\hosihikari" | Out-NullCopy-Item .\examples\hello-csharp\hello-csharp.conf "$Server\config\hosihikari\hello-csharp.conf"改完重启,日志里的 greeting 就是覆盖后的值。环境变量也会覆盖同名键。
