Minecraft我的世界部署教程

部署

费了老鼻子劲才搞懂如何部署,对新人实在是太不友好了。所以总结一下。

这里选用 PaperMC + Veloity,使用 docker compose 部署。

结构

首先搞清楚服务器部署原理,有两个东西。

  • Minecraft 服务端
  • Minecraft 服务代理

服务核心常见的主要有三种。

  • Vanilla
    官方的最原始的纯净服务端。
  • 插件端
    插件端就是插件只需要安装在服务器李。客户端是不需要任何修改的。比如安装一键砍树,一些简单的功能扩展这种。
    下面是几个常见的服务端:
    • Bukkit
      给官服加入插件机制,已停止开发,主要继承者是 Spigot。
    • Spigot
      给 Bukkit 服务端加入大量优化,速度相当快,大众常用的一个服务端。
    • Paper
      基于 Spigot 添加了一些比较深度的优化,是最快、大众常用的服务端。
  • Mod 端
    Mod 端是需要同时在客户端和服务端安装Mod的,这些都是设计重大更改的,比如工业模组这种。同时由于大量的逻辑功能修改,相对于插件端,很多Mod(注意不是指Mod服务端,而是指Mod)他们会重点专注于某些版本上。插件端相对来说,插件会很快更新到新版本。
    • Forge
      老牌,稳定。
    • Fabric
      因为不满于Forge更新慢。 退出的模块化,开源服务端。

服务代理是当你有多个服务端的时候,才需要的东西,通过一个代理,别人可以只记住代理的入口,然后就可以先进入大厅世界,在大厅里选择不同的服务端进入。或者在进入大厅世界,由自己或者管理员输入命令传送到不同的服务端。

这里选择Velocity,因为他和Paper服务端是最适配的。

准备

compose.yaml:

version: '3.8'

services:
  lobby:
    image: phyremaster/papermc:latest
    container_name: mc-lobby
    restart: unless-stopped
    ports:
      # java
      - "25566:25565"
    volumes:
      - ../docker-data/servers/lobby:/papermc
    environment:
      TZ: 自己改
      MC_VERSION: "1.20.2"
      EULA: true
  survival:
    image: phyremaster/papermc:latest
    container_name: mc-survival
    restart: unless-stopped
    ports:
      # java
      - "25567:25565"
      # bluemap
      - "8100:8100"
    volumes:
      - ../docker-data/servers/survival:/papermc
    environment:
      TZ: 自己改
      MC_VERSION: "1.20.2"
      EULA: true
  creative:
    image: phyremaster/papermc:latest
    container_name: mc-creative
    restart: unless-stopped
    ports:
      # java
      - "25568:25565"
      # bluemap
      - "8200:8100"
    volumes:
      - ../docker-data/servers/creative:/papermc
    environment:
      TZ: 自己改
      MC_VERSION: "1.20.2"
      EULA: true
  velocity:
    image: mythoscode/velocity:3.2.0-SNAPSHOT-269
    container_name: mc-velocity
    network_mode: host
    # ports:
    #   - "25577:25577"
    volumes:
      - ../docker-data/velocity:/data
    environment:
      - JAVA_MEMORY=512M
      - JAVA_FLAGS=-XX:+UseStringDeduplication -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch

你会看到我这里还特地多开了端口,是为bluemap插件。可以从网页端查看地图。

然后由于我用的是ARM服务器,所以自己构建了一下 Veloity的镜像,如果是AMD就直接用官方的镜像吧。

修改配置文件

先启动 docker compose 项目。注意我专门设置了一个项目名称 mc.

docker compose -p mc up

配置支持 Veloity

通常来说是需要先去配置文件夹里修改 eula 声明为 true的,不过我们在环境里面已经配置过了,所以就省略了,他已经自动帮我们改为true了。

官网还推荐改的:
velocity.toml
player-info-forwarding 改为 modern

配置服务器地址,根据自己的实际服务器和网址修改。

# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25575"
[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:25566"
survival = "127.0.0.1:25567"
creative = "127.0.0.1:25568"

# 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.com" = [
    "lobby"
]
"survival.com" = [
    "survival"
]
"creative.com" = [
    "creative"
]

然后打开 Veloity 的 forwarding.secret 文件,复制密钥。

为了让服务器和代理可以正常使用,还需要对 Paper 设置做出修改以配合 Veloity的设置:

server.properties:
online-mode 改为 false

spigot.yml:
settings.bungeecord 改为 false 。这个默认就是 false

config/paper-global.yml:
proxies.velocity.enabled 改为 true
proxies.velocity.secret 改为刚才从 forwarding.secret 复制的密钥。

其他配置

接下来就是按照自己的需求配置某些功能、权限和插件了。

这里记录了一些我想要修改的东西:

  • 打开命令方块:
    server.properties
    请添加图片描述
    来源: https://www.youtube.com/watch?v=hozrPSujlMk

  • 取消末地:
    bukkit.yaml
    请添加图片描述

  • 取消下界
    server.properties
    请添加图片描述

  • 取消出身点保护机制, 这个会让出生点的命令方块无法在非 op 玩家上运行。
    server.properties

    spawn-protection=0
    
  • 设置难度
    server.properties

    difficulty=hard
    
  • 设置管理员
    https://xgamingserver.com/blog/adding-an-op-admin-to-minecraft-server-using-ops-json-and-op-username/

安装插件

Velocity

  • geyser
    Geyser 是一个代理,允许 Minecraft Bedrock 版本的玩家连接到 Minecraft Java 版本的服务器。
    它转换了 Bedrock 协议到 Java 协议,从而使这两个不同的版本可以交互。
    这意味着一个使用 Bedrock 版本的玩家(如在手机、Windows 10、Xbox、Switch 上的玩家)可以连接到 Java 服务器并与 Java 玩家一起玩。
    下载 jar 包,然后放入plugins 文件夹。具体教程看官网

  • floodgate
    Floodgate 是 Geyser 的一个可选插件。
    它允许 Bedrock 玩家无需拥有一个 Java 账户就可以连接到 Java 服务器。如果没有 Floodgate,Bedrock 玩家则需要拥有 Java 版 Minecraft 的账户才能加入。
    当 Bedrock 玩家使用 Floodgate 加入服务器时,它们会有一个特定的用户名格式,以区分他们是通过 Geyser 和 Floodgate 加入的。

  • SkinsRestorer
    可以让非正版服务器正确显示皮肤。
    官网推荐同时把这插件放到 proxy 和 server。同时还需要修改配置文件。

  • Viaversion
    可以选择安装在代理或者 server上。
    https://www.spigotmc.org/resources/viaversion.19254/

Paper

  • Bluemap
    地图
    https://bluemap.bluecolored.de/
    修改 core.conf 主要是 accept download 然后是cpu 核心数。
    webserver.conf 修改port 等。
    注意 nginx 配置官网的教程不行,需要这样写

    location ~/survival(.*)$ { 
        proxy_pass http://127.0.0.1:8100$1;
    }
    
  • HoloMobHealth
    显示伤害和健康
    https://www.spigotmc.org/resources/holomobhealth-display-mob-health-damage-indicator-client-side-javascript-formatting.75975/

  • 背包整理
    https://www.spigotmc.org/resources/chestsort-api.59773/

  • DeathCoordinates
    死亡后显示死亡坐标
    https://github.com/MythosCode/papermc-death-coordinates

  • ProxyCommand
    把命令传递给Velocity,执行 BungeeCord 命令
    https://github.com/MythosCode/papermc-proxy-command

  • 连锁挖矿
    https://www.spigotmc.org/resources/superharvest-animated-light-weight-lag-free-fully-configurable-open-source-1-8-1-20-2.103034/

客户端

  • xaeros MAP
    https://www.curseforge.com/minecraft/mc-mods/xaeros-minimap

其他

ubuntu 指定 navidia GPU 启动客户端。
更新系统内核,确保GPU driver已经安装。
找到 /usr/share/applications 下的 minecraft-launcher.desktop 做出以下修改: https://www.reddit.com/r/linux_gaming/comments/or5u7k/running_minecraft_with_dgpu/:

[Desktop Entry]
Type=Application
Version=1.0
Name=Minecraft Launcher
Comment=Official Minecraft Launcher
Exec=bash -c "__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher"
Icon=minecraft-launcher
Terminal=false
Categories=Game;Application;
StartupWMClass=minecraft-launcher

选择

还是Fabric + iris

开发

paper api 开发
https://www.bilibili.com/video/BV1gA411o7cm/?vd_source=321e57a11e165526e4b7c3288c66b8f6
https://docs.papermc.io/paper/dev/project-setup
https://blog.csdn.net/L1Z1357/article/details/131821653

command 注册问题:https://forums.papermc.io/threads/cant-register-command.802/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Minecraft Forge API 是 Minecraft Mod 开发的核心 API,它可以帮助开发者快速地编写 Minecraft Mod。下面是 Minecraft Forge API 的官方教程。 1. 下载并安装 Java Minecraft Forge API 是基于 Java 的,所以你需要先下载并安装 Java。请确保你下载并安装了最新版本的 Java。 2. 下载 Minecraft Forge API 在 Minecraft Forge API 的官网上,你可以下载最新版本的 Minecraft Forge API。请确保你下载的版本与你的 Minecraft 版本相匹配。 3. 安装 Minecraft Forge API 下载后的 Minecraft Forge API 文件是一个安装程序,你只需要双击运行它,然后按照提示完成安装即可。安装完成后,你会在 Minecraft 的启动器中看到一个新的选项,它会使用 Minecraft Forge API 启动 Minecraft。 4. 创建 Mod 工程 在 Eclipse 中创建一个新的 Java 工程。在工程设置中,将 JRE 规范设置为 1.6 或更高版本,并且设置工程输出路径为 Minecraft 的 mods 文件夹。接着,在工程设置中添加 Minecraft Forge API 的依赖库。 5. 编写 Mod 代码 现在可以编写 Mod 代码了。在 Eclipse 中创建一个新的 Java 类,继承 Minecraft Forge API 的 Mod 类,并实现其中的抽象方法。在 Mod 类的构造函数中注册你的 Mod,并且在 init 方法中添加 Mod 的内容。 6. 导出 Mod 文件 完成 Mod 的编写后,你需要将它导出为一个 JAR 文件,并将该文件放置在 Minecraft 的 mods 文件夹中。启动 Minecraft,你应该能够在 Mod 列表中看到你的 Mod。 这是 Minecraft Forge API 的官方教程的基本步骤。当然,具体的实现还需要根据你的需要来进行调整。如果你想深入了解 Minecraft Forge API,可以阅读官方文档,或者参考其他教程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值