2
0
mirror of https://github.com/postyizhan/NitWikit.git synced 2025-03-19 17:10:58 +08:00

Slime 教程

This commit is contained in:
lilingfengdev 2024-11-26 19:19:57 +08:00
parent 846960a938
commit 1846604406
3 changed files with 162 additions and 14 deletions
docs-java
advance
process/maintenance/optimize
package.json

@ -0,0 +1,142 @@
---
title: Slime 世界格式
sidebar_position: 11
---
# Slime 世界格式
Slime 世界格式是 Hypixel 开发的一种世界存储格式
优势
* 使用 ZStd 替换 ZLib,大大优化体积和加载速度
* 支持数据库作为加载后端,多服小游戏非常有用
* 支持 readonly,玩完就没
* 预加载到内存当中,玩家不会因为加载卡顿
适合的服务器:
* 不适用于大型生存世界,而是适用于小型世界,如**迷你游戏地图或服务器大厅**
## 下载
前往[Github Release](https://github.com/InfernalSuite/AdvancedSlimePaper/releases),找到适合的版本下载即可
* `plugin-***-R0.1-SNAPSHOT.1.jar` ASM 的插件版本
* `asp-server.jar` ASM 的独立服务器核心版本(基于Paper)(不推荐)
* `importer-***-R0.1-SNAPSHOT.jar` ASM 独立的导入工具,可以将原版世界格式转为 SRF 格式
## 配置
这部分会教你如何配置 Slime 世界
### 世界配置选项
例子:
```yaml
worlds:
my_great_world:
source: mongodb
loadOnStartup: false
readOnly: true
spawn: 940, 2, -370
allowMonsters: false
allowAnimals: false
difficulty: peaceful
pvp: false
environment: NORMAL
worldType: default
```
**`source`** 存储世界的数据源名称
可用选项: `file`,`mysql`,`mongodb`,也可以使用第三方插件提供的其他数据源。
`loadOnStartup` 服务器启动时是否应加载世界
可用选项: `true``false`
**`readOnly`** 只读选项
描述:如果为`true`,对世界的更改将永远不会被存储.如果为`false`,世界将被锁定,因此其他服务器无法在**没有处于只读模式**的情况下**访问它**
:::tip
简单的来说,如果你需要使用一些黑魔法,比如通过数据库跨服同步世界,你需要将`readOnly` 设置为`true`
这亦是 Slime 格式适合小游戏服的一个重要原因
:::
**`spawn`** 世界的生成坐标
默认为: `0, 255, 0`
**`environment`** 世界环境
可用选项: `normal`,`nether`,`the_end`
**`worldType`** 世界类型
可用选项: `default`,`flat`,`large_biomes`,`amplified`,`customized`,`debug_all_block_states`,`default_1_1`
其他选项看名字就知道啥意思了,就不介绍了
### 数据源配置
在使用数据库存储你的世界之前,你必须对其进行配置,配置在`sources.yml` 中,例子:
```yaml
file:
# 存储世界的路径
path: slime_worlds
mysql:
enabled: true
host: 127.0.0.1
port: 3306
username: my_mysql_username
password: my_mysql_password
database: slimeworldmanager
mongodb:
enabled: true
host: 127.0.0.1
port: 27017
username: my_mongo_username
password: my_mongo_password
auth: admin
database: slimeworldmanager
collection: worlds
```
:::note
如果你要使用 MySQL 或 MongoDB,请将对应选项的`enabled` 设为 `true`
:::
## 命令
请查阅官方[wiki](https://infernalsuite.com/docs/asp/swp/commands)
## 转换世界
请查阅官方[wiki](https://infernalsuite.com/docs/asp/swp/converting_worlds)
## FAQ
### 与 Spigot 兼容吗?
不兼容,Slime 是基于 Paper 的
### 可以覆盖默认世界吗?
完全可以
### Slime 与 Multiverse-Core 兼容吗?
Multiverse-Core 会检测到 Slime世界为未加载状态,因为它找不到世界目录,然后直接忽略它们.不应该有任何问题;然而,Multiverse-Core 无法与 Slime 世界一起使用.
### Slime 有世界大小限制吗?
有,Slime 可以处理高达 46340x4630 块区域.这是 Slime 理论上可以处理的最大的尺寸,前提是有足够的内存.然而,拥有如此大的世界根本不推荐.

@ -45,6 +45,8 @@ TODO
### 更高效的储存方式
#### Linear
:::danger
Linear不适合玩家基数非常大/服务器经常滞后/压缩比较大(推荐默认1-5)/ CPU 核心数目小/服务器硬盘空间足够大的服务器。
@ -61,24 +63,24 @@ Linear不适合玩家基数非常大/服务器经常滞后/压缩比较大(推
主世界可以节省大约 50% 的空间,末地大约为 90% ,且使用现代的 zstd 压缩,可以获得更快的加载和保存速度
#### 转换区域格式
##### 转换区域格式
使用之前你需要将 ANVIL 转换成 Linear 区域格式,如果你使用的是 Leaves ,你可以在服务端内部自动转换。
[转换工具](https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools) ,转换非常简单你只需要看着教程做就行(记得做备份)
#### 开启区域格式
##### 开启区域格式
目前,支持线性区域格式的仅有 LinearPurpur LinearPaper Leaves Leaf Kaiiju (还有一堆Fork)
开启教程不多说,你只需要查看 Wiki 就行。
#### 不兼容的插件
##### 不兼容的插件
ServerBackup 一款备份插件会由于找不到mca文件报错。
目前已知不兼容线性区域的格式的插件极少无比已知的有大部分在线网页地图浏览程序以及Residence部分不兼容(感谢z大神的优雅代码当传送到一个未加载区块的领地时会崩溃)
#### 测试结果
##### 测试结果
感谢 HaHaWTH 提供的测试结果,测试内容为使用 Chunky 加载半径 1000 格的方块并保存,测试核心为 Leaf ,实际结果可能与测试结果有出入
@ -96,6 +98,10 @@ ServerBackup 一款备份插件会由于找不到mca文件报错。
:::
#### Slime
请查看[Slime 区域格式](https://nitwikit.yizhan.wiki/Java/advance/slime-world)
## 其他
1。使用软链接 / 快捷方式共享多个服务器的 lib Minecraft 本体等(除非空间非常少否则不要这样,后果自负)

@ -18,16 +18,16 @@
},
"dependencies": {
"@ant-design/icons": "^5.5.1",
"@docusaurus/core": "^3.6.1",
"@docusaurus/faster": "^3.6.2",
"@docusaurus/plugin-content-docs": "^3.6.1",
"@docusaurus/plugin-debug": "^3.6.1",
"@docusaurus/plugin-pwa": "^3.6.1",
"@docusaurus/plugin-sitemap": "^3.6.1",
"@docusaurus/preset-classic": "^3.6.1",
"@docusaurus/theme-common": "^3.6.1",
"@docusaurus/theme-mermaid": "^3.6.1",
"@docusaurus/theme-search-algolia": "^3.6.1",
"@docusaurus/core": "^3.6.3",
"@docusaurus/faster": "^3.6.3",
"@docusaurus/plugin-content-docs": "^3.6.3",
"@docusaurus/plugin-debug": "^3.6.3",
"@docusaurus/plugin-pwa": "^3.6.3",
"@docusaurus/plugin-sitemap": "^3.6.3",
"@docusaurus/preset-classic": "^3.6.3",
"@docusaurus/theme-common": "^3.6.3",
"@docusaurus/theme-mermaid": "^3.6.3",
"@docusaurus/theme-search-algolia": "^3.6.3",
"@giscus/react": "^3.0.0",
"@mdx-js/react": "^3.1.0",
"antd": "^5.21.2",