我的世界服务端部署

  • forge installer 搭建服务器

# https://dl.2011101.xyz/教程/教你开一个Minecraft Java版服务器(Forge_Fabric_一些没用的教程) - 哔哩哔哩 (2024_7_26 16_34_38).html

# 使用systemdos+一键命令行部署+zerotier连接
apt install openjdk-21-jdk

# 使用Forge+自带服务器
# 安装 Forge 版本支持mod, 复制下载地址只要后面的半截真实下载地址
# Forge 1.20.1 Java 版 (支持cobblemon模组, pc会不定时闪退, 手机无法使用)
https://files.minecraftforge.net/net/minecraftforge/forge/
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.1-47.3.12/forge-1.20.1-47.3.12-installer.jar
java -jar forge-1.20.1-47.3.12-installer.jar --installServer
# 安装之后再运行, 服务默认端口: 25565
./run.sh
# 下载离线包, 注意本地环境的java大版本一致且不能为英文版本, 比如: openjdk 17-internal 2021-09-14
https://github.com/jcleng/filearchive/actions/workflows/minecraftforge-server.yml

# https://piston-data.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar
# /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar forge-1.16.5-36.2.42.jar
# 低版本需要这个mod开启多人游戏: https://github.com/MCTeamPotato/MultiOfflineFix/releases 和 openjdk-8-jdk

## 需要修改 eula.txt 文件, 同意协议
# /opt/mcsmanager/daemon/data/InstanceData/1070c614734b48aab6242ffd2cc7dac8/eula.txt
eula=true

# [关闭正版验证]: 否则需要使用微软帐户登录;关闭之后使用本地帐户登录(否则登录提示无效对话)
# 修改eula之后才会生成, 如果是局域网可以把online-mode设置为关, 无须验证服务器直接使用名称登录; 如果是公网需要打开并且使用authlib-injector或者authme来验证登录
vim server.properties
online-mode=false

# 如果是安卓手机的termux, jdk8的版本用这个
https://github.com/Hax4us/java/releases

# 把客户端saves的某个世界可以直接放到服务端的world文件夹

# 用户验证器??
  • 客户端

# 移动端
# 支持皮肤登录,且维护
https://github.com/FCL-Team/FoldCraftLauncher/releases
# 支持皮肤登录,但是没有维护了
https://github.com/AOF-Dev/MCinaBox/releases
# 支持皮肤登录,但是没有维护了
https://github.com/HMCL-dev/HMCL-PE/releases
# 不支持皮肤登录,维护中
# https://github.com/PojavLauncherTeam/PojavLauncher
https://pojavlauncherteam.github.io/INSTALL.html#android

# pc端
https://github.com/HMCL-dev/HMCL
D:\work\zulu17.48.15-ca-jdk17.0.10-win_x64\bin\java -jar .\HMCL-3.5.8.249.jar
# flatpak 这个功能强大
org.polymc.PolyMC
  • 开始游玩

# 打开客户端启动器也安装相同版本的软件 1.20.1 + Forge配置
  • 配置mod-宝可梦 选择对应的版本

# 服务端和客户端都需要放到mods文件夹; 都需要重新启动生效
# 服务端位置, 上传jar到mods文件夹里面
/opt/mcsmanager/daemon/data/InstanceData/1070c614734b48aab6242ffd2cc7dac8/mods
# 安卓
\Android\data\net.kdt.pojavlaunch.debug\files\.minecraft\mods

# 必备
    # [需要服务端支持]搬运(Carry On):空手 Shift+右击把箱子、村民整只搬走
    https://modrinth.com/mod/carry-on
    # 一键背包整理Next
    https://www.curseforge.com/minecraft/mc-mods/inventory-profiles-next
    # 旅行者背包(C/S都需要安装)打开选择背上,快捷键是B
    https://modrinth.com/mod/travelersbackpack
    # 鞘翅飞行(C/S都需要安装)装备上,然后空中按空格展开
    https://modrinth.com/mod/elytra-slot
    # Explorer's Compass(自然罗盘&探险家指针):一键定位群系/结构,可传送。
    https://www.mcmod.cn/class/4395.html
    # 合成助手
    https://www.curseforge.com/minecraft/mc-mods/jei
    # 物品栏鼠标连点(放到客户端, shift+鼠标左键)
    https://www.curseforge.com/minecraft/mc-mods/mouse-tweaks
    # 苹果皮饱食度查看(客户端安装)
    https://www.curseforge.com/minecraft/mc-mods/appleskin
    # jade(玉)-显示焦点名称
    https://www.curseforge.com/minecraft/mc-mods/jade
    # 右上角地图, 两个都要;放到服务端有影响
    https://modrinth.com/mod/xaeros-minimap
    https://modrinth.com/mod/xaeros-world-map
    # Advanced Backups-备份
    https://www.mcmod.cn/class/10769.html
    # Tweakeroo-灵魂出鞘
    https://www.mcmod.cn/class/2230.html
    # [JECh]通用拼音搜索
    https://www.mcmod.cn/class/840.html
    # 史诗战斗,对战锁定
    https://modrinth.com/mod/epic-fight

# 地形模组
    # 推荐 lithosphere 直接生成新的地形即可(可以先生成, 再复制到指定服务端)
    https://modrinth.com/datapack/lithosphere
    # ➕ Still Life 配合(以及客户端 Data Pack 数据包), 再设置种子为0
    https://modrinth.com/datapack/still-life

# 白日僵尸+武器包
ttps://www.curseforge.com/minecraft/mc-mods/day-zombies-rebooted
https://www.curseforge.com/minecraft/mc-mods/apocalypse-now
# 枪支包, 物品搜索gun或者amm; 换弹: 把子弹拿到物品栏按R
https://www.curseforge.com/minecraft/mc-mods/just-enough-guns
https://www.curseforge.com/minecraft/mc-mods/mo-than-enough-guns
# 依赖
https://www.curseforge.com/minecraft/mc-mods/geckolib
https://www.curseforge.com/minecraft/mc-mods/framework

# 生物多样性
https://www.curseforge.com/minecraft/mc-mods/biomes-o-plenty
https://www.curseforge.com/minecraft/mc-mods/terrablender

# ! 优化
    # 自动汉化mod
    https://modrinth.com/mod/i18nupdatemod/
    # 以及汉化资源包resourcepacks
    https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/releases/tag/Snapshot-2025091523211757978464
  • 创建登录验证器authlib-injector-需要客户端和服务端都支持

# [游戏]使用第三方littleskin(这几个客户端是支持的), 先进网站注册, 推荐ely.by
https://littleskin.cn/api/yggdrasil
# https://github.com/yushijinhun/authlib-injector/wiki#%E6%8E%A8%E8%8D%90%E7%9A%84%E5%85%AC%E5%85%B1%E9%AA%8C%E8%AF%81%E6%9C%8D%E5%8A%A1%E5%99%A8
https://littleskin.cn
# 另一种方式实现
https://ely.by

# 自建Yggdrasil协议验证器: 客户端(我的世界服务端)authlib-injector+服务端blessing-skin-server
# https://github.com/yushijinhun/authlib-injector/wiki/%E5%90%AF%E5%8A%A8%E5%99%A8%E6%8A%80%E6%9C%AF%E8%A7%84%E8%8C%83#%E6%B7%BB%E5%8A%A0%E5%90%AF%E5%8A%A8%E5%8F%82%E6%95%B0
https://github.com/yushijinhun/authlib-injector
https://github.com/bs-community/blessing-skin-server

# 服务端配置(需要客户端也支持对应网站的登录才行)
# https://manual.littlesk.in/yggdrasil/authlib-injector#%E5%8D%95%E6%9C%8D%E5%8A%A1%E7%AB%AF-%E9%9D%9E%E7%BE%A4%E7%BB%84%E6%9C%8D
## 编辑启动命令,或者文件: user_jvm_args.txt
-javaagent:authlib-injector-1.2.5.jar=littleskin.cn
  • 手柄控制

# forge 用(手机运行不能要这个, 否则崩溃)
https://www.curseforge.com/minecraft/mc-mods/controllable
# 依赖
https://www.curseforge.com/minecraft/mc-mods/framework

# Fabric 用
# https://www.curseforge.com/minecraft/mc-mods/midnightcontrols
  • 光影

# 界面优化(压缩包放到resourcepacks打开游戏加载资源包)
https://modrinth.com/resourcepack/cozyui-plus/versions

# 光影支持,先安装optifine(依赖Forge)
# 安装optifine的mod然后下载光影资源解压到shaderpacks目录
https://optifine.net/downloads
# https://modrinth.com/shaders
https://modrinth.com/shader/complementary-reimagined/versions
https://modrinth.com/shader/photon-shader/versions
https://minecraftstorage.com/shaders/iterationt-320/download


# optifine可能会和controllable冲突, 使用兼容版本Controllable https://github.com/MrCrayfish/Controllable/pull/465#issuecomment-1902649347
https://textures.livzmc.net/controllable/controllable-forge-1.20.1-0.20.3-release.jar
https://github.com/jcleng/filearchive/releases/tag/202501041341_controllable-forge-1.20.1-0.20.3-release.jar

http://optifine.net/shaderPacks

# 加载optifine的mod文件之后打开[视频设置-光影-内置]
tree -L 2 ./shaderpacks/
# ./shaderpacks/
# ├── makeUp
# │   ├── Credits
# │   ├── ForDevelopers.EN.md
# │   ├── helpful.txt
# │   ├── LICENSE
# │   ├── ParaDesarrolladores.ES.md
# │   ├── README.md
# │   └── shaders
# └── mellow-shader
#     ├── LICENSE
#     ├── read before you edit.txt
#     ├── README.md
#     └── shaders

# 7 directories, 11 files

tree -L 1 ./world/
# ./world/
# ├── DIM-1
# ├── DIM1
# ├── advancements
# ├── cobblemonplayerdata
# ├── data
# ├── datapacks
# ├── entities
# ├── level.dat
# ├── level.dat_old
# ├── playerdata
# ├── poi
# ├── pokemon
# ├── region
# ├── serverconfig
# ├── session.lock
# └── stats

# 地图,解压到saves/目录
https://www.minecraftmaps.com/51182-block-by-block
tree -L 2 .
# .
# ├── Block by Block 1.1.3a
# │   ├── data
# │   ├── datapacks
# │   ├── entities
# │   ├── icon.png
# │   ├── level.dat
# │   ├── level.dat_old
# │   ├── playerdata
# │   ├── poi
# │   ├── region
# │   ├── resources.zip
# │   ├── serverconfig
# │   └── session.lock
# ├── test
# │   ├── advancements
# │   ├── data
# │   ├── datapacks
# │   ├── DIM-1
# │   ├── DIM1
# │   ├── entities
# │   ├── icon.png
# │   ├── level.dat
# │   ├── level.dat_old
# │   ├── playerdata
# │   ├── poi
# │   ├── region
# │   ├── session.lock
# │   └── stats
# └── test2
#     ├── advancements
#     ├── data
#     ├── datapacks
#     ├── DIM-1
#     ├── DIM1
#     ├── entities
#     ├── icon.png
#     ├── level.dat
#     ├── level.dat_old
#     ├── playerdata
#     ├── poi
#     ├── region
#     ├── serverconfig
#     ├── session.lock
#     └── stats

# 32 directories, 13 files
  • 服务端运行之后可执行命令

# 把jcleng加作管理员, 会写到ops.json里面去
/op jcleng

# 创造模式
/gamemode creative
# 生存模式
/gamemode survival
# 死亡不掉落
/gamerule keepInventory true
# 服务端重新生成世界: 删除服务端的world文件夹
rm -rf ./world

# 编辑ops.json设置管理员

[
  {
    "uuid": "d101c460-xxxxxx-9cacb8f020b0",
    "name": "jcleng",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]
  • 服务端配置文件

level-type=minecraft\:normal

    DEFAULT(默认类型)
    FLAT(平坦世界)
    LARGE_BIOMES(大生物群系)
    AMPLIFIED(增强型世界)
    CUSTOM(自定义世界)

level-type=LARGE_BIOMES


# 在指令方块里面执行指令(循环执行最好创建一个高地敲碎停止, 否则很难停止)
/give @p command_block
/summon minecraft:zombie ~ ~ ~

# 晚上/白天
/time set night
/time set day

# 客户端设置 .minecraft/options.txt
## 失焦不显示菜单
pauseOnLostFocus:false


# 村庄生成指令
/place structure minecraft:village_desert
/place structure minecraft:village_plains
/place structure minecraft:village_savanna
/place structure minecraft:village_snowy
/place structure minecraft:village_taiga
  • 典型设置server.properties

#Minecraft server properties
#Mon Jul 29 05:39:52 GMT 2024
allow-flight=false
allow-nether=true
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
difficulty=easy
enable-command-block=true
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false
enable-status=true
enforce-secure-profile=true
enforce-whitelist=false
entity-broadcast-range-percentage=100
force-gamemode=false
function-permission-level=2
gamemode=survival
generate-structures=true
generator-settings={}
hardcore=false
hide-online-players=false
initial-disabled-packs=
initial-enabled-packs=vanilla
level-name=world
level-seed=
level-type=large_biomes
max-chained-neighbor-updates=1000000
max-players=20
max-tick-time=60000
max-world-size=29999984
motd=A Minecraft Server
network-compression-threshold=256
online-mode=false
op-permission-level=4
player-idle-timeout=0
prevent-proxy-connections=false
pvp=true
query.port=25565
rate-limit=0
rcon.password=
rcon.port=25575
require-resource-pack=false
resource-pack=
resource-pack-prompt=
resource-pack-sha1=
server-ip=
server-port=25565
simulation-distance=10
spawn-animals=true
spawn-monsters=true
spawn-npcs=true
spawn-protection=16
sync-chunk-writes=true
text-filtering-config=
use-native-transport=true
view-distance=10
white-list=false


  • rclone备份到oss

# 备份地图
cd /home/jcleng/.var/app/org.polymc.PolyMC/data/PolyMC/instances/1.20.4/.minecraft/saves

OssName=my_oss_youpai
BucketName=flathub2
BackDir=word
ZipFileName=minecraft-word-test2.zip

# 压缩地图
zip -r ../$ZipFileName .

docker run -e RCLONE_CONFIG=/rclone/rclone.conf --rm \
  -v /home/jcleng/work/monit/rclone/rclone.conf:/rclone/rclone.conf \
  --user $(id -u):$(id -g) \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  --dns=223.5.5.5 \
  --name rclone registry.cn-hangzhou.aliyuncs.com/jcleng/bitnami-rclone:latest \
  copy ./$ZipFileName $OssName:/$BucketName/$BackDir -P
  # 复制线上到本地
  copy $OssName:/$BucketName/$BackDir/$ZipFileName ./ -P
合成助手jei-1.20.4-forge-17.3.1.5.jar
旅行者背包travelersbackpack-forge-1.20.4-9.4.3.jar
鞘翅插位elytraslot-forge-7.0.0+1.20.4.jar
鞘翅base_caelus-forge-5.1.0+1.20.4.jar
鞘翅base_curios-forge-7.4.2+1.20.4.jar
鞘翅elytraslot-forge-7.0.0+1.20.4.jar
玉-焦点展示Jade-1.20.4-forge-13.2.1.jar
mod更新sakuraupdater-0.1.4-1.20.1.jar
Xaeros_Minimap_25.2.10_Forge_1.20.4.jar
XaerosWorldMap_1.39.12_Forge_1.20.4.jar