- 版权类型
- 原创
- 语言支持
- 中文(简体)
- 适配版本(基岩)
- 最新版本
[MD]
# iHigherWorld
iHigherWorld 是适用于 LeviLamina 的世界高度模组,可以分别调整主世界、下界和末地的最低、最高可放置方块高度。
> [!WARNING]
> 请尽量不要降低主世界的最低高度。将 `overworld.min` 修改为小于默认值 `-64` 后,世界生成器可能出现严重异常甚至崩溃。确需修改时,请先完整备份世界,并在测试世界中确认能够正常生成新区块。
## 功能
- 分别配置主世界、下界和末地的高度范围。
- 支持低于 Y=-512 或高于 Y=511 的世界。
- 高度边界自动按 16 格对齐。
- 支持仅服务端安装,也支持服务端与客户端同时安装。
- 服务端会在登录时向客户端下发高度范围,客户端无需与服务端保持配置一致。
- 配置文件缺失时创建默认配置;解析或范围校验失败时拒绝加载,不覆盖错误配置。
## 运行环境
- Windows x64
- LeviLamina `26.40.x`
发布包分为:
- `iHigherWorld-server-windows-x64.zip`:服务端版本
- `iHigherWorld-client-windows-x64.zip`:客户端版本
## 选择安装方式
### 仅安装服务端
如果各维度自动对齐后的范围都处于普通客户端可识别的范围内,只需安装服务端版本:
- 主世界:`min` 不小于 `-512`,且 `max` 不大于 `512`
- 下界:`min` 不小于 `0`,且 `max` 不大于 `256`
- 末地:`min` 不小于 `0`,且 `max` 不大于 `256`
普通客户端无需安装 iHigherWorld。非默认下界同样支持仅服务端使用,例如:
- 主世界:`-64~335`
- 下界:`0~223`
- 末地:`0~255`(默认)
### 服务端和客户端同时安装
如果任一维度自动对齐后的范围超出上面的仅服务端范围:
1. 服务端安装服务端版本。
2. 每个连接的客户端安装客户端版本。
3. 客户端无需与服务端使用相同的 `config.json`:登录时服务端会自动下发各维度的高度范围,客户端直接采用下发值。
如果只修改本地游戏世界,则安装客户端版本并编辑客户端配置即可。
## 安装
### 手动安装
服务端:
1. 解压 `iHigherWorld-server-windows-x64.zip`。
2. 将其中的 `iHigherWorld` 文件夹放入 LeviLamina 的 `plugins/`。
3. 启动一次服务端以生成配置文件。
客户端:
1. 解压 `iHigherWorld-client-windows-x64.zip`。
2. 将其中的 `iHigherWorld` 文件夹放入 LeviLamina 的 `mods/`。
3. 启动一次游戏以生成配置文件。
### 使用 Lip 安装
```powershell
# 服务端
lip install github.com/MiracleForest/iHigherWorld-Release
# 客户端
lip install github.com/MiracleForest/iHigherWorld-Release#client
```
## 配置文件位置
- 服务端:`plugins/iHigherWorld/config/config.json`
- 客户端:`mods/iHigherWorld/config/config.json`(仅在本地/单人世界生效;连接服务器时以服务端下发的范围为准)
首次启动后会生成默认配置:
```json
{
"version": 3,
"overworld": {
"min": -64,
"max": 320
},
"nether": {
"min": 0,
"max": 128
},
"the_end": {
"min": 0,
"max": 256
}
}
```
`overworld`、`nether`、`the_end` 分别对应主世界、下界和末地,各维度的 `min`、`max` 含义见下表。
默认可放置范围为:
- 主世界:`-64~319`
- 下界:`0~127`
- 末地:`0~255`
## 配置项
| 配置项 | 作用 | 默认值 |
| --- | --- | ---: |
| `version` | 配置文件版本,请保持为 `3` | `3` |
| `overworld.min` | 主世界最低可放置高度 | `-64` |
| `overworld.max` | 主世界最高可放置高度加 `1` | `320` |
| `nether.min` | 下界最低可放置高度 | `0` |
| `nether.max` | 下界最高可放置高度加 `1` | `128` |
| `the_end.min` | 末地最低可放置高度 | `0` |
| `the_end.max` | 末地最高可放置高度加 `1` | `256` |
每个维度的最高高度配置都需要比希望使用的最高 Y 坐标大 `1`。例如:
- 希望主世界最高可放置到 Y=335,应把 `overworld.max` 填写为 `336`。
- 希望下界最高可放置到 Y=223,应把 `nether.max` 填写为 `224`。
- 希望末地最高可放置到 Y=255,应把 `the_end.max` 填写为 `256`(默认)。
## 配置步骤
1. 完全停止游戏或服务端。
2. 打开对应的 `config.json`。
3. 修改主世界、下界和末地的高度。
4. 保存文件。
5. 如果当前范围需要客户端版本,请为每个客户端安装客户端版本;无需复制配置,服务端会在登录时下发高度范围。
6. 重新启动游戏或服务端。
7. 查看启动提示,确认最终生效的高度范围。
## 示例
### 示例一:仅服务端使用
以下配置对应主世界 `-64~335`、下界 `0~223`,末地保持默认 `0~255`,客户端无需安装模组:
```json
{
"version": 3,
"overworld": {
"min": -64,
"max": 336
},
"nether": {
"min": 0,
"max": 224
},
"the_end": {
"min": 0,
"max": 256
}
}
```
### 示例二:扩展到 Y=2047
以下配置超出了仅服务端兼容范围,服务端和所有客户端都需要安装模组;客户端的本地配置无需与服务端一致,进入服务器时服务端会自动下发高度范围:
```json
{
"version": 3,
"overworld": {
"min": -512,
"max": 2048
},
"nether": {
"min": 0,
"max": 256
},
"the_end": {
"min": 0,
"max": 256
}
}
```
生效后的可放置范围为:
- 主世界:`-512~2047`
- 下界:`0~255`
- 末地:`0~255`
## 高度对齐规则
世界高度以 16 格为一组。加载配置时,每个维度的 `min`、`max` 会被对齐到 16 的倍数,再以对齐后的范围生效;实际可放置范围为 `min~max-1`。
默认配置中的数值本身都是 16 的倍数。若填写了非 16 的倍数,请以启动日志中提示的最终生效范围为准。
可填写的数值以及对齐后的结果都必须位于 `-32768~32767`,因此各维度 `max` 建议不要超过 `32752`。
## 注意事项
- 修改已有世界前请先备份。
- 主世界最低高度建议保持默认值 `-64`;降低该数值可能导致世界生成异常或崩溃。
- 缩小范围不会立即删除范围外的区块数据,但这些区域会暂时无法访问。
- 需要客户端版本时,无需保证两端 `config.json` 一致:连接服务器后,服务端下发的高度范围会覆盖客户端本地的设置。
- 修改配置后必须完整重启,热重载不会更新世界高度。
- 配置无法解析时,模组会记录错误并回退到默认值后写回 `config.json`;请检查控制台日志与写回后的数值。
## 常见问题
### 为什么 `overworld.max` 填 336,显示的最高高度是 335?
`max` 表示最高可放置高度的下一个 Y 坐标。因此主世界最高需要 335 时,应把 `overworld.max` 填写为 336。
### 为什么启动后配置文件中的数值变了?
高度必须按 16 格对齐。模组加载配置时会把各维度的 `min`、`max` 对齐到 16 的倍数并写回 `config.json`,因此填写的非 16 倍数值会被对齐后的数值替代。
### 普通客户端可以进入服务器吗?
可以。只要主世界自动对齐后的范围不超出 `-512~511`(`min` 不小于 `-512` 且 `max` 不大于 `512`),并且下界、末地的范围都位于 `0~255`(`min` 不小于 `0` 且 `max` 不大于 `256`),客户端就不需要安装 iHigherWorld。
### 什么时候必须让所有客户端安装?
任一维度自动对齐后的范围超出上述限制时,所有客户端都必须安装客户端版本(无需与服务端使用相同配置,服务端会在登录时下发高度范围)。
### 客户端需要和服务端使用相同的配置吗?
不需要。连接服务器时,服务端会在登录阶段下发各维度的高度范围,客户端会自动采用下发值;客户端本地的 `config.json` 只对本地(单人)世界生效。
[/MD]