MINECRAFT开服

发布于 2022-08-30  707 次阅读


前言

  • 最近买了两台腾讯云服务器(安装了windows server),都有公网ip,就想着顺便搭建一个我的世界服务器,上网查找教程,发现基本都是本地开服+内网穿透,关于java环境的配置部分也写的不是很清楚,需要专门搜java教程,于是这里自己记录一下本人开服的完整教程

java环境的部署

java与spigot

  • 作为一台我的世界服务器,你的服务器上面不需要有我的世界游戏,但是需要一个我的世界服务器核心,有多种核心可以选择,本人选择spigot
  • 服务器核心是指一个应用程序,它会生成一个完整的我的世界地图,并将连接到的玩家放置在地图中
  • 服务器核心通常是后缀为.jar的java程序,想要运行这些应用程序,需要配置java环境,我的世界java版用户一般知道java环境的配置,但是以spigot为例,服务器核心对于java版本有严格的限制,请遵循以下步骤

java版本要求

  • java有jre和jdk两种,jdk是程序员开放java时的工具,本身包含了jre,spigot只需要jre即可,官网地址 https://developer.oracle.com/java/
  • 你需要了解java的版本,在spigot服务器使用jre1.8的同时,java已经发布了java17,这并不意味着jre1.8是一个远古版本,而是因为java有着混乱的命名规则.2018年之前,java版本以1.6,1.7为规则命名,2018年发布的java1.9版本被命名为java10,而上一个版本java1.8被命名为java8,包括了jre8和jdk8
  • 然而,无论是官网还是许多其他的网站,提供的java版本,大部分都是最新版本,然而本人实测,windows server2012(win8服务器版)上安装jre17版本或者jdk17版本,spigot都无法运行,spigot运行时会报错:java版本不够高,这并不是因为java版本不够高,而是因为java版本过高不兼容导致的

java环境配置

  • 这里推荐使用java1.8(java8)环境,如果你找不到安装包,我在这里分享一个链接:https://pan.baidu.com/s/10MHfNvGfp0kvMoIb5-Mofg 提取码:0gm3 安装过程尽量不要修改路径,把能选的全部选上即可

  • 下载完后电脑上有java程序了,但是没有java环境,因为打开.jar(java程序时),启动程序会向dos窗口发送java命令,在dos中调用java程序来编译运行.jar文件,然而此时电脑上虽然有java程序,但是dos并不认识java命令,这样就需要配置环境变量 可参考这篇博客https://blog.csdn.net/Zp_support/article/details/123529564 这篇博客是基于win10的系统,而服务器通常为windows server2012或者windows server2016,所以修改path变量时,将博客中配置修改path的步骤改为在编辑框最前面输入%JAVA_HOME%\bin;

  • 注意,所有标点都必须是英文标点,如果你不清楚,请直接复制博客的代码,完成后按照上面博客的内容检查是否正确

spigot安装与使用

  • Spigot服务端下载地址:https://sherkhol.lanzoux.com/b01ny9gxc 密码:bry9 或者在官网下载:https://getbukkit.org/download/spigot
  • spigot版本必须与游戏版本一致,建议根据游戏版本确定spigot版本,之后将会以spigot1.16.3进行举例
  • 创建一个文件夹,把spigot1.16.3放进去,创建一个文本文档,写入以下代码java -Xms1G -Xmx1G -jar spigot-1.16.3.jar 1G表示你为spigot分配的内存,1.7以下版本,5人以内,1G能玩2G流畅,spigot-1.16.3.jar是spigot的名字
  • 把新建文本文档.txt改名成start.bat,双击运行
  • 弹出dos,等待20秒,开始运行,然后会自动退出,文件夹中多了个文件,eula.txt中false改成true
  • 双击start.bat打开服务器,等待20秒,开始启动服务器,会弹出白色控制台,第一次加载地图需要一定时间,显示Done (34.896s)! For help, type "help"说明地形生成成功,输入stop,回车,关闭服务器,发现多了一堆文件
  • 记事本打开server.properties,这个文件是我的世界配置文件,你可以百度每个设置的意思,这里有一些推荐设置
enable-command-block=true 可以使用命令方块
max-players=5 调整服务器承载最大玩家人数,防止炸服
server-port=25565 调整服务所在的端口,当端口号为25565时,玩家可以通过服务器ip直接连上服务器,若
不是25565,玩家就得注明端口号,很麻烦,建议设为25565
online-mode=false ,正版验证该字段建议设置为false,否则非正版玩家可能无法登陆服务器
enable-flight=true,允许飞行,如果不允许,在网络延迟较高时服务器可能会误检测玩家在飞行,会视为玩家作弊而
自动踢出玩家
  • 到这里,spigot可以正常运行了,双击start.bat打开spigot即可

服务器端口开放

  • spigot已经可以正常地在你的云服上面运行了,但是你的云服务器防火墙会拦截mincraft向你的服务器发送的请求,你需要让云防火墙通过设置的端口,比如server.properties中server-port=25565,表示端口号为25565(建议用这个),与RDP一样,进入服务器管理页面,点击上方防火墙,点击添加规则,输入(选择)自定义,tcp,25565,确定;再添加一个规则,输入(选择)自定义,udp,25565,确定即可

开黑与赋予权限

和好友开黑

  • 接下来说明你自己的电脑与好友的电脑如何加入云服务器的spigot创建的地图
  • 首先明确spigot版本,比如我的版本是1.16.3,那么我需要下载我的世界java版1.16.3,关于如何切换自己的游戏版本,推荐使用pcl2启动器,可以方便地切换游戏版本还可以同时安装多个版本,随意切换启动版本
  • 正常进入游戏,在开始界面点击多人游戏(如果弹出防火墙通知,点击允许访问),点击添加服务器,在服务器地址框将你的或者好友给你的云服务器公网ip输入,点击完成,接下来需要等待连接到服务器,服务器右上角变成蓝色或者绿色表示连接成功,选择该服务器,点击加入服务器即可
  • 如果服务器右上角变成红色的叉,服务器显示服务器地址解析失败等字样1.请检查ip是否输入正确2.告知腐竹让他检查防火墙规则是否添加

赋予op权限

  • 什么是op,op是游戏内可以无视服务器端设置,修改游戏内参数的指令,如/gamemode creative设置游戏模式为创造模式

  • 关于赋予权限,众唆粥汁,mc游戏内指令不能识别中文,比如你的mc账户名为:喵呜,那么类似于tp 喵呜;op 喵呜;kill 喵呜都无法生效,导致后续腐竹给你赋予权限不方便,建议名字改为英文,如miaowu(如pcl2中直接修改离线账户名即可)

  • 首次赋予管理员权限需要再云服的spigot控制台输入op 你的名字;比如我的mc账户名为drinkflower,spgot控制台输入op drinkflower,无需我进入游戏,服务器权限已经被授予drinkflower玩家,在drinkflower获得op权限后,drinkflower可以在局内使用op命令,将op权限赋予其他玩家

  • 关于server.properties

- 关于server.properties(引用一段原创作者为时光丿Time的文章)

- \#带有*的则代表 猜测spawn-protection=16

  \#出生点保护半径(若没有op则不生效)

  max-tick-time=60000

  \#设置每个tick花费的最大毫秒数

  query.port=25565

  \#设置监听服务器的端口号

  generator-settings=

  \#用于自定义超平坦世界的生成

  force-gamemode=false

  \#玩家加入服务器时强制变成默认游戏模式

  allow-nether=true

  \#是否开启地狱世界(关闭后删除将不会生成地狱世界)

  enforce-whitelist=false

  \#在服务器上强制执行白名单。

  gamemode=survival

  \#设置玩家的游戏模式

  broadcast-console-to-ops=true

  \#*给op发送控制台信息?

  enable-query=false

  \#是否开启GameSpy4协议服务器监听器,用于获取服务器信息,建议不要修改

  player-idle-timeout=0

  \#当进入AFK模式,在规定时间内T出服务器,设置成0为不T出服务器

  difficulty=easy

  \#设置游戏的难度(peaceful(0)=和平,easy(1)=简单,normal(2)=普通,hard(3)=困难)

  broadcast-rcon-to-ops=true

  \#*允许远程连接控制台给op发送信息?

  spawn-monsters=true

  \#是否生成怪物

  op-permission-level=4

  \#设定OP的权限等级

  \#1 - OP可以无视重生点保护

  \#2 - OP可以使用 /clear、/gamemode、/tp 等等命令,可编辑命令方块

  \#3 - OP可以使用 /ban、/deop、/kick 以及 /op 命令

  \#4 - OP可以使用 /stop 命令

  pvp=true

  \#是否可以打架

  snooper-enabled=true

  \#一旦启用,将允许服务端定期发送统计数据到http://snoop.minecraft.net.

  level-type=default

  \#确定地图所生成的类型

  \#DEFAULT - 标准世界

  \#FLAT - 超平坦世界

  \#LARGEBIOMES - 预设世界,但所有生态系都更大(仅快照12w19a,或正式版1.3之后可用)

  \#AMPLIFIED - 预设世界,但世界生成高度提高(仅快照13w36a,或正式版1.7.2之后可用)

  \#CUSTOMIZED - 自快照14w21b以来,服务器也支持自定义地形。使用方法是在generator-settings贴上代码`

  hardcore=false

  \#极限模式(启用后,玩家死后会被服务器封禁)。

  enable-command-block=false

  \#是否启用命令方块

  network-compression-threshold=256

  \#默认会允许n-1字节的数据包正常发送, 如果数据包为 n 字节或更大时会进行压缩。

  \# 所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将会得不偿失。

  \#-1 - 永久禁用数据包压缩

  \#0 - 压缩全部数据包

  \#(建议在64-1500)

  max-players=20

  \#最大玩家数

  \#在ops.ym中设置你要突破人数限制的OP下的bypassesPlayerLimit选项为true即可(默认值为false)

  \#这意味着OP不需要在服务器人满时等待玩家离开再加入,

  max-world-size=29999984

  \#设置世界边界的最大半径值,单位为方块。通过成功执行的命令能把世界边界设置得更大,

  \#但不会超过这里设置的最大方块限制。如果设置的 max-world-size 超过默认值的大小,那将不会起任何效果。

  \#例如:

  \#设置 max-world-size 为 1000 将会有 2000x2000 的地图边界。

  \#设置 max-world-size 为 4000 将会有 8000x8000 的地图边界。

  \#自定义世界边界指令/worldborder在1.8加入

  resource-pack-sha1=

  \#资源包的SHA-1值,必须为小写十六进制

  function-permission-level=2

  \#用于控制函数拥有的权限等级。

  rcon.port=25575

  \#设置远程访问的端口号

  server-port=25565

  \#设置服务器的IPv4端口号

  server-ip=

  \#将服务器与一个特定IP绑定。建议留空

  \#留空,或是填入你想让服务器绑定的域名。

  spawn-npcs=true

  \#决定是否生成村民

  allow-flight=false

  \#允许玩家在安装添加飞行功能的mod前提下在生存模式下飞行。

  level-name=world

  \#主世界名称

  view-distance=10

  \#设置服务端传送给客户端的区块量 (范围3-15)

  \#减小此数值可有效缓解卡顿

  resource-pack=

  \#可输入指向一个资源包的URI。玩家可选择是否使用该资源包

  spawn-animals=true

  \#动物是否可以生成

  white-list=false

  \#服务器的白名单,OP无须加入白名单

  rcon.password=

  \#远程访问密码

  generate-structures=true

  \#定义是否在生成世界时生成结构(如村庄)

  online-mode=true

  \#线上模式是否开启 (即正版模式)

  max-build-height=256

  \#玩家在游戏中能够建造的最大高度

  level-seed=

  \#世界种子

  prevent-proxy-connections=false

  \#如果开启服务器发送的和Mojang的验证服务器的ISP/AS不一样将会被踢出

  \#开启后禁止使用VPN(虚拟专用网络或代理)

  use-native-transport=true

  \#是否使用针对Linux平台的数据包收发优化,此选项仅会在Linux平台下生成

  motd=A Minecraft Server

  \#玩家客户端的多人游戏服务器列表中显示的服务器信息,显示于名称下方。(注意:引用自 https://www.bilibili.com/read/cv7149916/ 出处:bilibili)
  • 关于op指令(并非所有都兼容spigot)
/gamemode 0是生存(极限)模式

/gamemode 1是创造模式

/gamemode 2是冒险模式(必须用特定的武器才能消除方块)

/gamemode 3是生存(极限)模式

/give 你的名字 137 1 能得到命令方块,在里面输

死亡不掉落:/gamerule keepInventory true

防爆:/gamerule mobGriefing False

重设出生点:/spawnpoint @ a

ascend - 把自己提升到上一个平台

bind {命令关键字} - 设置一键命令

clear - 清空控制台

damage - 关闭或者开启伤害 即无敌

descend - 把自己移动到下面一个的平台

destroy [all] - 破坏当前的东西(背包)

defuse [all] - 拆弹(拆除已经点燃了的TNT炸药)

difficulty- 设置游戏难度

dropstore - 在身边创建一个储物柜

*drops - 开关物品掉落,关闭的话采矿打怪不掉东西。

dupe [all] - 复制东西

duplicate [all] - 复制手上的东西并丢出来

world save - 保存退出游戏
explode [范围] - 设置一个地方爆炸(在自家慎用)

extinguish [all] - 熄灭周围所有的火

ext [all] - 一样是熄灭火

falldamage - 开关高空落下伤害

firedamage - 开关火的伤害

fly - 飞行模式

*freeze - 冻结怪物

give [数量] - 给一样物品

goto - 去一个地方

grow [all] - 让立即小麦成长

h [COMMAND] - 命令列表/帮助

heal- 补指定的血

health- 设置生命值

help [COMMAND] - 命令列表/帮助

home 回到出生点

i [数量] - 刷东西

instantmine - 开关即时采矿(采矿无延迟)

item [数量] [费用] 给玩家物品, 如果不指定则是最大的数量

itemname - 显示当前手上的物品名称

itemstack [数量] - 给玩家指定数量的物品

kill 自杀

jump - 瞬移到鼠标所指的地方

killnpc [all] - 杀死周围全部NPC 或者叫 杀了附近所有除自己外的活体生物

world exit - 不保存退出游戏

*light - 把光永久性关闭

listwaypoints - 列出所有路径点

macro {参数} - 允许运行宏

maxstack [物品ID|物品名称|全部] [数量] - 最大的把某物品堆起来

*mobdamage - 怪物不会给你伤害

msg - 添加一个消息到控制台

music [音量] - 播放音乐

noclip - 穿墙

p - 显示当前坐标

pos 现在玩家的坐标

reach- 玩家到指定地方

rem- 删除指定路点

removedrops [all] - 删掉地上物品

*rename- 修改命令名称

repair [all] - 修复当前物品耐久

reset - 恢复默认设置

search - 搜索物品名称

set - 在这世界标记一个路径点

setjump [JUMP|reset] - 设置跳跃的高度 落地伤害和移动 1:1

setspawn [] 设置当前位置 X轴 Y轴 Z轴

world- 世界情报

world load- 加载指定的文件

world new [FILENAME] [SEED] - 在指定位置创建新地图

world list - 列出所有存档

首先登场的是OP的指令大全:

/give 给予人 物品id 数量 - 给予某人物品,如果不写数量则给予数量默认为64

/nick ID 名称 -给某人改一个名 ID是加白名单的名字

/backup -运行备份命令

/fireball -发射一个火球(会破坏方块)
/heal name -治疗某人

/invsee name -查看某人的包裹

/lingtning name -天谴(不填写名字会雷击鼠标指向的地方)

/mute name -禁言某人

/ping 查看延迟

/seen name -查看某人最后退出的时间

(上面四个命令需要对方在线,不需要对方同意)

/unlimited id -给予自己无限的某物品

/weather storm/sun time -改变天气,雷雨或晴天

/mmoedit name skname rank -如果安装了MCRPG插件可以用这个命令改变某人的某项技能等级

/pumpkins -在自己身旁形成南瓜林(带叶子的南瓜林)

/snow -在自己的身旁成为雪后的样子

/thaw -融雪(和冰)

/buther -杀死附近的怪物

/tree 树形 -生成一棵树(树形不填也可以)

树形:big - 大树 ewquoia - 红木 Tall sequoia - 高大的红木

Birch - 衫树 Random - 随机

/up 高度 - 将自己提升到某高度,脚下用一块可能悬空的玻璃支撑

WorldEdit:

手拿木斧,左键一角,右键一角,两角之间的长方体为选择区域:

//set id - 将选中的区域变为某物品(如果是不可放置或者没有放置点的物品会成为被扔出的状态)

//undo - 还原上一次的WorldEdit行动

//redo - 还原上一次的//undo(这个说明可能有误)

//move x - 将区域移动x块。移动时需正对着区域与NEWS。

//move x up - 将区域向上移动x块

//move x down - 将区域向下移动x块

WorldEdit:

noclip - 穿墙

p - 显示当前坐标

pos 现在玩家的坐标

reach - 玩家到指定地方

rem - 删除指定路点

removedrops [all] - 删掉地上物品

*rename - 修改命令名称

replenish [all] - X

repair [all] - 修复当前物品耐久

reset - 恢复默认设置

s <名字> - Same as /set

search <关键词> - 搜索物品名称

set <名字> - 在这世界标记一个路径点

setjump [JUMP|reset] - 设置跳跃的高度 落地伤害和移动 1:1

setspawn [ ] 设置当前位置 X轴 Y轴 Z轴

setspeed [速度|重置] - 设置移动速度

spawn [QTY] - 产生一个生物

spawnstack {NAME|ID|random} - 产生一个合体的怪物NPC

*superheat [all] - Turns items which are furnace-able into their furnaced form

t - Same as /tele

time [set|get|day|night [minute|hour|day [TIME]]] - 设置指定时间得到物品

timeschedule > - 设定一段时间段,让世界永远保持在这段时间之间- - 《凉宫春日漫无止境的八月》

unbind - 解除一个命令

waterdamage - 开关潜水伤害

world - 世界情报

world load - 加载指定的文件

world save - 保存退出游戏

world seed [SEED] - 给你看看你世界里有多少个方块

world new [FILENAME] [SEED] - 在指定位置创建新地图

world exit - 不保存退出游戏

普通玩家指令:

注册账号:/register 密码 重复密码

登陆账号:/login 密码

查看与服务器延迟(出现Pong的间隔就是你与服务器的延迟):/ping

查看金钱:/money或者balance

查看金钱排行榜:/balancetop

设置自己的家:/sethome

回到自己设置的家:/home

上锁:[private]

显示坐标:/getpos

给予别人金钱:/pay 玩家ID 金钱数量

领地创建命令:/res create 领地名

领地查询命令:/res info

创建领地时所选面积查询命令:/res select size

添加区域进一个领地命令:/res area add 领地名 区域名

移除领地:/res remove 领地名
届ける言葉を今は育ててる
最后更新于 2024-02-07