diff --git a/README.md b/README.md
index a9dd1cf0..0270ac91 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,169 @@
-# dockerfile
+# Dockerfile 示例
-dockerfile说明及示例
\ No newline at end of file
+## Kiwix Server
+
+ZIM 资源阅读器,可在线预览 ZIM 文档。运行 Kiwix Server 服务后即可通过浏览器访问 ZIM 文件。
+
+
+**官方网站:**
+
+- 官网 : https://kiwix.org
+- ZIM 文件下载地址 : https://download.kiwix.org/zim
+
+**目录说明:**
+
+- standard : 标准镜像构建目录
+- alpine : 精简镜像构建目录
+- example : 使用示例
+
+**构建说明:**
+
+1. 进入指定目录(standard 或 alpine)
+
+2. 构建镜像
+
+``` bash
+docker build --no-cache -t 镜像名称:镜像TAG .
+```
+
+示例:
+
+- 标准镜像(基于 openSUSE 15.5)
+``` bash
+docker build --no-cache -t hty1024/kiwix-serve:3.5.0 .
+```
+
+- 精简镜像(基于 AlpineLinux 3.18.2)
+
+``` bash
+docker build --no-cache -t hty1024/kiwix-serve:3.5.0-alpine .
+```
+
+**使用方式:**
+1. 下载 ZIM 文件至主机
+
+2. 配置 ZIM 文件所属用户
+
+将 ZIM 文件所属用户组及用户均修改为 `1024`,示例如下:
+``` bash
+chown -R 1024.1024 ./data
+```
+
+3. 运行 Docker 容器
+
+- 直接运行
+
+``` bash
+docker run --name 容器名称 -dit -p 服务端口号:10080 -v ZIM文件目录:/data 镜像名称:镜像TAG
+```
+ 示例:
+
+```bash
+docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0
+```
+``` bash
+docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0-alpine
+```
+
+- Docker Compose 方式运行
+请参考 example 目录内的 compose.yaml 文件
+
+
+
+
+
+## PaperMC Paper
+
+Paper是基于Spigot的Minecraft游戏服务器,旨在大大提高性能并提供更高级的功能和API。
+
+
+**官方网站:**
+
+- 官网 : https://papermc.io
+- 官网 : https://papermc.io/software/paper
+- 官方文档 : https://docs.papermc.io
+- 官网文档 : https://docs.papermc.io/paper
+
+**目录说明:**
+
+- alpine : 精简镜像构建目录
+- example : 使用示例
+
+**构建说明:**
+
+1. 进入指定目录(alpine)
+
+2. 构建镜像
+
+``` bash
+docker build --no-cache -t 镜像名称:镜像TAG .
+```
+
+示例:
+
+- 精简镜像(基于 Amazon Corretto 17.0.8)
+
+``` bash
+docker build --no-cache -t hty1024/papermc/paper:1.20.1-134-alpine .
+```
+
+**使用方式:**
+1. 创建相关目录(用于持久化相关数据)
+
+创建 `world`、`world_nether`、`world_the_end`、`config`、`plugins`、`logs` 目录,示例如下:
+
+``` bash
+mkdir -pv {world,world_nether,world_the_end,config,plugins,logs}
+```
+
+2. 下载并按需修改配置文件 `server.properties`、`paper-global.yml`、`paper-world-defaults.yml` (文件见 `example` 目录)
+
+具体选项参考官方文档
+
+3. 阅读授权并修改 `eula.txt` 文件中 `eula` 的值为 `true`
+
+4. 配置相关文件的所属用户
+
+将目录的所属用户组及用户均修改为 `1024`:
+
+``` bash
+chown -R 1024.1024 world world_nether world_the_end config plugins logs server.properties eula.txt
+```
+
+5. 运行容器前的目录结构示例如下
+``` bash
+drwxr-xr-x 2 1024 1024 6 Aug 21 15:00 config
+-rw-r--r-- 1 1024 1024 157 Aug 21 13:18 eula.txt
+drwxr-xr-x 2 1024 1024 6 Aug 21 15:00 logs
+drwxr-xr-x 2 1024 1024 6 Aug 21 15:00 plugins
+-rw-r--r-- 1 1024 1024 1285 Aug 21 14:23 server.properties
+drwxr-xr-x 2 1024 1024 23 Aug 21 15:03 world
+drwxr-xr-x 2 1024 1024 23 Aug 21 15:03 world_nether
+drwxr-xr-x 2 1024 1024 23 Aug 21 15:03 world_the_end
+```
+- `world` : Overworld目录
+- `world_nether` : Nether目录
+- `world_the_end` : End目录
+- `config` : 配置文件目录
+- `server.properties` : 服务端配置文件
+- `eula.txt` : 授权校验文件
+- `plugins` : 插件目录
+- `logs` : 日志目录
+
+
+6. 运行 Docker 容器
+
+- 直接运行
+
+``` bash
+docker run --name 容器名称 -dit -p 服务端口号:25565 -v world目录:/opt/papermc/world -v world_nether目录:/opt/papermc/world_nether -v world_the_end目录:/opt/papermc/world_the_end -v config目录:/opt/papermc/config -v plugins目录:/opt/papermc/plugins -v logs目录:/opt/papermc/logs 镜像名称:镜像TAG
+```
+
+示例:
+
+```bash
+docker run --name papermc-server -dit -p 25565:25565 -v ./world:/opt/papermc/world -v ./world_nether:/opt/papermc/world_nether -v ./world_the_end:/opt/papermc/world_the_end -v ./config:/opt/papermc/config -v ./plugins:/opt/papermc/plugins -v ./logs:/opt/papermc/logs hty1024/papermc/paper:1.20.1-134-alpine
+```
+
+- Docker Compose 方式运行
+请参考 example 目录内的 compose.yaml 文件
diff --git a/description/dockerfile b/description/dockerfile
new file mode 100644
index 00000000..185c1b25
--- /dev/null
+++ b/description/dockerfile
@@ -0,0 +1,55 @@
+# 配置参数(指定基础镜像版本)
+ARG BASE_NAME=${BASE_NAME} \
+ BASE_TAG=${BASE_TAG}
+
+# 基于基础镜像构建
+FROM $BASE_NAME:$BASE_TAG
+
+# 指定自定义标签
+LABEL ${KEY1}=${VALUE1} ${KEY2}=${VALUE2} ${KEY3}=${VALUE3}
+
+# 指定默认挂载的目录
+VOLUME [${CONTAINER_DIR1},${CONTAINER_DIR2},${CONTAINER_DIR3}]
+
+# 指定端口号
+EXPOSE ${PORT1} ${PORT2} ${PORT3}
+
+# 配置参数
+ARG ${ARG1_NAME}=${ARG1_VALUE} \
+ ${ARG2_NAME}=${ARG2_VALUE} \
+ ${ARG3_NAME}=${ARG3_VALUE}
+
+# 配置环境变量
+ENV ${ENV1_NAME}=${ENV1_VALUE} \
+ ${ENV2_NAME}=${ENV2_VALUE} \
+ ${ENV3_NAME}=${ENV3_VALUE}
+
+# 运行命令
+RUN ${COMMAND1} && \
+ ${COMMAND2} && \
+ ${COMMAND3}
+
+# 复制文件(仅复制)
+COPY ${HOST_FILE1_NAME} ${CONTAINER_FILE1_PATH_AND_NAME}
+COPY ${HOST_FILE2_NAME} ${CONTAINER_FILE2_PATH_AND_NAME}
+COPY ${HOST_FILE3_NAME} ${CONTAINER_FILE3_PATH_AND_NAME}
+
+# 复制文件(自动解压 tar、zip、xz 等压缩文件)
+ADD ${HOST_FILE1_NAME} ${CONTAINER_FILE1_PATH_AND_NAME}
+ADD ${HOST_FILE2_NAME} ${CONTAINER_FILE2_PATH_AND_NAME}
+ADD ${HOST_FILE3_NAME} ${CONTAINER_FILE3_PATH_AND_NAME}
+
+# 设置工作目录
+WORKDIR ${CONTAINER_DIR}
+
+# 设置启动用户
+USER ${GROUP_NAME}:${USER_NAME}
+
+# 设置监控检查
+HEALTHCHECK ${HEALTHCHECK}
+
+# 设置执行启动脚本( docker run 时不可覆盖)
+ENTRYPOINT [${EXEC_FILE},${ARG1},${ARG2}]
+
+# 设置执行启动脚本( docker run 时可以覆盖)
+CMD [${EXEC_FILE},${ARG1},${ARG2}]
diff --git a/examples/kiwix-serve/alpine/dockerfile b/examples/kiwix-serve/alpine/dockerfile
new file mode 100644
index 00000000..48f8c02d
--- /dev/null
+++ b/examples/kiwix-serve/alpine/dockerfile
@@ -0,0 +1,52 @@
+# 配置参数(指定基础镜像版本)
+ARG BASE_TAG=3.18.2
+
+# 基于 AlpineLinux 构建
+FROM alpine:$BASE_TAG
+
+# 指定端口号
+EXPOSE 10080
+
+# 配置参数
+ARG GROUP_ID=1024 \
+ GROUP_NAME=kiwix \
+ USER_ID=1024 \
+ USER_NAME=kiwix \
+ USER_HOME=/home/kiwix \
+ USER_SHELL=/bin/bash
+
+# 更新应用并安装基础应用
+RUN set -ex && \
+ apk add tzdata && \
+ apk add --no-cache bash bash-doc bash-completion curl
+
+# 设置时区、新建用户组及用户、配置目录权限
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+ addgroup $GROUP_NAME -g $GROUP_ID && \
+ adduser $USER_NAME -G $GROUP_NAME -h $USER_HOME -s $USER_SHELL -u $USER_ID -D && \
+ mkdir -pv $USER_HOME && \
+ chown -R $GROUP_NAME.$USER_NAME $USER_HOME
+
+# 配置环境变量
+ARG KIWIX_SERVE_VERSION=3.5.0
+ENV KIWIX_HOME=/opt/kiwix-serve/$KIWIX_SERVE_VERSION \
+ KIWIX_ZIM_FILE_DIR=/data
+
+# 安装 Kiwix Server
+COPY kiwix-serve $KIWIX_HOME/kiwix-serve
+COPY entrypoint.sh $KIWIX_HOME/entrypoint.sh
+RUN mkdir -pv $KIWIX_ZIM_FILE_DIR && \
+ chown -R $GROUP_NAME.$USER_NAME $KIWIX_HOME $KIWIX_ZIM_FILE_DIR && \
+ chmod -R 755 $KIWIX_HOME $KIWIX_ZIM_FILE_DIR
+
+# 健康检查
+HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://127.0.0.1:10080 || exit 1
+
+# 设置工作目录
+WORKDIR $KIWIX_HOME
+
+# 设置启动用户
+USER $GROUP_NAME:$USER_NAME
+
+# 设置执行启动脚本
+CMD ["/bin/bash","-c","./entrypoint.sh"]
diff --git a/examples/kiwix-serve/alpine/entrypoint.sh b/examples/kiwix-serve/alpine/entrypoint.sh
new file mode 100755
index 00000000..22a2f21a
--- /dev/null
+++ b/examples/kiwix-serve/alpine/entrypoint.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+echo '===================================================================================================='
+echo `date +%Y-%m-%d` `date +%H:%M:%S`
+echo '============================== 开始启动 Kiwix Serve...... =============================='
+echo 'Kiwix Serve 工作目录:' $KIWIX_HOME
+echo 'Kiwix Serve 监听端口:10080'
+echo 'ZIM 文件目录:' $KIWIX_ZIM_FILE_DIR
+echo '----------------------------------------------------------------------------------------------------'
+$KIWIX_HOME/kiwix-serve -p 10080 $KIWIX_ZIM_FILE_DIR/*.zim
diff --git a/examples/kiwix-serve/alpine/kiwix-serve b/examples/kiwix-serve/alpine/kiwix-serve
new file mode 100755
index 00000000..857955f3
Binary files /dev/null and b/examples/kiwix-serve/alpine/kiwix-serve differ
diff --git a/examples/kiwix-serve/example/compose.yaml b/examples/kiwix-serve/example/compose.yaml
new file mode 100644
index 00000000..c5b181d0
--- /dev/null
+++ b/examples/kiwix-serve/example/compose.yaml
@@ -0,0 +1,20 @@
+version: "3.9"
+
+services:
+ kiwix-serve:
+# image: hty1024/kiwix-serve:3.5.0-2
+ image: hty1024/kiwix-serve:3.5.0-2-alpine
+ container_name: kiwix-serve
+ restart: always
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - ./data:/data
+ ports:
+ - "10080:10080"
+ networks:
+ - app_network
+
+networks:
+ app_network:
+ external: true
+ name: app_network
diff --git a/examples/kiwix-serve/example/data/wikipedia_zh_computer_maxi_2023-07.zim b/examples/kiwix-serve/example/data/wikipedia_zh_computer_maxi_2023-07.zim
new file mode 100644
index 00000000..f00a1238
Binary files /dev/null and b/examples/kiwix-serve/example/data/wikipedia_zh_computer_maxi_2023-07.zim differ
diff --git a/examples/kiwix-serve/example/kiwix-tools_linux-x86_64-3.5.0-2.tar.gz b/examples/kiwix-serve/example/kiwix-tools_linux-x86_64-3.5.0-2.tar.gz
new file mode 100644
index 00000000..5bbf2ae7
Binary files /dev/null and b/examples/kiwix-serve/example/kiwix-tools_linux-x86_64-3.5.0-2.tar.gz differ
diff --git a/examples/kiwix-serve/example/kiwix-tools_linux-x86_64-3.5.0.tar.gz b/examples/kiwix-serve/example/kiwix-tools_linux-x86_64-3.5.0.tar.gz
new file mode 100644
index 00000000..af9dd6c2
Binary files /dev/null and b/examples/kiwix-serve/example/kiwix-tools_linux-x86_64-3.5.0.tar.gz differ
diff --git a/examples/kiwix-serve/standard/dockerfile b/examples/kiwix-serve/standard/dockerfile
new file mode 100644
index 00000000..caeafc84
--- /dev/null
+++ b/examples/kiwix-serve/standard/dockerfile
@@ -0,0 +1,54 @@
+# 配置参数(指定基础镜像版本)
+ARG BASE_TAG=15.5
+
+# 基于 openSUSE 构建
+FROM opensuse/leap:$BASE_TAG
+
+# 指定端口号
+EXPOSE 10080
+
+# 配置参数
+ARG GROUP_ID=1024 \
+ GROUP_NAME=kiwix \
+ USER_ID=1024 \
+ USER_NAME=kiwix \
+ USER_HOME=/home/kiwix \
+ USER_SHELL=/bin/bash
+
+# 更新应用并安装基础应用、清除 zypper 缓存
+RUN set -ex && \
+ zypper refresh && \
+ zypper update -y && \
+ zypper install -y curl && \
+ zypper clean
+
+# 设置时区、新建用户组及用户、配置目录权限
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+ groupadd $GROUP_NAME -g $GROUP_ID && \
+ useradd $USER_NAME -g $GROUP_ID -d $USER_HOME -s $USER_SHELL -u $USER_ID && \
+ mkdir -pv $USER_HOME && \
+ chown -R $GROUP_NAME.$USER_NAME $USER_HOME
+
+# 配置环境变量
+ARG KIWIX_SERVE_VERSION=3.5.0
+ENV KIWIX_HOME=/opt/kiwix-serve/$KIWIX_SERVE_VERSION \
+ KIWIX_ZIM_FILE_DIR=/data
+
+# 安装 Kiwix Server
+COPY kiwix-serve $KIWIX_HOME/kiwix-serve
+COPY entrypoint.sh $KIWIX_HOME/entrypoint.sh
+RUN mkdir -pv $KIWIX_ZIM_FILE_DIR && \
+ chown -R $GROUP_NAME.$USER_NAME $KIWIX_HOME $KIWIX_ZIM_FILE_DIR && \
+ chmod -R 755 $KIWIX_HOME $KIWIX_ZIM_FILE_DIR
+
+# 健康检查
+HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://127.0.0.1:10080 || exit 1
+
+# 设置工作目录
+WORKDIR $KIWIX_HOME
+
+# 设置启动用户
+USER $GROUP_NAME:$USER_NAME
+
+# 设置执行启动脚本
+CMD ["/bin/bash","-c","./entrypoint.sh"]
diff --git a/examples/kiwix-serve/standard/entrypoint.sh b/examples/kiwix-serve/standard/entrypoint.sh
new file mode 100755
index 00000000..22a2f21a
--- /dev/null
+++ b/examples/kiwix-serve/standard/entrypoint.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+echo '===================================================================================================='
+echo `date +%Y-%m-%d` `date +%H:%M:%S`
+echo '============================== 开始启动 Kiwix Serve...... =============================='
+echo 'Kiwix Serve 工作目录:' $KIWIX_HOME
+echo 'Kiwix Serve 监听端口:10080'
+echo 'ZIM 文件目录:' $KIWIX_ZIM_FILE_DIR
+echo '----------------------------------------------------------------------------------------------------'
+$KIWIX_HOME/kiwix-serve -p 10080 $KIWIX_ZIM_FILE_DIR/*.zim
diff --git a/examples/kiwix-serve/standard/kiwix-serve b/examples/kiwix-serve/standard/kiwix-serve
new file mode 100755
index 00000000..857955f3
Binary files /dev/null and b/examples/kiwix-serve/standard/kiwix-serve differ
diff --git a/examples/papermc/paper/alpine/dockerfile b/examples/papermc/paper/alpine/dockerfile
new file mode 100644
index 00000000..6a1f6e92
--- /dev/null
+++ b/examples/papermc/paper/alpine/dockerfile
@@ -0,0 +1,60 @@
+# 配置参数(指定基础镜像版本)
+ARG BASE_TAG=17.0.8-alpine3.18
+
+# 基于 Amazon Corretto 构建
+FROM amazoncorretto:$BASE_TAG
+
+# 指定端口号
+EXPOSE 25565 25575
+
+# 配置参数
+ARG GROUP_ID=1024 \
+ GROUP_NAME=papermc \
+ USER_ID=1024 \
+ USER_NAME=papermc \
+ USER_HOME=/home/papermc \
+ USER_SHELL=/bin/bash
+
+# 更新应用并安装基础应用
+RUN set -ex && \
+ apk add tzdata && \
+ apk add --no-cache bash bash-doc bash-completion
+
+# 设置时区、新建用户组及用户、配置目录权限
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+ addgroup $GROUP_NAME -g $GROUP_ID && \
+ adduser $USER_NAME -G $GROUP_NAME -h $USER_HOME -s $USER_SHELL -u $USER_ID -D && \
+ mkdir -pv $USER_HOME && \
+ chown -R $GROUP_NAME.$USER_NAME $USER_HOME
+
+# 配置环境变量
+ARG PAPERMC_PAPER_VERSION=1.20.1-134 \
+ MOJANG_VERSION=1.20.1
+ENV PAPERMC_PAPER_VERSION=$PAPERMC_PAPER_VERSION \
+ MOJANG_VERSION=$MOJANG_VERSION \
+ PAPERMC_PAPER_HOME=/opt/papermc/paper \
+ PAPERMC_PAPER_DATA_DIR=/opt/papermc/paper
+
+# 安装 PaperMC Server
+COPY paper-$PAPERMC_PAPER_VERSION.jar $PAPERMC_PAPER_HOME/paper-$PAPERMC_PAPER_VERSION.jar
+COPY mojang_$MOJANG_VERSION.jar $PAPERMC_PAPER_HOME/cache/mojang_$MOJANG_VERSION.jar
+COPY server.properties $PAPERMC_PAPER_HOME/server.properties
+COPY paper-global.yml $PAPERMC_PAPER_HOME/config/paper-global.yml
+COPY paper-world-defaults.yml $PAPERMC_PAPER_HOME/config/paper-world-defaults.yml
+COPY eula.txt $PAPERMC_PAPER_HOME/eula.txt
+COPY entrypoint.sh $PAPERMC_PAPER_HOME/entrypoint.sh
+RUN mkdir -pv $PAPERMC_PAPER_DATA_DIR && \
+ chown -R $GROUP_NAME.$USER_NAME $PAPERMC_PAPER_HOME $PAPERMC_PAPER_DATA_DIR && \
+ chmod -R 755 $PAPERMC_PAPER_HOME $PAPERMC_PAPER_DATA_DIR
+
+# 设置工作目录
+WORKDIR $PAPERMC_PAPER_HOME
+
+# 指定默认挂载目录
+VOLUME [$PAPERMC_PAPER_HOME/world, $PAPERMC_PAPER_HOME/world_nether, $PAPERMC_PAPER_HOME/world_the_end, $PAPERMC_PAPER_HOME/config, $PAPERMC_PAPER_HOME/plugins, $PAPERMC_PAPER_HOME/logs]
+
+# 设置启动用户
+USER $GROUP_NAME:$USER_NAME
+
+# 设置执行启动脚本
+CMD ["/bin/bash","-c","./entrypoint.sh"]
diff --git a/examples/papermc/paper/alpine/entrypoint.sh b/examples/papermc/paper/alpine/entrypoint.sh
new file mode 100755
index 00000000..084184d9
--- /dev/null
+++ b/examples/papermc/paper/alpine/entrypoint.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+echo '===================================================================================================='
+echo `date +%Y-%m-%d` `date +%H:%M:%S`
+echo '============================== 开始启动 PaperMC Paper...... =============================='
+echo 'PaperMC Paper 版本号:' $PAPERMC_PAPER_VERSION
+echo 'PaperMC Paper 工作目录:' $PAPERMC_PAPER_HOME
+echo 'PaperMC Paper 监听端口:25565'
+echo '数据文件目录:' $PAPERMC_PAPER_DATA_DIR
+echo '----------------------------------------------------------------------------------------------------'
+java -Xms2G -Xmx2G -jar $PAPERMC_PAPER_HOME/paper-$PAPERMC_PAPER_VERSION.jar --nogui
diff --git a/examples/papermc/paper/alpine/eula.txt b/examples/papermc/paper/alpine/eula.txt
new file mode 100644
index 00000000..05ad73ef
--- /dev/null
+++ b/examples/papermc/paper/alpine/eula.txt
@@ -0,0 +1,3 @@
+#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
+#Mon Aug 21 11:07:07 CST 2023
+eula=false
diff --git a/examples/papermc/paper/alpine/mojang_1.20.1.jar b/examples/papermc/paper/alpine/mojang_1.20.1.jar
new file mode 100644
index 00000000..b89a7c53
Binary files /dev/null and b/examples/papermc/paper/alpine/mojang_1.20.1.jar differ
diff --git a/examples/papermc/paper/alpine/paper-1.20.1-134.jar b/examples/papermc/paper/alpine/paper-1.20.1-134.jar
new file mode 100755
index 00000000..fd608681
Binary files /dev/null and b/examples/papermc/paper/alpine/paper-1.20.1-134.jar differ
diff --git a/examples/papermc/paper/alpine/paper-global.yml b/examples/papermc/paper/alpine/paper-global.yml
new file mode 100644
index 00000000..1487f509
--- /dev/null
+++ b/examples/papermc/paper/alpine/paper-global.yml
@@ -0,0 +1,128 @@
+# This is the global configuration file for Paper.
+# As you can see, there's a lot to configure. Some options may impact gameplay, so use
+# with caution, and make sure you know what each option does before configuring.
+#
+# If you need help with the configuration or have any questions related to Paper,
+# join us in our Discord or check the docs page.
+#
+# The world configuration options have been moved inside
+# their respective world folder. The files are named paper-world.yml
+#
+# Docs: https://docs.papermc.io/
+# Discord: https://discord.gg/papermc
+# Website: https://papermc.io/
+
+_version: 28
+block-updates:
+ disable-noteblock-updates: false
+ disable-tripwire-updates: false
+chunk-loading-advanced:
+ auto-config-send-distance: true
+ player-max-concurrent-chunk-generates: 0
+ player-max-concurrent-chunk-loads: 0
+chunk-loading-basic:
+ player-max-chunk-generate-rate: -1.0
+ player-max-chunk-load-rate: 100.0
+ player-max-chunk-send-rate: 75.0
+chunk-system:
+ gen-parallelism: default
+ io-threads: -1
+ worker-threads: -1
+collisions:
+ enable-player-collisions: true
+ send-full-pos-for-hard-colliding-entities: true
+commands:
+ fix-target-selector-tag-completion: true
+ suggest-player-names-when-null-tab-completions: true
+ time-command-affects-all-worlds: false
+console:
+ enable-brigadier-completions: true
+ enable-brigadier-highlighting: true
+ has-all-permissions: false
+item-validation:
+ book:
+ author: 8192
+ page: 16384
+ title: 8192
+ book-size:
+ page-max: 2560
+ total-multiplier: 0.98
+ display-name: 8192
+ lore-line: 8192
+ resolve-selectors-in-books: false
+logging:
+ deobfuscate-stacktraces: true
+ log-player-ip-addresses: true
+messages:
+ kick:
+ authentication-servers-down:
+ connection-throttle: Connection throttled! Please wait before reconnecting.
+ flying-player:
+ flying-vehicle:
+ no-permission: I'm sorry, but you do not have permission to perform this command.
+ Please contact the server administrators if you believe that this is in error.
+ use-display-name-in-quit-message: false
+misc:
+ chat-threads:
+ chat-executor-core-size: -1
+ chat-executor-max-size: -1
+ fix-entity-position-desync: true
+ lag-compensate-block-breaking: true
+ load-permissions-yml-before-plugins: true
+ max-joins-per-tick: 5
+ region-file-cache-size: 256
+ strict-advancement-dimension-check: false
+ use-alternative-luck-formula: false
+ use-dimension-type-for-custom-spawners: false
+packet-limiter:
+ all-packets:
+ action: KICK
+ interval: 7.0
+ max-packet-rate: 500.0
+ kick-message:
+ overrides:
+ ServerboundPlaceRecipePacket:
+ action: DROP
+ interval: 4.0
+ max-packet-rate: 5.0
+player-auto-save:
+ max-per-tick: -1
+ rate: -1
+proxies:
+ bungee-cord:
+ online-mode: true
+ proxy-protocol: false
+ velocity:
+ enabled: false
+ online-mode: false
+ secret: ''
+scoreboards:
+ save-empty-scoreboard-teams: false
+ track-plugin-scoreboards: false
+spam-limiter:
+ incoming-packet-threshold: 300
+ recipe-spam-increment: 1
+ recipe-spam-limit: 20
+ tab-spam-increment: 1
+ tab-spam-limit: 500
+timings:
+ enabled: true
+ hidden-config-entries:
+ - database
+ - proxies.velocity.secret
+ history-interval: 300
+ history-length: 3600
+ server-name: Unknown Server
+ server-name-privacy: false
+ url: https://timings.aikar.co/
+ verbose: true
+unsupported-settings:
+ allow-grindstone-overstacking: false
+ allow-headless-pistons: false
+ allow-permanent-block-break-exploits: false
+ allow-piston-duplication: false
+ compression-format: ZLIB
+ perform-username-validation: true
+watchdog:
+ early-warning-delay: 10000
+ early-warning-every: 5000
diff --git a/examples/papermc/paper/alpine/paper-world-defaults.yml b/examples/papermc/paper/alpine/paper-world-defaults.yml
new file mode 100644
index 00000000..201dfcbf
--- /dev/null
+++ b/examples/papermc/paper/alpine/paper-world-defaults.yml
@@ -0,0 +1,290 @@
+# This is the world defaults configuration file for Paper.
+# As you can see, there's a lot to configure. Some options may impact gameplay, so use
+# with caution, and make sure you know what each option does before configuring.
+#
+# If you need help with the configuration or have any questions related to Paper,
+# join us in our Discord or check the docs page.
+#
+# Configuration options here apply to all worlds, unless you specify overrides inside
+# the world-specific config file inside each world folder.
+#
+# Docs: https://docs.papermc.io/
+# Discord: https://discord.gg/papermc
+# Website: https://papermc.io/
+
+_version: 30
+anticheat:
+ anti-xray:
+ enabled: false
+ engine-mode: 1
+ hidden-blocks:
+ - copper_ore
+ - deepslate_copper_ore
+ - gold_ore
+ - deepslate_gold_ore
+ - iron_ore
+ - deepslate_iron_ore
+ - coal_ore
+ - deepslate_coal_ore
+ - lapis_ore
+ - deepslate_lapis_ore
+ - mossy_cobblestone
+ - obsidian
+ - chest
+ - diamond_ore
+ - deepslate_diamond_ore
+ - redstone_ore
+ - deepslate_redstone_ore
+ - clay
+ - emerald_ore
+ - deepslate_emerald_ore
+ - ender_chest
+ lava-obscures: false
+ max-block-height: 64
+ replacement-blocks:
+ - stone
+ - oak_planks
+ - deepslate
+ update-radius: 2
+ use-permission: false
+ obfuscation:
+ items:
+ hide-durability: false
+ hide-itemmeta: false
+ hide-itemmeta-with-visual-effects: false
+chunks:
+ auto-save-interval: default
+ delay-chunk-unloads-by: 10s
+ entity-per-chunk-save-limit:
+ arrow: -1
+ ender_pearl: -1
+ experience_orb: -1
+ fireball: -1
+ small_fireball: -1
+ snowball: -1
+ fixed-chunk-inhabited-time: -1
+ flush-regions-on-save: false
+ max-auto-save-chunks-per-tick: 24
+ prevent-moving-into-unloaded-chunks: false
+collisions:
+ allow-player-cramming-damage: false
+ allow-vehicle-collisions: true
+ fix-climbing-bypassing-cramming-rule: false
+ max-entity-collisions: 8
+ only-players-collide: false
+entities:
+ armor-stands:
+ do-collision-entity-lookups: true
+ tick: true
+ behavior:
+ allow-spider-world-border-climbing: true
+ baby-zombie-movement-modifier: 0.5
+ disable-chest-cat-detection: false
+ disable-creeper-lingering-effect: false
+ disable-player-crits: false
+ door-breaking-difficulty:
+ husk:
+ - HARD
+ vindicator:
+ - NORMAL
+ - HARD
+ zombie:
+ - HARD
+ zombie_villager:
+ - HARD
+ zombified_piglin:
+ - HARD
+ ender-dragons-death-always-places-dragon-egg: false
+ experience-merge-max-value: -1
+ mobs-can-always-pick-up-loot:
+ skeletons: false
+ zombies: false
+ nerf-pigmen-from-nether-portals: false
+ parrots-are-unaffected-by-player-movement: false
+ phantoms-do-not-spawn-on-creative-players: true
+ phantoms-only-attack-insomniacs: true
+ phantoms-spawn-attempt-max-seconds: 119
+ phantoms-spawn-attempt-min-seconds: 60
+ piglins-guard-chests: true
+ pillager-patrols:
+ disable: false
+ spawn-chance: 0.2
+ spawn-delay:
+ per-player: false
+ ticks: 12000
+ start:
+ day: 5
+ per-player: false
+ player-insomnia-start-ticks: 72000
+ should-remove-dragon: false
+ spawner-nerfed-mobs-should-jump: false
+ zombie-villager-infection-chance: -1.0
+ zombies-target-turtle-eggs: true
+ entities-target-with-follow-range: false
+ markers:
+ tick: true
+ mob-effects:
+ immune-to-wither-effect:
+ wither: true
+ wither-skeleton: true
+ spiders-immune-to-poison-effect: true
+ undead-immune-to-certain-effects: true
+ spawning:
+ all-chunks-are-slime-chunks: false
+ alt-item-despawn-rate:
+ enabled: false
+ items:
+ cobblestone: 300
+ count-all-mobs-for-spawning: false
+ creative-arrow-despawn-rate: default
+ despawn-ranges:
+ ambient:
+ hard: 128
+ soft: 32
+ axolotls:
+ hard: 128
+ soft: 32
+ creature:
+ hard: 128
+ soft: 32
+ misc:
+ hard: 128
+ soft: 32
+ monster:
+ hard: 128
+ soft: 32
+ underground_water_creature:
+ hard: 128
+ soft: 32
+ water_ambient:
+ hard: 64
+ soft: 32
+ water_creature:
+ hard: 128
+ soft: 32
+ disable-mob-spawner-spawn-egg-transformation: false
+ duplicate-uuid:
+ mode: SAFE_REGEN
+ safe-regen-delete-range: 32
+ filter-bad-tile-entity-nbt-from-falling-blocks: true
+ filtered-entity-tag-nbt-paths:
+ - Pos
+ - Motion
+ - SleepingX
+ - SleepingY
+ - SleepingZ
+ iron-golems-can-spawn-in-air: false
+ monster-spawn-max-light-level: -1
+ non-player-arrow-despawn-rate: default
+ per-player-mob-spawns: true
+ scan-for-legacy-ender-dragon: true
+ skeleton-horse-thunder-spawn-chance: default
+ slime-spawn-height:
+ slime-chunk:
+ maximum: 40.0
+ surface-biome:
+ maximum: 70.0
+ minimum: 50.0
+ spawn-limits:
+ ambient: -1
+ axolotls: -1
+ creature: -1
+ monster: -1
+ underground_water_creature: -1
+ water_ambient: -1
+ water_creature: -1
+ wandering-trader:
+ spawn-chance-failure-increment: 25
+ spawn-chance-max: 75
+ spawn-chance-min: 25
+ spawn-day-length: 24000
+ spawn-minute-length: 1200
+ wateranimal-spawn-height:
+ maximum: default
+ minimum: default
+environment:
+ disable-explosion-knockback: false
+ disable-ice-and-snow: false
+ disable-teleportation-suffocation-check: false
+ disable-thunder: false
+ fire-tick-delay: 30
+ frosted-ice:
+ delay:
+ max: 40
+ min: 20
+ enabled: true
+ generate-flat-bedrock: false
+ nether-ceiling-void-damage-height: disabled
+ optimize-explosions: false
+ portal-create-radius: 16
+ portal-search-radius: 128
+ portal-search-vanilla-dimension-scaling: true
+ treasure-maps:
+ enabled: true
+ find-already-discovered:
+ loot-tables: default
+ villager-trade: false
+ water-over-lava-flow-speed: 5
+feature-seeds:
+ generate-random-seeds-for-all: false
+fishing-time-range:
+ maximum: 600
+ minimum: 100
+fixes:
+ disable-unloaded-chunk-enderpearl-exploit: true
+ falling-block-height-nerf: disabled
+ fix-curing-zombie-villager-discount-exploit: true
+ fix-items-merging-through-walls: false
+ prevent-tnt-from-moving-in-water: false
+ split-overstacked-loot: true
+ tnt-entity-height-nerf: disabled
+hopper:
+ cooldown-when-full: true
+ disable-move-event: false
+ ignore-occluding-blocks: false
+lootables:
+ auto-replenish: false
+ max-refills: -1
+ refresh-max: 2d
+ refresh-min: 12h
+ reset-seed-on-fill: true
+ restrict-player-reloot: true
+ restrict-player-reloot-time: disabled
+maps:
+ item-frame-cursor-limit: 128
+ item-frame-cursor-update-interval: 10
+max-growth-height:
+ bamboo:
+ max: 16
+ min: 11
+ cactus: 3
+ reeds: 3
+misc:
+ disable-end-credits: false
+ disable-relative-projectile-velocity: false
+ disable-sprint-interruption-on-attack: false
+ light-queue-size: 20
+ max-leash-distance: 10.0
+ redstone-implementation: VANILLA
+ shield-blocking-delay: 5
+ show-sign-click-command-failure-msgs-to-player: false
+ update-pathfinding-on-block-update: true
+scoreboards:
+ allow-non-player-entities-on-scoreboards: true
+ use-vanilla-world-scoreboard-name-coloring: false
+spawn:
+ allow-using-signs-inside-spawn-protection: false
+ keep-spawn-loaded: true
+ keep-spawn-loaded-range: 10
+tick-rates:
+ behavior:
+ villager:
+ validatenearbypoi: -1
+ container-update: 1
+ grass-spread: 1
+ mob-spawner: 1
+ sensor:
+ villager:
+ secondarypoisensor: 40
+unsupported-settings:
+ fix-invulnerable-end-crystal-exploit: true
diff --git a/examples/papermc/paper/alpine/server.properties b/examples/papermc/paper/alpine/server.properties
new file mode 100644
index 00000000..da18e4f3
--- /dev/null
+++ b/examples/papermc/paper/alpine/server.properties
@@ -0,0 +1,59 @@
+#Minecraft server properties
+#Mon Aug 21 11:08:46 CST 2023
+enable-jmx-monitoring=false
+rcon.port=25575
+level-seed=
+gamemode=survival
+enable-command-block=false
+enable-query=false
+generator-settings={}
+enforce-secure-profile=true
+level-name=world
+motd=A Minecraft Server
+query.port=25565
+pvp=true
+generate-structures=true
+max-chained-neighbor-updates=1000000
+difficulty=easy
+network-compression-threshold=256
+max-tick-time=60000
+require-resource-pack=false
+use-native-transport=true
+max-players=20
+online-mode=false
+enable-status=true
+allow-flight=false
+initial-disabled-packs=
+broadcast-rcon-to-ops=true
+view-distance=10
+server-ip=
+resource-pack-prompt=
+allow-nether=true
+server-port=25565
+enable-rcon=false
+sync-chunk-writes=true
+op-permission-level=4
+prevent-proxy-connections=false
+hide-online-players=false
+resource-pack=
+entity-broadcast-range-percentage=100
+simulation-distance=10
+rcon.password=
+player-idle-timeout=0
+debug=false
+force-gamemode=false
+rate-limit=0
+hardcore=false
+white-list=false
+broadcast-console-to-ops=true
+spawn-npcs=true
+spawn-animals=true
+function-permission-level=2
+initial-enabled-packs=vanilla
+level-type=minecraft\:normal
+text-filtering-config=
+spawn-monsters=true
+enforce-whitelist=false
+spawn-protection=16
+resource-pack-sha1=
+max-world-size=29999984
diff --git a/examples/papermc/paper/example/compose.yaml b/examples/papermc/paper/example/compose.yaml
new file mode 100644
index 00000000..c66c5041
--- /dev/null
+++ b/examples/papermc/paper/example/compose.yaml
@@ -0,0 +1,27 @@
+version: "3.9"
+
+services:
+ papermc-paper:
+# image: hty1024/papermc/paper:1.20.1-134
+ image: hty1024/papermc/paper:1.20.1-134-alpine
+ container_name: papermc-paper
+ restart: always
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - ./world:/opt/papermc/paper/world
+ - ./world_nether:/opt/papermc/paper/world_nether
+ - ./world_the_end:/opt/papermc/paper/world_the_end
+ - ./config:/opt/papermc/paper/config
+ - ./server.properties:/opt/papermc/paper/server.properties
+ - ./eula.txt:/opt/papermc/paper/eula.txt
+ - ./plugins:/opt/papermc/paper/plugins
+ - ./logs:/opt/papermc/paper/logs
+ ports:
+ - "25565:25565"
+ networks:
+ - app_network
+
+networks:
+ app_network:
+ external: true
+ name: app_network
diff --git a/examples/papermc/paper/example/config/paper-global.yml b/examples/papermc/paper/example/config/paper-global.yml
new file mode 100644
index 00000000..1487f509
--- /dev/null
+++ b/examples/papermc/paper/example/config/paper-global.yml
@@ -0,0 +1,128 @@
+# This is the global configuration file for Paper.
+# As you can see, there's a lot to configure. Some options may impact gameplay, so use
+# with caution, and make sure you know what each option does before configuring.
+#
+# If you need help with the configuration or have any questions related to Paper,
+# join us in our Discord or check the docs page.
+#
+# The world configuration options have been moved inside
+# their respective world folder. The files are named paper-world.yml
+#
+# Docs: https://docs.papermc.io/
+# Discord: https://discord.gg/papermc
+# Website: https://papermc.io/
+
+_version: 28
+block-updates:
+ disable-noteblock-updates: false
+ disable-tripwire-updates: false
+chunk-loading-advanced:
+ auto-config-send-distance: true
+ player-max-concurrent-chunk-generates: 0
+ player-max-concurrent-chunk-loads: 0
+chunk-loading-basic:
+ player-max-chunk-generate-rate: -1.0
+ player-max-chunk-load-rate: 100.0
+ player-max-chunk-send-rate: 75.0
+chunk-system:
+ gen-parallelism: default
+ io-threads: -1
+ worker-threads: -1
+collisions:
+ enable-player-collisions: true
+ send-full-pos-for-hard-colliding-entities: true
+commands:
+ fix-target-selector-tag-completion: true
+ suggest-player-names-when-null-tab-completions: true
+ time-command-affects-all-worlds: false
+console:
+ enable-brigadier-completions: true
+ enable-brigadier-highlighting: true
+ has-all-permissions: false
+item-validation:
+ book:
+ author: 8192
+ page: 16384
+ title: 8192
+ book-size:
+ page-max: 2560
+ total-multiplier: 0.98
+ display-name: 8192
+ lore-line: 8192
+ resolve-selectors-in-books: false
+logging:
+ deobfuscate-stacktraces: true
+ log-player-ip-addresses: true
+messages:
+ kick:
+ authentication-servers-down:
+ connection-throttle: Connection throttled! Please wait before reconnecting.
+ flying-player:
+ flying-vehicle:
+ no-permission: I'm sorry, but you do not have permission to perform this command.
+ Please contact the server administrators if you believe that this is in error.
+ use-display-name-in-quit-message: false
+misc:
+ chat-threads:
+ chat-executor-core-size: -1
+ chat-executor-max-size: -1
+ fix-entity-position-desync: true
+ lag-compensate-block-breaking: true
+ load-permissions-yml-before-plugins: true
+ max-joins-per-tick: 5
+ region-file-cache-size: 256
+ strict-advancement-dimension-check: false
+ use-alternative-luck-formula: false
+ use-dimension-type-for-custom-spawners: false
+packet-limiter:
+ all-packets:
+ action: KICK
+ interval: 7.0
+ max-packet-rate: 500.0
+ kick-message:
+ overrides:
+ ServerboundPlaceRecipePacket:
+ action: DROP
+ interval: 4.0
+ max-packet-rate: 5.0
+player-auto-save:
+ max-per-tick: -1
+ rate: -1
+proxies:
+ bungee-cord:
+ online-mode: true
+ proxy-protocol: false
+ velocity:
+ enabled: false
+ online-mode: false
+ secret: ''
+scoreboards:
+ save-empty-scoreboard-teams: false
+ track-plugin-scoreboards: false
+spam-limiter:
+ incoming-packet-threshold: 300
+ recipe-spam-increment: 1
+ recipe-spam-limit: 20
+ tab-spam-increment: 1
+ tab-spam-limit: 500
+timings:
+ enabled: true
+ hidden-config-entries:
+ - database
+ - proxies.velocity.secret
+ history-interval: 300
+ history-length: 3600
+ server-name: Unknown Server
+ server-name-privacy: false
+ url: https://timings.aikar.co/
+ verbose: true
+unsupported-settings:
+ allow-grindstone-overstacking: false
+ allow-headless-pistons: false
+ allow-permanent-block-break-exploits: false
+ allow-piston-duplication: false
+ compression-format: ZLIB
+ perform-username-validation: true
+watchdog:
+ early-warning-delay: 10000
+ early-warning-every: 5000
diff --git a/examples/papermc/paper/example/config/paper-world-defaults.yml b/examples/papermc/paper/example/config/paper-world-defaults.yml
new file mode 100644
index 00000000..201dfcbf
--- /dev/null
+++ b/examples/papermc/paper/example/config/paper-world-defaults.yml
@@ -0,0 +1,290 @@
+# This is the world defaults configuration file for Paper.
+# As you can see, there's a lot to configure. Some options may impact gameplay, so use
+# with caution, and make sure you know what each option does before configuring.
+#
+# If you need help with the configuration or have any questions related to Paper,
+# join us in our Discord or check the docs page.
+#
+# Configuration options here apply to all worlds, unless you specify overrides inside
+# the world-specific config file inside each world folder.
+#
+# Docs: https://docs.papermc.io/
+# Discord: https://discord.gg/papermc
+# Website: https://papermc.io/
+
+_version: 30
+anticheat:
+ anti-xray:
+ enabled: false
+ engine-mode: 1
+ hidden-blocks:
+ - copper_ore
+ - deepslate_copper_ore
+ - gold_ore
+ - deepslate_gold_ore
+ - iron_ore
+ - deepslate_iron_ore
+ - coal_ore
+ - deepslate_coal_ore
+ - lapis_ore
+ - deepslate_lapis_ore
+ - mossy_cobblestone
+ - obsidian
+ - chest
+ - diamond_ore
+ - deepslate_diamond_ore
+ - redstone_ore
+ - deepslate_redstone_ore
+ - clay
+ - emerald_ore
+ - deepslate_emerald_ore
+ - ender_chest
+ lava-obscures: false
+ max-block-height: 64
+ replacement-blocks:
+ - stone
+ - oak_planks
+ - deepslate
+ update-radius: 2
+ use-permission: false
+ obfuscation:
+ items:
+ hide-durability: false
+ hide-itemmeta: false
+ hide-itemmeta-with-visual-effects: false
+chunks:
+ auto-save-interval: default
+ delay-chunk-unloads-by: 10s
+ entity-per-chunk-save-limit:
+ arrow: -1
+ ender_pearl: -1
+ experience_orb: -1
+ fireball: -1
+ small_fireball: -1
+ snowball: -1
+ fixed-chunk-inhabited-time: -1
+ flush-regions-on-save: false
+ max-auto-save-chunks-per-tick: 24
+ prevent-moving-into-unloaded-chunks: false
+collisions:
+ allow-player-cramming-damage: false
+ allow-vehicle-collisions: true
+ fix-climbing-bypassing-cramming-rule: false
+ max-entity-collisions: 8
+ only-players-collide: false
+entities:
+ armor-stands:
+ do-collision-entity-lookups: true
+ tick: true
+ behavior:
+ allow-spider-world-border-climbing: true
+ baby-zombie-movement-modifier: 0.5
+ disable-chest-cat-detection: false
+ disable-creeper-lingering-effect: false
+ disable-player-crits: false
+ door-breaking-difficulty:
+ husk:
+ - HARD
+ vindicator:
+ - NORMAL
+ - HARD
+ zombie:
+ - HARD
+ zombie_villager:
+ - HARD
+ zombified_piglin:
+ - HARD
+ ender-dragons-death-always-places-dragon-egg: false
+ experience-merge-max-value: -1
+ mobs-can-always-pick-up-loot:
+ skeletons: false
+ zombies: false
+ nerf-pigmen-from-nether-portals: false
+ parrots-are-unaffected-by-player-movement: false
+ phantoms-do-not-spawn-on-creative-players: true
+ phantoms-only-attack-insomniacs: true
+ phantoms-spawn-attempt-max-seconds: 119
+ phantoms-spawn-attempt-min-seconds: 60
+ piglins-guard-chests: true
+ pillager-patrols:
+ disable: false
+ spawn-chance: 0.2
+ spawn-delay:
+ per-player: false
+ ticks: 12000
+ start:
+ day: 5
+ per-player: false
+ player-insomnia-start-ticks: 72000
+ should-remove-dragon: false
+ spawner-nerfed-mobs-should-jump: false
+ zombie-villager-infection-chance: -1.0
+ zombies-target-turtle-eggs: true
+ entities-target-with-follow-range: false
+ markers:
+ tick: true
+ mob-effects:
+ immune-to-wither-effect:
+ wither: true
+ wither-skeleton: true
+ spiders-immune-to-poison-effect: true
+ undead-immune-to-certain-effects: true
+ spawning:
+ all-chunks-are-slime-chunks: false
+ alt-item-despawn-rate:
+ enabled: false
+ items:
+ cobblestone: 300
+ count-all-mobs-for-spawning: false
+ creative-arrow-despawn-rate: default
+ despawn-ranges:
+ ambient:
+ hard: 128
+ soft: 32
+ axolotls:
+ hard: 128
+ soft: 32
+ creature:
+ hard: 128
+ soft: 32
+ misc:
+ hard: 128
+ soft: 32
+ monster:
+ hard: 128
+ soft: 32
+ underground_water_creature:
+ hard: 128
+ soft: 32
+ water_ambient:
+ hard: 64
+ soft: 32
+ water_creature:
+ hard: 128
+ soft: 32
+ disable-mob-spawner-spawn-egg-transformation: false
+ duplicate-uuid:
+ mode: SAFE_REGEN
+ safe-regen-delete-range: 32
+ filter-bad-tile-entity-nbt-from-falling-blocks: true
+ filtered-entity-tag-nbt-paths:
+ - Pos
+ - Motion
+ - SleepingX
+ - SleepingY
+ - SleepingZ
+ iron-golems-can-spawn-in-air: false
+ monster-spawn-max-light-level: -1
+ non-player-arrow-despawn-rate: default
+ per-player-mob-spawns: true
+ scan-for-legacy-ender-dragon: true
+ skeleton-horse-thunder-spawn-chance: default
+ slime-spawn-height:
+ slime-chunk:
+ maximum: 40.0
+ surface-biome:
+ maximum: 70.0
+ minimum: 50.0
+ spawn-limits:
+ ambient: -1
+ axolotls: -1
+ creature: -1
+ monster: -1
+ underground_water_creature: -1
+ water_ambient: -1
+ water_creature: -1
+ wandering-trader:
+ spawn-chance-failure-increment: 25
+ spawn-chance-max: 75
+ spawn-chance-min: 25
+ spawn-day-length: 24000
+ spawn-minute-length: 1200
+ wateranimal-spawn-height:
+ maximum: default
+ minimum: default
+environment:
+ disable-explosion-knockback: false
+ disable-ice-and-snow: false
+ disable-teleportation-suffocation-check: false
+ disable-thunder: false
+ fire-tick-delay: 30
+ frosted-ice:
+ delay:
+ max: 40
+ min: 20
+ enabled: true
+ generate-flat-bedrock: false
+ nether-ceiling-void-damage-height: disabled
+ optimize-explosions: false
+ portal-create-radius: 16
+ portal-search-radius: 128
+ portal-search-vanilla-dimension-scaling: true
+ treasure-maps:
+ enabled: true
+ find-already-discovered:
+ loot-tables: default
+ villager-trade: false
+ water-over-lava-flow-speed: 5
+feature-seeds:
+ generate-random-seeds-for-all: false
+fishing-time-range:
+ maximum: 600
+ minimum: 100
+fixes:
+ disable-unloaded-chunk-enderpearl-exploit: true
+ falling-block-height-nerf: disabled
+ fix-curing-zombie-villager-discount-exploit: true
+ fix-items-merging-through-walls: false
+ prevent-tnt-from-moving-in-water: false
+ split-overstacked-loot: true
+ tnt-entity-height-nerf: disabled
+hopper:
+ cooldown-when-full: true
+ disable-move-event: false
+ ignore-occluding-blocks: false
+lootables:
+ auto-replenish: false
+ max-refills: -1
+ refresh-max: 2d
+ refresh-min: 12h
+ reset-seed-on-fill: true
+ restrict-player-reloot: true
+ restrict-player-reloot-time: disabled
+maps:
+ item-frame-cursor-limit: 128
+ item-frame-cursor-update-interval: 10
+max-growth-height:
+ bamboo:
+ max: 16
+ min: 11
+ cactus: 3
+ reeds: 3
+misc:
+ disable-end-credits: false
+ disable-relative-projectile-velocity: false
+ disable-sprint-interruption-on-attack: false
+ light-queue-size: 20
+ max-leash-distance: 10.0
+ redstone-implementation: VANILLA
+ shield-blocking-delay: 5
+ show-sign-click-command-failure-msgs-to-player: false
+ update-pathfinding-on-block-update: true
+scoreboards:
+ allow-non-player-entities-on-scoreboards: true
+ use-vanilla-world-scoreboard-name-coloring: false
+spawn:
+ allow-using-signs-inside-spawn-protection: false
+ keep-spawn-loaded: true
+ keep-spawn-loaded-range: 10
+tick-rates:
+ behavior:
+ villager:
+ validatenearbypoi: -1
+ container-update: 1
+ grass-spread: 1
+ mob-spawner: 1
+ sensor:
+ villager:
+ secondarypoisensor: 40
+unsupported-settings:
+ fix-invulnerable-end-crystal-exploit: true
diff --git a/examples/papermc/paper/example/eula.txt b/examples/papermc/paper/example/eula.txt
new file mode 100644
index 00000000..c64555c2
--- /dev/null
+++ b/examples/papermc/paper/example/eula.txt
@@ -0,0 +1,3 @@
+#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
+#Mon Aug 21 11:07:07 CST 2023
+eula=true
diff --git a/examples/papermc/paper/example/logs/2023-08-22-1.log.gz b/examples/papermc/paper/example/logs/2023-08-22-1.log.gz
new file mode 100644
index 00000000..d31f45cc
Binary files /dev/null and b/examples/papermc/paper/example/logs/2023-08-22-1.log.gz differ
diff --git a/examples/papermc/paper/example/logs/2023-08-23-1.log.gz b/examples/papermc/paper/example/logs/2023-08-23-1.log.gz
new file mode 100644
index 00000000..6195b138
Binary files /dev/null and b/examples/papermc/paper/example/logs/2023-08-23-1.log.gz differ
diff --git a/examples/papermc/paper/example/logs/2023-08-27-1.log.gz b/examples/papermc/paper/example/logs/2023-08-27-1.log.gz
new file mode 100644
index 00000000..c139584b
Binary files /dev/null and b/examples/papermc/paper/example/logs/2023-08-27-1.log.gz differ
diff --git a/examples/papermc/paper/example/logs/2023-08-28-1.log.gz b/examples/papermc/paper/example/logs/2023-08-28-1.log.gz
new file mode 100644
index 00000000..8ebb6b2a
Binary files /dev/null and b/examples/papermc/paper/example/logs/2023-08-28-1.log.gz differ
diff --git a/examples/papermc/paper/example/logs/2023-08-29-1.log.gz b/examples/papermc/paper/example/logs/2023-08-29-1.log.gz
new file mode 100644
index 00000000..151bbdbf
Binary files /dev/null and b/examples/papermc/paper/example/logs/2023-08-29-1.log.gz differ
diff --git a/examples/papermc/paper/example/logs/2023-08-30-1.log.gz b/examples/papermc/paper/example/logs/2023-08-30-1.log.gz
new file mode 100644
index 00000000..14bfa94c
Binary files /dev/null and b/examples/papermc/paper/example/logs/2023-08-30-1.log.gz differ
diff --git a/examples/papermc/paper/example/logs/latest.log b/examples/papermc/paper/example/logs/latest.log
new file mode 100644
index 00000000..60ff7db6
--- /dev/null
+++ b/examples/papermc/paper/example/logs/latest.log
@@ -0,0 +1,34 @@
+[04:00:45] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 7445ms or 148 ticks behind
+[09:26:12] [Yggdrasil Key Fetcher/ERROR]: Failed to request yggdrasil public key
+com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
+ at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:119) ~[authlib-4.0.43.jar:?]
+ at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:91) ~[authlib-4.0.43.jar:?]
+ at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo.fetch(YggdrasilServicesKeyInfo.java:94) ~[authlib-4.0.43.jar:?]
+ at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo.lambda$get$1(YggdrasilServicesKeyInfo.java:81) ~[authlib-4.0.43.jar:?]
+ at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
+ at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
+ at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
+ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
+ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
+ at java.lang.Thread.run(Thread.java:833) ~[?:?]
+Caused by: java.net.SocketTimeoutException: Connect timed out
+ at sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) ~[?:?]
+ at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) ~[?:?]
+ at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]
+ at java.net.Socket.connect(Socket.java:633) ~[?:?]
+ at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?]
+ at sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[?:?]
+ at sun.net.www.http.HttpClient.openServer(HttpClient.java:533) ~[?:?]
+ at sun.net.www.http.HttpClient.openServer(HttpClient.java:638) ~[?:?]
+ at sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:266) ~[?:?]
+ at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) ~[?:?]
+ at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) ~[?:?]
+ at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1287) ~[?:?]
+ at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) ~[?:?]
+ at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) ~[?:?]
+ at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665) ~[?:?]
+ at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[?:?]
+ at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224) ~[?:?]
+ at com.mojang.authlib.HttpAuthenticationService.performGetRequest(HttpAuthenticationService.java:140) ~[authlib-4.0.43.jar:?]
+ at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:96) ~[authlib-4.0.43.jar:?]
+ ... 9 more
diff --git a/examples/papermc/paper/example/plugins/bStats/config.yml b/examples/papermc/paper/example/plugins/bStats/config.yml
new file mode 100644
index 00000000..51aa05f2
--- /dev/null
+++ b/examples/papermc/paper/example/plugins/bStats/config.yml
@@ -0,0 +1,8 @@
+# bStats collects some data for plugin authors like how many servers are using their plugins.
+# To honor their work, you should not disable it.
+# This has nearly no effect on the server performance!
+# Check out https://bStats.org/ to learn more :)
+
+enabled: true
+serverUuid: 4062765f-c9ca-4314-8170-5b58a1d2a7ba
+logFailedRequests: false
diff --git a/examples/papermc/paper/example/server.properties b/examples/papermc/paper/example/server.properties
new file mode 100644
index 00000000..05e986ac
--- /dev/null
+++ b/examples/papermc/paper/example/server.properties
@@ -0,0 +1,59 @@
+#Minecraft server properties
+#Tue Aug 22 09:25:57 CST 2023
+enable-jmx-monitoring=false
+rcon.port=25575
+level-seed=
+gamemode=survival
+enable-command-block=false
+enable-query=false
+generator-settings={}
+enforce-secure-profile=true
+level-name=world
+motd=A Minecraft Server
+query.port=25565
+pvp=true
+generate-structures=true
+max-chained-neighbor-updates=1000000
+difficulty=easy
+network-compression-threshold=256
+max-tick-time=60000
+require-resource-pack=false
+use-native-transport=true
+max-players=20
+online-mode=false
+enable-status=true
+allow-flight=false
+initial-disabled-packs=
+broadcast-rcon-to-ops=true
+view-distance=10
+server-ip=
+resource-pack-prompt=
+allow-nether=true
+server-port=25565
+enable-rcon=false
+sync-chunk-writes=true
+op-permission-level=4
+prevent-proxy-connections=false
+hide-online-players=false
+resource-pack=
+entity-broadcast-range-percentage=100
+simulation-distance=10
+rcon.password=
+player-idle-timeout=0
+debug=false
+force-gamemode=false
+rate-limit=0
+hardcore=false
+white-list=false
+broadcast-console-to-ops=true
+spawn-npcs=true
+spawn-animals=true
+function-permission-level=2
+initial-enabled-packs=vanilla
+level-type=minecraft\:normal
+text-filtering-config=
+spawn-monsters=true
+enforce-whitelist=false
+spawn-protection=16
+resource-pack-sha1=
+max-world-size=29999984
diff --git a/examples/papermc/paper/example/world/data/raids.dat b/examples/papermc/paper/example/world/data/raids.dat
new file mode 100644
index 00000000..f92ca8db
Binary files /dev/null and b/examples/papermc/paper/example/world/data/raids.dat differ
diff --git a/examples/papermc/paper/example/world/data/random_sequences.dat b/examples/papermc/paper/example/world/data/random_sequences.dat
new file mode 100644
index 00000000..bbf7206b
Binary files /dev/null and b/examples/papermc/paper/example/world/data/random_sequences.dat differ
diff --git a/examples/papermc/paper/example/world/datapacks/bukkit/pack.mcmeta b/examples/papermc/paper/example/world/datapacks/bukkit/pack.mcmeta
new file mode 100644
index 00000000..6a7353a3
--- /dev/null
+++ b/examples/papermc/paper/example/world/datapacks/bukkit/pack.mcmeta
@@ -0,0 +1,6 @@
+{
+ "pack": {
+ "description": "Data pack for resources provided by Bukkit plugins",
+ "pack_format": 15
+ }
+}
diff --git a/examples/papermc/paper/example/world/entities/r.-1.-1.mca b/examples/papermc/paper/example/world/entities/r.-1.-1.mca
new file mode 100644
index 00000000..9dca8f00
Binary files /dev/null and b/examples/papermc/paper/example/world/entities/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world/entities/r.-1.0.mca b/examples/papermc/paper/example/world/entities/r.-1.0.mca
new file mode 100644
index 00000000..2eb105e3
Binary files /dev/null and b/examples/papermc/paper/example/world/entities/r.-1.0.mca differ
diff --git a/examples/papermc/paper/example/world/entities/r.0.-1.mca b/examples/papermc/paper/example/world/entities/r.0.-1.mca
new file mode 100644
index 00000000..e76669bc
Binary files /dev/null and b/examples/papermc/paper/example/world/entities/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world/entities/r.0.0.mca b/examples/papermc/paper/example/world/entities/r.0.0.mca
new file mode 100644
index 00000000..05312cda
Binary files /dev/null and b/examples/papermc/paper/example/world/entities/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world/level.dat b/examples/papermc/paper/example/world/level.dat
new file mode 100644
index 00000000..ff9a30be
Binary files /dev/null and b/examples/papermc/paper/example/world/level.dat differ
diff --git a/examples/papermc/paper/example/world/level.dat_old b/examples/papermc/paper/example/world/level.dat_old
new file mode 100644
index 00000000..f756cc06
Binary files /dev/null and b/examples/papermc/paper/example/world/level.dat_old differ
diff --git a/examples/papermc/paper/example/world/paper-world.yml b/examples/papermc/paper/example/world/paper-world.yml
new file mode 100644
index 00000000..3fb7f7cd
--- /dev/null
+++ b/examples/papermc/paper/example/world/paper-world.yml
@@ -0,0 +1,6 @@
+# This is a world configuration file for Paper.
+# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
+#
+# World: world (minecraft:overworld)
+
+_version: 30
diff --git a/examples/papermc/paper/example/world/poi/r.-1.-1.mca b/examples/papermc/paper/example/world/poi/r.-1.-1.mca
new file mode 100644
index 00000000..c1c7bf58
Binary files /dev/null and b/examples/papermc/paper/example/world/poi/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world/poi/r.0.-1.mca b/examples/papermc/paper/example/world/poi/r.0.-1.mca
new file mode 100644
index 00000000..18ed1ec4
Binary files /dev/null and b/examples/papermc/paper/example/world/poi/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world/poi/r.0.0.mca b/examples/papermc/paper/example/world/poi/r.0.0.mca
new file mode 100644
index 00000000..da9e1838
Binary files /dev/null and b/examples/papermc/paper/example/world/poi/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world/region/r.-1.-1.mca b/examples/papermc/paper/example/world/region/r.-1.-1.mca
new file mode 100644
index 00000000..c1097825
Binary files /dev/null and b/examples/papermc/paper/example/world/region/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world/region/r.-1.0.mca b/examples/papermc/paper/example/world/region/r.-1.0.mca
new file mode 100644
index 00000000..dd69ea25
Binary files /dev/null and b/examples/papermc/paper/example/world/region/r.-1.0.mca differ
diff --git a/examples/papermc/paper/example/world/region/r.0.-1.mca b/examples/papermc/paper/example/world/region/r.0.-1.mca
new file mode 100644
index 00000000..898c66a6
Binary files /dev/null and b/examples/papermc/paper/example/world/region/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world/region/r.0.0.mca b/examples/papermc/paper/example/world/region/r.0.0.mca
new file mode 100644
index 00000000..67884c03
Binary files /dev/null and b/examples/papermc/paper/example/world/region/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world/session.lock b/examples/papermc/paper/example/world/session.lock
new file mode 100644
index 00000000..0d7e5f85
--- /dev/null
+++ b/examples/papermc/paper/example/world/session.lock
@@ -0,0 +1 @@
+☃
\ No newline at end of file
diff --git a/examples/papermc/paper/example/world/uid.dat b/examples/papermc/paper/example/world/uid.dat
new file mode 100644
index 00000000..fd1454cf
--- /dev/null
+++ b/examples/papermc/paper/example/world/uid.dat
@@ -0,0 +1 @@
+oEZ!
A
\ No newline at end of file
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/data/raids.dat b/examples/papermc/paper/example/world_nether/DIM-1/data/raids.dat
new file mode 100644
index 00000000..f92ca8db
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/data/raids.dat differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/entities/r.-1.-1.mca b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.-1.-1.mca
new file mode 100644
index 00000000..49fecfa6
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/entities/r.-1.0.mca b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.-1.0.mca
new file mode 100644
index 00000000..2b3ee843
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.-1.0.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/entities/r.0.-1.mca b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.0.-1.mca
new file mode 100644
index 00000000..20791022
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/entities/r.0.0.mca b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.0.0.mca
new file mode 100644
index 00000000..a66be52a
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/entities/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/region/r.-1.-1.mca b/examples/papermc/paper/example/world_nether/DIM-1/region/r.-1.-1.mca
new file mode 100644
index 00000000..eae47fd2
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/region/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/region/r.-1.0.mca b/examples/papermc/paper/example/world_nether/DIM-1/region/r.-1.0.mca
new file mode 100644
index 00000000..7f89ad66
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/region/r.-1.0.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/region/r.0.-1.mca b/examples/papermc/paper/example/world_nether/DIM-1/region/r.0.-1.mca
new file mode 100644
index 00000000..cbc378cf
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/region/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world_nether/DIM-1/region/r.0.0.mca b/examples/papermc/paper/example/world_nether/DIM-1/region/r.0.0.mca
new file mode 100644
index 00000000..2c149099
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/DIM-1/region/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world_nether/level.dat b/examples/papermc/paper/example/world_nether/level.dat
new file mode 100644
index 00000000..1829acd1
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/level.dat differ
diff --git a/examples/papermc/paper/example/world_nether/level.dat_old b/examples/papermc/paper/example/world_nether/level.dat_old
new file mode 100644
index 00000000..019d6081
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/level.dat_old differ
diff --git a/examples/papermc/paper/example/world_nether/paper-world.yml b/examples/papermc/paper/example/world_nether/paper-world.yml
new file mode 100644
index 00000000..3f276e79
--- /dev/null
+++ b/examples/papermc/paper/example/world_nether/paper-world.yml
@@ -0,0 +1,6 @@
+# This is a world configuration file for Paper.
+# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
+#
+# World: world_nether (minecraft:the_nether)
+
+_version: 30
diff --git a/examples/papermc/paper/example/world_nether/session.lock b/examples/papermc/paper/example/world_nether/session.lock
new file mode 100644
index 00000000..0d7e5f85
--- /dev/null
+++ b/examples/papermc/paper/example/world_nether/session.lock
@@ -0,0 +1 @@
+☃
\ No newline at end of file
diff --git a/examples/papermc/paper/example/world_nether/uid.dat b/examples/papermc/paper/example/world_nether/uid.dat
new file mode 100644
index 00000000..9fe49f54
Binary files /dev/null and b/examples/papermc/paper/example/world_nether/uid.dat differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/data/raids_end.dat b/examples/papermc/paper/example/world_the_end/DIM1/data/raids_end.dat
new file mode 100644
index 00000000..f92ca8db
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/data/raids_end.dat differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/entities/r.-1.-1.mca b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.-1.-1.mca
new file mode 100644
index 00000000..586003c9
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/entities/r.-1.0.mca b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.-1.0.mca
new file mode 100644
index 00000000..aad189de
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.-1.0.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/entities/r.0.-1.mca b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.0.-1.mca
new file mode 100644
index 00000000..e1a15441
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/entities/r.0.0.mca b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.0.0.mca
new file mode 100644
index 00000000..9a690fea
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/entities/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/region/r.-1.-1.mca b/examples/papermc/paper/example/world_the_end/DIM1/region/r.-1.-1.mca
new file mode 100644
index 00000000..765a288e
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/region/r.-1.-1.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/region/r.-1.0.mca b/examples/papermc/paper/example/world_the_end/DIM1/region/r.-1.0.mca
new file mode 100644
index 00000000..97e96ce0
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/region/r.-1.0.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/region/r.0.-1.mca b/examples/papermc/paper/example/world_the_end/DIM1/region/r.0.-1.mca
new file mode 100644
index 00000000..f15cf57e
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/region/r.0.-1.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/DIM1/region/r.0.0.mca b/examples/papermc/paper/example/world_the_end/DIM1/region/r.0.0.mca
new file mode 100644
index 00000000..55054dc4
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/DIM1/region/r.0.0.mca differ
diff --git a/examples/papermc/paper/example/world_the_end/level.dat b/examples/papermc/paper/example/world_the_end/level.dat
new file mode 100644
index 00000000..e285abb2
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/level.dat differ
diff --git a/examples/papermc/paper/example/world_the_end/level.dat_old b/examples/papermc/paper/example/world_the_end/level.dat_old
new file mode 100644
index 00000000..6fca5ec3
Binary files /dev/null and b/examples/papermc/paper/example/world_the_end/level.dat_old differ
diff --git a/examples/papermc/paper/example/world_the_end/paper-world.yml b/examples/papermc/paper/example/world_the_end/paper-world.yml
new file mode 100644
index 00000000..adf1f4fc
--- /dev/null
+++ b/examples/papermc/paper/example/world_the_end/paper-world.yml
@@ -0,0 +1,6 @@
+# This is a world configuration file for Paper.
+# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
+#
+# World: world_the_end (minecraft:the_end)
+
+_version: 30
diff --git a/examples/papermc/paper/example/world_the_end/session.lock b/examples/papermc/paper/example/world_the_end/session.lock
new file mode 100644
index 00000000..0d7e5f85
--- /dev/null
+++ b/examples/papermc/paper/example/world_the_end/session.lock
@@ -0,0 +1 @@
+☃
\ No newline at end of file
diff --git a/examples/papermc/paper/example/world_the_end/uid.dat b/examples/papermc/paper/example/world_the_end/uid.dat
new file mode 100644
index 00000000..81db57dd
--- /dev/null
+++ b/examples/papermc/paper/example/world_the_end/uid.dat
@@ -0,0 +1 @@
+S|B!]| D4
\ No newline at end of file
diff --git a/examples/papermc/velocity/alpine/dockerfile b/examples/papermc/velocity/alpine/dockerfile
new file mode 100644
index 00000000..3c0809f0
--- /dev/null
+++ b/examples/papermc/velocity/alpine/dockerfile
@@ -0,0 +1,55 @@
+# 配置参数(指定基础镜像版本)
+ARG BASE_TAG=11.0.20-alpine3.18
+
+# 基于 Amazon Corretto 构建
+FROM amazoncorretto:$BASE_TAG
+
+# 指定端口号
+EXPOSE 25577
+
+# 配置参数
+ARG GROUP_ID=1024 \
+ GROUP_NAME=papermc \
+ USER_ID=1024 \
+ USER_NAME=papermc \
+ USER_HOME=/home/papermc \
+ USER_SHELL=/bin/bash
+
+# 更新应用并安装基础应用
+RUN set -ex && \
+ apk add tzdata && \
+ apk add --no-cache bash bash-doc bash-completion
+
+# 设置时区、新建用户组及用户、配置目录权限
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+ addgroup $GROUP_NAME -g $GROUP_ID && \
+ adduser $USER_NAME -G $GROUP_NAME -h $USER_HOME -s $USER_SHELL -u $USER_ID -D && \
+ mkdir -pv $USER_HOME && \
+ chown -R $GROUP_NAME.$USER_NAME $USER_HOME
+
+# 配置环境变量
+ARG PAPERMC_VELOCITY_VERSION=3.2.0-SNAPSHOT-265
+ENV PAPERMC_VELOCITY_VERSION=$PAPERMC_VELOCITY_VERSION \
+ PAPERMC_VELOCITY_HOME=/opt/papermc/velocity \
+ PAPERMC_VELOCITY_DATA_DIR=/opt/papermc/velocity
+
+# 安装 PaperMC Server
+COPY velocity-$PAPERMC_VELOCITY_VERSION.jar $PAPERMC_VELOCITY_HOME/velocity-$PAPERMC_VELOCITY_VERSION.jar
+COPY velocity.toml $PAPERMC_VELOCITY_HOME/velocity.toml
+COPY forwarding.secret $PAPERMC_VELOCITY_HOME/forwarding.secret
+COPY entrypoint.sh $PAPERMC_VELOCITY_HOME/entrypoint.sh
+RUN mkdir -pv $PAPERMC_VELOCITY_DATA_DIR && \
+ chown -R $GROUP_NAME.$USER_NAME $PAPERMC_VELOCITY_HOME $PAPERMC_VELOCITY_DATA_DIR && \
+ chmod -R 755 $PAPERMC_VELOCITY_HOME $PAPERMC_VELOCITY_DATA_DIR
+
+# 设置工作目录
+WORKDIR $PAPERMC_VELOCITY_HOME
+
+# 设置默认挂载目录
+VOLUME [$PAPERMC_VELOCITY_HOME/plugins, $PAPERMC_VELOCITY_HOME/logs]
+
+# 设置启动用户
+USER $GROUP_NAME:$USER_NAME
+
+# 设置执行启动脚本
+CMD ["/bin/bash","-c","./entrypoint.sh"]
diff --git a/examples/papermc/velocity/alpine/entrypoint.sh b/examples/papermc/velocity/alpine/entrypoint.sh
new file mode 100755
index 00000000..43a801c8
--- /dev/null
+++ b/examples/papermc/velocity/alpine/entrypoint.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+echo '===================================================================================================='
+echo `date +%Y-%m-%d` `date +%H:%M:%S`
+echo '============================== 开始启动 PaperMC Velocity...... =============================='
+echo 'PaperMC Velocity 版本号:' $PAPERMC_VELOCITY_VERSION
+echo 'PaperMC Velocity 工作目录:' $PAPERMC_VELOCITY_HOME
+echo 'PaperMC Velocity 监听端口:25577'
+echo '数据文件目录:' $PAPERMC_VELOCITY_DATA_DIR
+echo '----------------------------------------------------------------------------------------------------'
+java -Xms1G -Xmx1G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar $PAPERMC_VELOCITY_HOME/velocity-$PAPERMC_VELOCITY_VERSION.jar
diff --git a/examples/papermc/velocity/alpine/forwarding.secret b/examples/papermc/velocity/alpine/forwarding.secret
new file mode 100644
index 00000000..d0f8811f
--- /dev/null
+++ b/examples/papermc/velocity/alpine/forwarding.secret
@@ -0,0 +1 @@
+OiXweorTzCig
\ No newline at end of file
diff --git a/examples/papermc/velocity/alpine/velocity-3.2.0-SNAPSHOT-265.jar b/examples/papermc/velocity/alpine/velocity-3.2.0-SNAPSHOT-265.jar
new file mode 100644
index 00000000..37b38ed2
Binary files /dev/null and b/examples/papermc/velocity/alpine/velocity-3.2.0-SNAPSHOT-265.jar differ
diff --git a/examples/papermc/velocity/alpine/velocity.toml b/examples/papermc/velocity/alpine/velocity.toml
new file mode 100644
index 00000000..0f18208b
--- /dev/null
+++ b/examples/papermc/velocity/alpine/velocity.toml
@@ -0,0 +1,155 @@
+# Config version. Do not change this
+config-version = "2.6"
+
+# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
+bind = "0.0.0.0:25577"
+
+# What should be the MOTD? This gets displayed when the player adds your server to
+# their server list. Only MiniMessage format is accepted.
+motd = "<#09add3>A Velocity Server"
+
+# What should we display for the maximum number of players? (Velocity does not support a cap
+# on the number of players online.)
+show-max-players = 500
+
+# Should we authenticate players with Mojang? By default, this is on.
+online-mode = true
+
+# Should the proxy enforce the new public key security standard? By default, this is on.
+force-key-authentication = true
+
+# If client's ISP/AS sent from this proxy is different from the one from Mojang's
+# authentication server, the player is kicked. This disallows some VPN and proxy
+# connections but is a weak form of protection.
+prevent-client-proxy-connections = false
+
+# Should we forward IP addresses and other data to backend servers?
+# Available options:
+# - "none": No forwarding will be done. All players will appear to be connecting
+# from the proxy and will have offline-mode UUIDs.
+# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
+# if you run servers using Minecraft 1.12 or lower.
+# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
+# plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
+# unable to implement network level firewalling (on a shared host).
+# - "modern": Forward player IPs and UUIDs as part of the login process using
+# Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
+player-info-forwarding-mode = "NONE"
+
+# If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here.
+# The file is expected to be UTF-8 encoded and not empty.
+forwarding-secret-file = "forwarding.secret"
+
+# Announce whether or not your server supports Forge. If you run a modded server, we
+# suggest turning this on.
+#
+# If your network runs one modpack consistently, consider using ping-passthrough = "mods"
+# instead for a nicer display in the server list.
+announce-forge = false
+
+# If enabled (default is false) and the proxy is in online mode, Velocity will kick
+# any existing player who is online if a duplicate connection attempt is made.
+kick-existing-players = false
+
+# Should Velocity pass server list ping requests to a backend server?
+# Available options:
+# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png
+# will determine the initial server list ping response.
+# - "mods": Passes only the mod list from your backend server into the response.
+# The first server in your try list (or forced host) with a mod list will be
+# used. If no backend servers can be contacted, Velocity won't display any
+# mod information.
+# - "description": Uses the description and mod list from the backend server. The first
+# server in the try (or forced host) list that responds is used for the
+# description and mod list.
+# - "all": Uses the backend server's response as the proxy response. The Velocity
+# configuration is used if no servers could be contacted.
+ping-passthrough = "DISABLED"
+
+# If not enabled (default is true) player IP addresses will be replaced by in logs
+enable-player-address-logging = true
+
+[servers]
+# Configure your servers here. Each key represents the server's name, and the value
+# represents the IP address of the server to connect to.
+lobby = "127.0.0.1:30066"
+factions = "127.0.0.1:30067"
+minigames = "127.0.0.1:30068"
+
+# In what order we should try servers when a player logs in or is kicked from a server.
+try = [
+ "lobby"
+]
+
+[forced-hosts]
+# Configure your forced hosts here.
+"lobby.example.com" = [
+ "lobby"
+]
+"factions.example.com" = [
+ "factions"
+]
+"minigames.example.com" = [
+ "minigames"
+]
+
+[advanced]
+# How large a Minecraft packet has to be before we compress it. Setting this to zero will
+# compress all packets, and setting it to -1 will disable compression entirely.
+compression-threshold = 256
+
+# How much compression should be done (from 0-9). The default is -1, which uses the
+# default level of 6.
+compression-level = -1
+
+# How fast (in milliseconds) are clients allowed to connect after the last connection? By
+# default, this is three seconds. Disable this by setting this to 0.
+login-ratelimit = 3000
+
+# Specify a custom timeout for connection timeouts here. The default is five seconds.
+connection-timeout = 5000
+
+# Specify a read timeout for connections here. The default is 30 seconds.
+read-timeout = 30000
+
+# Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then
+# don't enable it.
+haproxy-protocol = false
+
+# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
+tcp-fast-open = false
+
+# Enables BungeeCord plugin messaging channel support on Velocity.
+bungee-plugin-message-channel = true
+
+# Shows ping requests to the proxy from clients.
+show-ping-requests = false
+
+# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
+# loses connection to the server without an explicit disconnect message by attempting to fall the
+# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
+# can disable this setting to use the BungeeCord behavior.
+failover-on-unexpected-server-disconnect = true
+
+# Declares the proxy commands to 1.13+ clients.
+announce-proxy-commands = true
+
+# Enables the logging of commands
+log-command-executions = false
+
+# Enables logging of player connections when connecting to the proxy, switching servers
+# and disconnecting from the proxy.
+log-player-connections = true
+
+[query]
+# Whether to enable responding to GameSpy 4 query responses or not.
+enabled = false
+
+# If query is enabled, on what port should the query protocol listen on?
+port = 25577
+
+# This is the map name that is reported to the query services.
+map = "Velocity"
+
+# Whether plugins should be shown in query response by default or not
+show-plugins = false
diff --git a/examples/papermc/velocity/example/compose.yaml b/examples/papermc/velocity/example/compose.yaml
new file mode 100644
index 00000000..4f72bcd0
--- /dev/null
+++ b/examples/papermc/velocity/example/compose.yaml
@@ -0,0 +1,23 @@
+version: "3.9"
+
+services:
+ papermc-velocity:
+# image: hty1024/papermc/velocity:3.2.0-SNAPSHOT-265
+ image: hty1024/papermc/velocity:3.2.0-SNAPSHOT-265-alpine
+ container_name: papermc-velocity
+ restart: always
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - ./velocity.toml:/opt/papermc/velocity/velocity.toml
+ - ./forwarding.secret:/opt/papermc/velocity/forwarding.secret
+ - ./plugins:/opt/papermc/velocity/plugins
+ - ./logs:/opt/papermc/velocity/logs
+ ports:
+ - "25577:25577"
+ networks:
+ - app_network
+
+networks:
+ app_network:
+ external: true
+ name: app_network
diff --git a/examples/papermc/velocity/example/forwarding.secret b/examples/papermc/velocity/example/forwarding.secret
new file mode 100644
index 00000000..bf64d304
--- /dev/null
+++ b/examples/papermc/velocity/example/forwarding.secret
@@ -0,0 +1 @@
+CEqNAMuCv85AGSjn
diff --git a/examples/papermc/velocity/example/logs/latest.log b/examples/papermc/velocity/example/logs/latest.log
new file mode 100644
index 00000000..b31b9574
--- /dev/null
+++ b/examples/papermc/velocity/example/logs/latest.log
@@ -0,0 +1,13 @@
+[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Booting up Velocity 3.2.0-SNAPSHOT (git-19abb909-b265)...
+[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loading localizations...
+[09:29:40] [main/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.0.x (Linux x86_64) ciphers
+[09:29:40] [main/WARN] [com.velocitypowered.proxy.config.VelocityConfiguration]: Player info forwarding is disabled! All players will appear to be connecting from the proxy and will have offline-mode UUIDs.
+[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loading plugins...
+[09:29:40] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loaded 0 plugins
+[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: Velocity and some of its plugins collect metrics and send them to bStats (https://bStats.org).
+[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: bStats collects some basic information for plugin authors, like how many people use
+[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: their plugin and their total player count. It's recommended to keep bStats enabled, but
+[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: if you're not comfortable with this, you can opt-out by editing the config.txt file in
+[09:29:41] [main/INFO] [com.velocitypowered.proxy.Metrics]: the '/plugins/bStats/' folder and setting enabled to false.
+[09:29:41] [main/INFO] [com.velocitypowered.proxy.Velocity]: Done (1.57s)!
+[09:29:41] [Netty epoll Boss #0/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Listening on /0.0.0.0:25577
diff --git a/examples/papermc/velocity/example/plugins/bStats/config.txt b/examples/papermc/velocity/example/plugins/bStats/config.txt
new file mode 100644
index 00000000..df696e1e
--- /dev/null
+++ b/examples/papermc/velocity/example/plugins/bStats/config.txt
@@ -0,0 +1,10 @@
+# bStats (https://bStats.org) collects some basic information for plugin authors, like
+# how many people use their plugin and their total player count. It's recommended to keep
+# bStats enabled, but if you're not comfortable with this, you can turn this setting off.
+# There is no performance penalty associated with having metrics enabled, and data sent to
+# bStats is fully anonymous.
+enabled=true
+server-uuid=3a00e61a-2c29-4da7-a066-755532f7d936
+log-errors=false
+log-sent-data=false
+log-response-status-text=false
diff --git a/examples/papermc/velocity/example/velocity.toml b/examples/papermc/velocity/example/velocity.toml
new file mode 100644
index 00000000..0f18208b
--- /dev/null
+++ b/examples/papermc/velocity/example/velocity.toml
@@ -0,0 +1,155 @@
+# Config version. Do not change this
+config-version = "2.6"
+
+# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
+bind = "0.0.0.0:25577"
+
+# What should be the MOTD? This gets displayed when the player adds your server to
+# their server list. Only MiniMessage format is accepted.
+motd = "<#09add3>A Velocity Server"
+
+# What should we display for the maximum number of players? (Velocity does not support a cap
+# on the number of players online.)
+show-max-players = 500
+
+# Should we authenticate players with Mojang? By default, this is on.
+online-mode = true
+
+# Should the proxy enforce the new public key security standard? By default, this is on.
+force-key-authentication = true
+
+# If client's ISP/AS sent from this proxy is different from the one from Mojang's
+# authentication server, the player is kicked. This disallows some VPN and proxy
+# connections but is a weak form of protection.
+prevent-client-proxy-connections = false
+
+# Should we forward IP addresses and other data to backend servers?
+# Available options:
+# - "none": No forwarding will be done. All players will appear to be connecting
+# from the proxy and will have offline-mode UUIDs.
+# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
+# if you run servers using Minecraft 1.12 or lower.
+# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
+# plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
+# unable to implement network level firewalling (on a shared host).
+# - "modern": Forward player IPs and UUIDs as part of the login process using
+# Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
+player-info-forwarding-mode = "NONE"
+
+# If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here.
+# The file is expected to be UTF-8 encoded and not empty.
+forwarding-secret-file = "forwarding.secret"
+
+# Announce whether or not your server supports Forge. If you run a modded server, we
+# suggest turning this on.
+#
+# If your network runs one modpack consistently, consider using ping-passthrough = "mods"
+# instead for a nicer display in the server list.
+announce-forge = false
+
+# If enabled (default is false) and the proxy is in online mode, Velocity will kick
+# any existing player who is online if a duplicate connection attempt is made.
+kick-existing-players = false
+
+# Should Velocity pass server list ping requests to a backend server?
+# Available options:
+# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png
+# will determine the initial server list ping response.
+# - "mods": Passes only the mod list from your backend server into the response.
+# The first server in your try list (or forced host) with a mod list will be
+# used. If no backend servers can be contacted, Velocity won't display any
+# mod information.
+# - "description": Uses the description and mod list from the backend server. The first
+# server in the try (or forced host) list that responds is used for the
+# description and mod list.
+# - "all": Uses the backend server's response as the proxy response. The Velocity
+# configuration is used if no servers could be contacted.
+ping-passthrough = "DISABLED"
+
+# If not enabled (default is true) player IP addresses will be replaced by in logs
+enable-player-address-logging = true
+
+[servers]
+# Configure your servers here. Each key represents the server's name, and the value
+# represents the IP address of the server to connect to.
+lobby = "127.0.0.1:30066"
+factions = "127.0.0.1:30067"
+minigames = "127.0.0.1:30068"
+
+# In what order we should try servers when a player logs in or is kicked from a server.
+try = [
+ "lobby"
+]
+
+[forced-hosts]
+# Configure your forced hosts here.
+"lobby.example.com" = [
+ "lobby"
+]
+"factions.example.com" = [
+ "factions"
+]
+"minigames.example.com" = [
+ "minigames"
+]
+
+[advanced]
+# How large a Minecraft packet has to be before we compress it. Setting this to zero will
+# compress all packets, and setting it to -1 will disable compression entirely.
+compression-threshold = 256
+
+# How much compression should be done (from 0-9). The default is -1, which uses the
+# default level of 6.
+compression-level = -1
+
+# How fast (in milliseconds) are clients allowed to connect after the last connection? By
+# default, this is three seconds. Disable this by setting this to 0.
+login-ratelimit = 3000
+
+# Specify a custom timeout for connection timeouts here. The default is five seconds.
+connection-timeout = 5000
+
+# Specify a read timeout for connections here. The default is 30 seconds.
+read-timeout = 30000
+
+# Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then
+# don't enable it.
+haproxy-protocol = false
+
+# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
+tcp-fast-open = false
+
+# Enables BungeeCord plugin messaging channel support on Velocity.
+bungee-plugin-message-channel = true
+
+# Shows ping requests to the proxy from clients.
+show-ping-requests = false
+
+# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
+# loses connection to the server without an explicit disconnect message by attempting to fall the
+# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
+# can disable this setting to use the BungeeCord behavior.
+failover-on-unexpected-server-disconnect = true
+
+# Declares the proxy commands to 1.13+ clients.
+announce-proxy-commands = true
+
+# Enables the logging of commands
+log-command-executions = false
+
+# Enables logging of player connections when connecting to the proxy, switching servers
+# and disconnecting from the proxy.
+log-player-connections = true
+
+[query]
+# Whether to enable responding to GameSpy 4 query responses or not.
+enabled = false
+
+# If query is enabled, on what port should the query protocol listen on?
+port = 25577
+
+# This is the map name that is reported to the query services.
+map = "Velocity"
+
+# Whether plugins should be shown in query response by default or not
+show-plugins = false