新增说明文件;新增kiwix-serve、papermc示例;更新README.md文件
This commit is contained in:
parent
37583b00df
commit
579a448fca
170
README.md
170
README.md
@ -1,3 +1,169 @@
|
|||||||
# dockerfile
|
# Dockerfile 示例
|
||||||
|
|
||||||
dockerfile说明及示例
|
## 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 文件
|
||||||
|
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
## 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 文件
|
||||||
|
55
description/dockerfile
Normal file
55
description/dockerfile
Normal file
@ -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}]
|
52
examples/kiwix-serve/alpine/dockerfile
Normal file
52
examples/kiwix-serve/alpine/dockerfile
Normal file
@ -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"]
|
10
examples/kiwix-serve/alpine/entrypoint.sh
Executable file
10
examples/kiwix-serve/alpine/entrypoint.sh
Executable file
@ -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
|
BIN
examples/kiwix-serve/alpine/kiwix-serve
Executable file
BIN
examples/kiwix-serve/alpine/kiwix-serve
Executable file
Binary file not shown.
20
examples/kiwix-serve/example/compose.yaml
Normal file
20
examples/kiwix-serve/example/compose.yaml
Normal file
@ -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
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
54
examples/kiwix-serve/standard/dockerfile
Normal file
54
examples/kiwix-serve/standard/dockerfile
Normal file
@ -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"]
|
10
examples/kiwix-serve/standard/entrypoint.sh
Executable file
10
examples/kiwix-serve/standard/entrypoint.sh
Executable file
@ -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
|
BIN
examples/kiwix-serve/standard/kiwix-serve
Executable file
BIN
examples/kiwix-serve/standard/kiwix-serve
Executable file
Binary file not shown.
60
examples/papermc/paper/alpine/dockerfile
Normal file
60
examples/papermc/paper/alpine/dockerfile
Normal file
@ -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"]
|
11
examples/papermc/paper/alpine/entrypoint.sh
Executable file
11
examples/papermc/paper/alpine/entrypoint.sh
Executable file
@ -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
|
3
examples/papermc/paper/alpine/eula.txt
Normal file
3
examples/papermc/paper/alpine/eula.txt
Normal file
@ -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
|
BIN
examples/papermc/paper/alpine/mojang_1.20.1.jar
Normal file
BIN
examples/papermc/paper/alpine/mojang_1.20.1.jar
Normal file
Binary file not shown.
BIN
examples/papermc/paper/alpine/paper-1.20.1-134.jar
Executable file
BIN
examples/papermc/paper/alpine/paper-1.20.1-134.jar
Executable file
Binary file not shown.
128
examples/papermc/paper/alpine/paper-global.yml
Normal file
128
examples/papermc/paper/alpine/paper-global.yml
Normal file
@ -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: <lang:multiplayer.disconnect.authservers_down>
|
||||||
|
connection-throttle: Connection throttled! Please wait before reconnecting.
|
||||||
|
flying-player: <lang:multiplayer.disconnect.flying>
|
||||||
|
flying-vehicle: <lang:multiplayer.disconnect.flying>
|
||||||
|
no-permission: <red>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: <red><lang:disconnect.exceeded_packet_rate>
|
||||||
|
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
|
290
examples/papermc/paper/alpine/paper-world-defaults.yml
Normal file
290
examples/papermc/paper/alpine/paper-world-defaults.yml
Normal file
@ -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
|
59
examples/papermc/paper/alpine/server.properties
Normal file
59
examples/papermc/paper/alpine/server.properties
Normal file
@ -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
|
27
examples/papermc/paper/example/compose.yaml
Normal file
27
examples/papermc/paper/example/compose.yaml
Normal file
@ -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
|
128
examples/papermc/paper/example/config/paper-global.yml
Normal file
128
examples/papermc/paper/example/config/paper-global.yml
Normal file
@ -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: <lang:multiplayer.disconnect.authservers_down>
|
||||||
|
connection-throttle: Connection throttled! Please wait before reconnecting.
|
||||||
|
flying-player: <lang:multiplayer.disconnect.flying>
|
||||||
|
flying-vehicle: <lang:multiplayer.disconnect.flying>
|
||||||
|
no-permission: <red>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: <red><lang:disconnect.exceeded_packet_rate>
|
||||||
|
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
|
290
examples/papermc/paper/example/config/paper-world-defaults.yml
Normal file
290
examples/papermc/paper/example/config/paper-world-defaults.yml
Normal file
@ -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
|
3
examples/papermc/paper/example/eula.txt
Normal file
3
examples/papermc/paper/example/eula.txt
Normal file
@ -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
|
BIN
examples/papermc/paper/example/logs/2023-08-22-1.log.gz
Normal file
BIN
examples/papermc/paper/example/logs/2023-08-22-1.log.gz
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/logs/2023-08-23-1.log.gz
Normal file
BIN
examples/papermc/paper/example/logs/2023-08-23-1.log.gz
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/logs/2023-08-27-1.log.gz
Normal file
BIN
examples/papermc/paper/example/logs/2023-08-27-1.log.gz
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/logs/2023-08-28-1.log.gz
Normal file
BIN
examples/papermc/paper/example/logs/2023-08-28-1.log.gz
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/logs/2023-08-29-1.log.gz
Normal file
BIN
examples/papermc/paper/example/logs/2023-08-29-1.log.gz
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/logs/2023-08-30-1.log.gz
Normal file
BIN
examples/papermc/paper/example/logs/2023-08-30-1.log.gz
Normal file
Binary file not shown.
34
examples/papermc/paper/example/logs/latest.log
Normal file
34
examples/papermc/paper/example/logs/latest.log
Normal file
@ -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.<init>(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
|
8
examples/papermc/paper/example/plugins/bStats/config.yml
Normal file
8
examples/papermc/paper/example/plugins/bStats/config.yml
Normal file
@ -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
|
59
examples/papermc/paper/example/server.properties
Normal file
59
examples/papermc/paper/example/server.properties
Normal file
@ -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
|
BIN
examples/papermc/paper/example/world/data/raids.dat
Normal file
BIN
examples/papermc/paper/example/world/data/raids.dat
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/data/random_sequences.dat
Normal file
BIN
examples/papermc/paper/example/world/data/random_sequences.dat
Normal file
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"pack": {
|
||||||
|
"description": "Data pack for resources provided by Bukkit plugins",
|
||||||
|
"pack_format": 15
|
||||||
|
}
|
||||||
|
}
|
BIN
examples/papermc/paper/example/world/entities/r.-1.-1.mca
Normal file
BIN
examples/papermc/paper/example/world/entities/r.-1.-1.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/entities/r.-1.0.mca
Normal file
BIN
examples/papermc/paper/example/world/entities/r.-1.0.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/entities/r.0.-1.mca
Normal file
BIN
examples/papermc/paper/example/world/entities/r.0.-1.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/entities/r.0.0.mca
Normal file
BIN
examples/papermc/paper/example/world/entities/r.0.0.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/level.dat
Normal file
BIN
examples/papermc/paper/example/world/level.dat
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/level.dat_old
Normal file
BIN
examples/papermc/paper/example/world/level.dat_old
Normal file
Binary file not shown.
6
examples/papermc/paper/example/world/paper-world.yml
Normal file
6
examples/papermc/paper/example/world/paper-world.yml
Normal file
@ -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
|
BIN
examples/papermc/paper/example/world/poi/r.-1.-1.mca
Normal file
BIN
examples/papermc/paper/example/world/poi/r.-1.-1.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/poi/r.0.-1.mca
Normal file
BIN
examples/papermc/paper/example/world/poi/r.0.-1.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/poi/r.0.0.mca
Normal file
BIN
examples/papermc/paper/example/world/poi/r.0.0.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/region/r.-1.-1.mca
Normal file
BIN
examples/papermc/paper/example/world/region/r.-1.-1.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/region/r.-1.0.mca
Normal file
BIN
examples/papermc/paper/example/world/region/r.-1.0.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/region/r.0.-1.mca
Normal file
BIN
examples/papermc/paper/example/world/region/r.0.-1.mca
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world/region/r.0.0.mca
Normal file
BIN
examples/papermc/paper/example/world/region/r.0.0.mca
Normal file
Binary file not shown.
1
examples/papermc/paper/example/world/session.lock
Normal file
1
examples/papermc/paper/example/world/session.lock
Normal file
@ -0,0 +1 @@
|
|||||||
|
☃
|
1
examples/papermc/paper/example/world/uid.dat
Normal file
1
examples/papermc/paper/example/world/uid.dat
Normal file
@ -0,0 +1 @@
|
|||||||
|
ÇÛÍoùEZ€!
Åõ€
A
|
BIN
examples/papermc/paper/example/world_nether/DIM-1/data/raids.dat
Normal file
BIN
examples/papermc/paper/example/world_nether/DIM-1/data/raids.dat
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
examples/papermc/paper/example/world_nether/level.dat
Normal file
BIN
examples/papermc/paper/example/world_nether/level.dat
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world_nether/level.dat_old
Normal file
BIN
examples/papermc/paper/example/world_nether/level.dat_old
Normal file
Binary file not shown.
@ -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
|
1
examples/papermc/paper/example/world_nether/session.lock
Normal file
1
examples/papermc/paper/example/world_nether/session.lock
Normal file
@ -0,0 +1 @@
|
|||||||
|
☃
|
BIN
examples/papermc/paper/example/world_nether/uid.dat
Normal file
BIN
examples/papermc/paper/example/world_nether/uid.dat
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
examples/papermc/paper/example/world_the_end/level.dat
Normal file
BIN
examples/papermc/paper/example/world_the_end/level.dat
Normal file
Binary file not shown.
BIN
examples/papermc/paper/example/world_the_end/level.dat_old
Normal file
BIN
examples/papermc/paper/example/world_the_end/level.dat_old
Normal file
Binary file not shown.
@ -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
|
@ -0,0 +1 @@
|
|||||||
|
☃
|
1
examples/papermc/paper/example/world_the_end/uid.dat
Normal file
1
examples/papermc/paper/example/world_the_end/uid.dat
Normal file
@ -0,0 +1 @@
|
|||||||
|
ァSウ|ネB!歉| 絅4
|
55
examples/papermc/velocity/alpine/dockerfile
Normal file
55
examples/papermc/velocity/alpine/dockerfile
Normal file
@ -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"]
|
11
examples/papermc/velocity/alpine/entrypoint.sh
Executable file
11
examples/papermc/velocity/alpine/entrypoint.sh
Executable file
@ -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
|
1
examples/papermc/velocity/alpine/forwarding.secret
Normal file
1
examples/papermc/velocity/alpine/forwarding.secret
Normal file
@ -0,0 +1 @@
|
|||||||
|
OiXweorTzCig
|
BIN
examples/papermc/velocity/alpine/velocity-3.2.0-SNAPSHOT-265.jar
Normal file
BIN
examples/papermc/velocity/alpine/velocity-3.2.0-SNAPSHOT-265.jar
Normal file
Binary file not shown.
155
examples/papermc/velocity/alpine/velocity.toml
Normal file
155
examples/papermc/velocity/alpine/velocity.toml
Normal file
@ -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 <ip address withheld> 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
|
23
examples/papermc/velocity/example/compose.yaml
Normal file
23
examples/papermc/velocity/example/compose.yaml
Normal file
@ -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
|
1
examples/papermc/velocity/example/forwarding.secret
Normal file
1
examples/papermc/velocity/example/forwarding.secret
Normal file
@ -0,0 +1 @@
|
|||||||
|
CEqNAMuCv85AGSjn
|
13
examples/papermc/velocity/example/logs/latest.log
Normal file
13
examples/papermc/velocity/example/logs/latest.log
Normal file
@ -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
|
10
examples/papermc/velocity/example/plugins/bStats/config.txt
Normal file
10
examples/papermc/velocity/example/plugins/bStats/config.txt
Normal file
@ -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
|
155
examples/papermc/velocity/example/velocity.toml
Normal file
155
examples/papermc/velocity/example/velocity.toml
Normal file
@ -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 <ip address withheld> 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
|
Loading…
Reference in New Issue
Block a user