Minecraft我的世界部署教程

news2025/4/8 14:51:04

部署

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

这里选用 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-265
    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
    

安装插件

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/
    注意 nginx 配置官网的教程不行,需要这样写:

    location ~/survival(.*)$ { 
        proxy_pass http://127.0.0.1:8100$1;
    }
    
  • DeathCoordinates
    死亡后显示死亡坐标
    https://github.com/MythosCode/papermc-death-coordinates

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1055091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法挨揍日记】day09——704. 二分查找、34. 在排序数组中查找元素的第一个和最后一个位置

704. 二分查找 704. 二分查找 题目描述: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 解题思路&…

基于Java的网上摄影工作室网站设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

常见服务器运维管理面板整理汇总

随着云计算技术的发展和普及,越来越多的用户开始使用云服务器来部署和运行应用程序和服务。为了方便用户管理和操作云服务器,各种类型的服务器管理面板应运而生。本文将整理和汇总一些常见的服务器管理面板,供用户参考选择。 1、宝塔面板【官…

Go应用程序的安全最佳实践

在Go中预防漏洞、保护用户输入和防御代码注入和XSS攻击 在软件开发领域,安全性不是一个简单的事后考虑,而是建立强大和可信赖应用程序的基本基石。确保您的Go应用程序对潜在威胁具有韧性要求全面了解安全最佳实践。本指南深入探讨了您可以采取的重要措施…

【通意千问】大模型GitHub开源工程学习笔记(1)--依赖库

9月25日,阿里云开源通义千问140亿参数模型Qwen-14B及其对话模型Qwen-14B-Chat,免费可商用。 立马就到了GitHub去fork。 GitHub: GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat & pretrained large language model proposed b…

yolov5分割+检测c++ qt 中部署,以opencv方式(详细代码(全)+复制可用)

1&#xff1a;版本说明&#xff1a; qt 5.12.10 opencv 4.5.3 &#xff08;yolov5模型部署要求opencv>4.5.0&#xff09; 2&#xff1a;检测的代码 yolo.h #pragma once #include<iostream> #include<cmath> #include<vector> #include <opencv2/…

Spring的注解开发-非自定义Bean的配置

非自定义Bean注解开发 非自定义Bean不能象自定义Bean一样使用Component注解及其衍生注解进行管理&#xff0c;非自定义Bean要通过工厂的方式进行实例化&#xff0c;使用Bean标注即可&#xff0c;Bean的属性为beanName&#xff0c;使用Bean注解作用在方法中&#xff0c;通过定义…

一个高精度24位ADC芯片ADS1222的使用方法及参考电路程序成都控制器定制

前一段时间&#xff0c;在做单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统&#xff0c;物联网&#xff0c;电子产品&#xff0c;软件、APP开发设计定制定做开发项目时&#xff0c;有要求用到24位的高精度ADC&a…

Flutter笔记 - 用于描述Align的Alignment、AlignmentDirectional、AlignmentTween类

Flutter笔记 用于描述Align的Alignment、AlignmentDirectional、AlignmentTween类 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_…

问题: 视频颜色问题,偏绿

参考 什么是杜比视界&#xff1f; - https://www.youtube.com/watch?vldXDQ6VlC7g 【哈士亓说】07&#xff1a;HDR、杜比视界究竟是个啥&#xff1f;为什么这个视频还不是HDR视频&#xff1f; - https://www.youtube.com/watch?vrgb9Xg3cJns 正文 视频应该是 杜比视界 电…

【C++漂流记】C++对象模型和this指针

C中对象模型和this指针是面向对象编程中的重要概念。对象模型描述了对象在内存中的布局和行为&#xff0c;包括成员变量和成员函数的存储方式和访问权限。this指针是一个隐含的指针&#xff0c;指向当前对象的地址&#xff0c;用于在成员函数中引用当前对象的成员变量和成员函数…

力扣 -- 416. 分割等和子集(01背包问题)

解题步骤&#xff1a; 参考代码&#xff1a; 未优化代码&#xff1a; class Solution { public:bool canPartition(vector<int>& nums) {int nnums.size();int sum0;for(const auto& e:nums){sume;}if(sum%21){return false;}int aimsum/2;//多开一行&#xff…

前端页面初步开发

<template><div><el-card class"box-card" style"height: 620px"><el-input v-model"query.name" style"width:200px" placeholder"请输入用户姓名"></el-input>&nbsp&nbsp&nbsp…

cesium 雷达扫描 (线行扩散效果)

cesium 雷达扫描 (线行扩散效果) 1、实现方法 使用ellipse方法加载圆型,修改ellipse中material方法来实现效果 2、示例代码 2.1、 <!DOCTYPE html> <html lang="en"><head><<

[Spring] Spring5——IOC 简介(二)

目录 六、工厂 Bean&#xff08;Factory&#xff09; 1、普通 bean 2、工厂 bean 3、示例 七、Bean 的作用域 1、单例和多例 2、如何设置为单实例或多实例 八、Bean 的生命周期 1、生命周期 2、生命周期示例 3、Bean 的后置处理器 4、后置处理器示例 九、XML 的自…

JavaScript设计模式

✨JavaScript设计模式 &#x1f380;设计模式 在 面向对象软件设计中针对特定问题的简洁而优雅的解决方案 &#x1f390;常见的设计模式 &#x1f384;1. 工厂模式 在JavaScript中&#xff0c;工厂模式的表现形式就是一个调用即可返回新对象的函数 // ------------- 工厂模…

gitlab配置webhook限制提交注释

一、打开gitlab相关配置项 vim /etc/gitlab/gitlab.rb gitlab_shell[custom_hooks_dir] "/etc/gitlab/custom_hooks" 二、创建相关文件夹 mkdir -p /etc/gitlab/custom_hooks mkdir -p /etc/gitlab/custom_hooks/post-receive.d mkdir -p /etc/gitlab/custom_h…

springboot和vue:九、v-for中的key+vue组件化开发

v-for中的key 目的 现在想要实现这样的一种效果&#xff0c;页面上存在初始姓名表单&#xff0c;同时存在输入框&#xff0c;输入姓名后点击添加按钮可以将新输入的姓名加入显示的姓名表单中。 代码 <!DOCTYPE html> <html lang"en"><head><…

数学建模Matlab之数据预处理方法

本文综合代码来自文章http://t.csdnimg.cn/P5zOD 异常值与缺失值处理 %% 数据修复 % 判断缺失值和异常值并修复&#xff0c;顺便光滑噪音&#xff0c;渡边笔记 clc,clear;close all; x 0:0.06:10; y sin(x)0.2*rand(size(x)); y(22:34) NaN; % 模拟缺失值 y(89:95) 50;% 模…

Mars3d的graphic/entity/model示例的glb的ModelEntity修改颜色失效说明

1.Mars3d的graphic/entity/model示例的glb的ModelEntity修改颜色失效说明 2.测试时发现示例的glb的ModelEntity使用setStyle()修改颜色没成功 setTimeout(() > { graphicModel.setStyle({ color: "red" }) }, 500) 相关链接 1.http://mars3d.cn/editor-vue.html?…