管理和维护服务器
服务端文件说明
Section titled “服务端文件说明”在服务端根目录中,有很多文件和文件夹,以 paper 服务端根目录的文件夹为例,根据作用,可分为以下几类,它们的作用如下。
服务器核心文件
Section titled “服务器核心文件”这类文件在服务器运行时被调用,是服务器必不可少的核心文件。
| 文件名 | 详解 |
|---|---|
| paper-xx.xx.x-x.jar | 毋庸置疑,这是服务器的核心 jar 文件,运行服务端需要运行此 jar 文件。 |
| libraries | 存放 Minecraft 运行所需的 Java 库(如 authlib、commons-lang 等)。首次启动时若缺失,Paper 会自动从 Mojang 官方源下载。 |
| world | 服务器的存档文件夹,如果你没有修改 server.properties 文件的 level-name 选项,默认为 world,若修改,则为你修改的名称 |
| world_nether | 服务器的下界维度文件夹,如果你没有修改 server.properties 文件的 level-name 选项,默认为 world_nether,若修改,则为你修改的名称 + _nether |
| world_the_end | 服务器的下界维度文件夹,如果你没有修改 server.properties 文件的 level-name 选项,默认为 world_the_end,若修改,则为你修改的名称 + _the_end |
服务器配置文件
Section titled “服务器配置文件”这些文件控制着服务器的行为,
| 文件名 | 详解 |
|---|---|
| config | 存服务器的配置文件的文件夹,一般存放着较原版有第三方改动的配置文件,如 paper-global.yml、paper-world-defaults.yml。在模组服中,模组的配置文件在该目录下。 |
| paper-global.yml | 用于更改关于 paper 的全局配置。 |
| paper-world-defaults.yml | 用于更改关于世界的配置。 |
| server.properties | 服务器配置文件,mojang 官方服务端核心自带的配置文件。 |
| banned-ips.json | ip 封禁列表,存放着通过 /ban-ip 命令封禁的玩家ip。 |
| banned-players.json | 玩家封禁列表,存放着通过 /ban 命令封禁的玩家以及玩家 uuid。 |
| commands.yml | 添加自定义命令的配置文件。 |
| ops.json | 管理员权限名单。 |
| server-icon.png | 服务器图标,一般不会自动生成,需要玩家手动上传,尺寸与格式必须为 64x64 像素的 .png 格式,名称也必须为 server-icon.png。 |
| bukkit.yml | bukkit 系配置文件,paper 作为 bukkit 的下游服务端核心,存放关于 bukkit 系配置。 |
| spigot.yml | spigot 系配置文件,paper 作为 spigot 的下游服务端核心,存放关于 spigot 服务端配置。 |
plugins 为服务器的插件目录,插件的 jar 文件应该放在此目录下,插件的配置文件在 plugins/your_plugin_name 目录下。
存档文件说明
Section titled “存档文件说明”在服务端根目录的 world 文件夹内,有以下文件,他们存放着存档的数据,应优先备份此文件夹。
| 文件名 | 说明 |
|---|---|
| level.dat | 存档的核心文件,记录着世界的元数据,如游戏规则,游戏模式,种子以及是否开启作弊等。 |
| advancements | 存储锁定的游戏进度和成就,每个玩家对应一个文件,命名格式为 player's uuid.json 文件 |
| data | 存放世界级别的自定义数据,包括:地图物品的图像数据(idcounts.txt、maps/)、书与笔的内容(通过数据包或命令生成的持久化文本)等。 |
| datapacks | 此处放置你的数据包。 |
| region | 存放方块数据(地形、建筑等)。每个 .mca 文件管理 32×32 个区块(即 512×512 方块),文件名格式为 r.x.z.mca,其中 x = floor(方块X / 512),z = floor(方块Z / 512)。 |
| entities | 存放实体数据(生物、掉落物、矿车、容器内物品等),结构同 region。 |
| poi | 存放兴趣点(Points of Interest),如村民工作站、床、钟等,用于 AI 寻路,结构同上。 |
| playerdata | 存放玩家的游戏内数据,如背包中的物品,所处的维度机及其坐标,已经获得的经验值等,每个玩家对应一个文件,命名格式为 player's uuid.dat |
一般来说,仅需要备份存档即可,可以选择直接压缩为 .zip 格式来下载到本地来备份存档,对于 Linux 系统,可以选择编写一个 Shell 备份脚本来进行快捷备份,下面是柏茯灵自己为自己编写的备份脚本,可以在服务端根目录运行此脚本来备份存档。(编程能力有限还请见谅www)
此脚本会备份区域 (-2,-2)~(2,2) 之间的所有区域文件
x_overworld=("-2" "-1" "0" "1" "2")y_overworld=("-2" "-1" "0" "1" "2")files_all=("region" "entities" "poi")for files_1 in ${files_all[@]}; do mkdir -p ./backup/world/${files_1} for x_1 in ${x_overworld[@]}; do for y_1 in ${y_overworld[@]}; do cp ./world/${files_1}/r.${x_1}.${y_1}.mca ./backup/world/${files_1}/ done donedone
x_DIM_1=("-2" "-1" "0" "1" "2")y_DIM_1=("-2" "-1" "0" "1" "2")for files_2 in ${files_all[@]}; do mkdir -p ./backup/world_nether/DIM-1/${files_2}/ for x_2 in ${x_DIM_1[@]}; do for y_2 in ${y_DIM_1[@]}; do cp ./world_nether/DIM-1/${files_2}/r.${x_2}.${y_2}.mca ./backup/world_nether/DIM-1/${files_2}/ done donedone
x_DIM1=("-2" "-1" "0" "1" "2")y_DIM1=("-2" "-1" "0" "1" "2")for files_3 in ${files_all[@]}; do mkdir -p ./backup/world_the_end/DIM1/${files_3}/ for x_3 in ${x_DIM1[@]}; do for y_3 in ${y_DIM1[@]}; do cp ./world_the_end/DIM1/${files_3}/r.${x_3}.${y_3}.mca ./backup/world_the_end/DIM1/${files_3}/ done donedone
cd worldcp -r advancements data datapacks playerdata skinrestorer level.dat ../backup/world/
cd ../world_nethercp -r advancements data datapacks playerdata skinrestorer level.dat ../backup/world_nether/
cd ../world_the_endcp -r advancements data datapacks playerdata skinrestorer level.dat ../backup/world_the_end/
cd ..
date=$(date +%y.%m.%d)mkdir saveszip -r ./saves/backup-${date}.zip ./backuprm -r ./backup运行此脚本后,备份后的 zip 文件会被保存在服务端根目录的 saves 文件夹中。