mincHR547 发表于 2024-2-26 09:04:48

[持续更新]【原创】【Java开服教程】一起开优雅的搭建一个mc服务器吧!

本帖最后由 mincHR547 于 2024-3-2 12:57 编辑




废话 (bushi)



|本教程

本教程是面向从未开过Java版服务器的新手服主,帮助新手服主更好的了解Java服务器运行逻辑、结构、如何开服、如何深化定制服务器等.....
当然,如果你是老服主也可以通过本教程查缺补漏、学习新的知识,壮大自己的服务器

如果教程中有问题请及时指出,如果教程中有遗漏请及时指出,十分感谢!!

|统计

统计:
总字数 |26515 字节
总耗时 |3天








选择合适的 开服设备 ...?



|系统


目前市面上常用的系统有 Linux Windows MacOS,如果为纯新手开服,推荐选择使用Windows Server 2016及以上的版本,因目前WinServer2012不再维护(去年10月份不再维护),有部分BUG未修复,故推荐使用 Windows Server 2016及以上版本的win系统。
|处理器 内存 宽带
既然是高版本服务器,那么对于处理器(CPU)的消耗必定要比低版本大(自1.12后),所以选择一个合适的处理器对于服主来说是至关重要的,他直接影响到服务器流畅度(TPS)以及玩家的游玩体验等,个人推荐选择 7950x、12900k、13900k 等高频处理器,但是如果你预算少又希望有不差的体验,可以尝试其他处理器例如 8124M、3700x、5900x、12700k 等性价比处理器
内存(运行内存)在Java版服务器中也是一个重要的选项,他直接的影响到了你的服务器能有多少人游玩、插件上限个数等......高版本对于内存的消耗也是比较大,所以根据游玩人数和插件数目选择合适的内存大小是很重要的,对于1.17以上的版本,服务端最起码推荐分配4G内存,也就是说明你的机器需要起码6G的内存
可能的内存计算公式:基本内存 + (玩家数量 × 玩家内存) + 插件内存 + 世界内存基本内存:在没有任何玩家、插件的情况下运行服务器所需的最小内存(单位MB)玩家数量:服务器上预计同时在线的玩家数量玩家内存:为每个玩家分配的内存(单位MB)插件内存:插件和 mod 所需的额外 RAM(单位MB)世界内存:管理 Minecraft 世界所需的 RAM(单位MB)
如果想要玩家减少网络卡顿,那么服务器的宽带大小是一个比较重要的量,一般情况下,如果没有特别多的粒子效果,宽带的使用大约是 0.5-0.8Mbps/玩家 推荐的服务器宽带大小为 15M 10M 等...(看服务器人数和其他配置)
|服务商
服务商最好不要去淘宝找那种面板服,毕竟超开多少你也不知道,性能肯定没保障,数据肯定没保护,建议找一些耳熟能详的游戏云服务商,这里不做推荐,请自行寻找
(后续教程默认已经找到了服务商,拥有公网IP,安装系统为Windows)






选择 Java ...?



|Java

目前,除了原版的Java以外,还有其他厂商根据原版Java二次开发的Java可以选择(例如dragonwell zulu...),有些Java对于内存优化甚好、处理器优化甚好,各自有各自的优点,各位可以根据需求选择合适的Java
|服务端版本
如果你的服务端版本为 1.17+ 那么需要Java17及以上的版本才可以运行!低版本服务器端(1.17-)至少需要Java8运行,但是你也可以使用高版本Java,例如Java17,这样可以获得一点点优化。







服务端核心 ?




|开服核心 ...?

Java版本开服核心目前常用的有 Spigot Paper Purpur Folia等...本教程主要为Paper系列核心,原因自然是Paper的优化远远高于Spigot,同时Paper系列也是目前比较主流的核心。

既然已经完成了选择核心,接下来便要去获取(下载)核心

Paper官方下载: Build explorer | PaperMC (速度较慢,可能需要科学)
镜像站下载: 下载 | FastMirror 无极镜像 | 我的世界核心下载 (速度快,但可能不是最新)
核心下载完成后你会得到一个 <paper-版本-构建数.jar> 的JAR包

接下来前往你希望服务端所在的磁盘,创建一个非中文名的文件夹,并把核心复制、移动到文件夹中

完成截图:


接下来尝试启动服务端核心,初始化服务端

|核心对比 ...?

与Spigot相比,Paper核心拥有更好的优化、更多的配置,是很多人开服选择的第一款核心
与Paper相比,Purpur核心拥有更好的多核优化,超多可自定义的配置,更顶的优化以及很多额外的实用功能
与Paper相比,Leaves核心拥有更好的生电支持,更好的优化,最适合生电服务器
与所有核心相比,Folia是目前唯一一款支持多核的核心,但技术不成熟,还未发布正式版









服务器 , 启动 !



|服务器 , 启动 !

如果你已经按照上面的教程做好了准备工作,那么接下来的任务会比较轻松的完成

在你选择的服务端核心存放的目录下创建一个txt文件,名字随便起一个即可,然后在文件里输入以下命令:

<Java根目录/bin/java.exe> -jar <你的核心名字.jar> --nogui



例如我的启动文件就是这样写的:

java -jar Paper-1.20.4-435.jar --nogui


然后,将它重命名为<你刚刚起的名字>.bat,最后双击运行他



首次运行会自动下载一些依赖,稍等一会即可(网络速度决定)



完成后命令提示符窗口会自动退出,并且在你刚刚的服务端根目录留下一些文件、文件夹



现在,请打开 eula.txt 然后将 eula=false 修改为 eula=true 记得保存!



接下来,使用文本编辑器打开 server.properties 文件,然后找到 online-mode: true 把true修改为false(关闭正版验证,你如果开正版服务器可以跳过这一步),之后再找到 server-port: 25565 将25565修改为你的服务商给你开放的TCP外网端口(去问服务商,一般vps都会给几个端口)



(由于我是本地测试,直接使用25565了,方便)

最后,返回服务端根目录,再次运行 <xxx.bat> 启动服务端,当你看到Done (xxx s)! For help, type "help" 那么服务端就已经启动好了!
你可以选择现在进入游戏,服务器地址写 <你连接VPS的IP:你设置的端口> ,例如 11.4.514:19198,如果是本地,请写127.0.0.1:端口










优化 服务端 !




|配置修改 服务端优化 ...?

首先,恭喜你已经成功地启动了你的服务端!但是接下来对于一个新手服主有一些困难,请一定要仔细阅读!

接下来我们会从 Bukkit~Paper 的顺序依次修改常用的配置文件,并解释里面的内容,修改前后一定要备份好配置文件!

这节主要是配置文件优化,你可以最后阅读,先去阅读其他内容

bukkit.yml常用配置以及优化:


[*]spawn-limits.*:本配置项设定每个世界可以产生多少动物或怪物。

服务器流畅度影响:高
默认值:monsters:70, animals:15, water-animals:5, water-underground-creature: 5, axolotls: 5, ambient: 15
推荐值:monsters:25, animals:5, water-animals:2, water-underground-creature: 2, axolotls: 3, ambient: 1
如果你设置的过低,那么会影响玩家的游戏体验
计算公式:[在线玩家数] * [设置的限制数]
(注意:如果服务器少于15人应该跳过此项目的设置甚至增加这些数值)


[*]ticks-per.*:本配置用于设定生物生成频率。
服务器流畅度影响:中
默认值:animal-spawns: 400, monster-spawns: 1, water-spawns: 1, water-ambient-spawns: 1, water-underground-creature-spawns: 1, axolotl-spawns: 1, ambient-spawns: 1, autosave: 6000
推荐值:animal-spawns: 400, monster-spawns: 10, water-spawns: 400 water-ambient-spawns: 400 water-underground-creature-spawns: 400, axolotl-spawns:100, ambient-spawns: 400, autosave: 6000
在绝大多数情况下这些值都应该高于1,将这些值设置得高一些也会让你的服务器能更好地处理禁止生成生物地区域。


[*]chunk-gc.*:本配置用来控制区块回收

对服务器流畅度影响:高
默认值:period-in-ticks: 600
推荐值:period-in-ticks: 400
没什么好说的



spigot.yml常用配置以及优化:


[*]spawn-limits.*:本配置项设定是否不断将新的用户缓存数据保存到磁盘,或仅在服务器停止时才保存

服务器流畅度影响:一般
默认值:false
推荐值:true
如果你是生存服务器还是推荐设置false,但是如果你的服务器每天都备份,问题不大


[*]max-tick-time.*:本配置项会设定在服务器跳到下一个任务之前,实体操作会消耗计算的时间

服务器流畅度影响:相对的
默认值:tile:50, entity:50
推荐值:tile:1000, entity:1000
注意:这个选项降低它可以提升服务器性能,但是会产生一些奇怪的错误,设置为1000可以禁用这个选项,同时不会出现那些错误


[*]mob-spawn-range:本配置用于控制玩家周围最大刷怪距离

服务器流畅度影响:一般
默认值:4
推荐值:3
如果你降低了bukkit.yml里的怪物刷新数量,你也应该降低这个值!


[*]merge-radius.*:本配置用于控制掉落物、经验的聚集

服务器流畅度影响:中
默认值:item:2.5, exp:3.0
推荐值:item:4.0, exp:6.0
设置的高一些可以让更多物品聚集在一个上面,你如果设置的更高甚至不需要清理掉落物的插件
但是,合并物品可能会导致物品偶尔消失!!


[*]view-distance:本配置用于控制区块渲染数

服务器流畅度影响:极高
默认值:default
推荐值:4~6
最小值:3
本配置限制了玩家的区块渲染距离,大多数服务器应该设置为5-6,但是一些低规格,玩家数量多的玩家应该设置为4-5
如果你降低它服务器会有显著的性能提升,但是玩家体验会大打折扣!


[*]nerf-spawner-mobs:本配置用于控制刷怪笼的生物AI

服务器流畅度影响:中
默认值:false
推荐值:true
设置为true的话刷怪笼刷出来的生物就会变成”傻子“也就是没有AI










安装、配置插件 !


|安装插件 !

插件可谓是插件服的灵魂所在,就如同模组服的mod,你开一个服务器肯定要安装一些插件提供玩法吧?总不能说玩家连最基础的tpa都做不到

如何获取插件?
在Spigot以及其分支上,最好的插件获取网站便是 SpigotMC
同时你也可以去国内的论坛、创作者那里寻找插件、购买插件,本论坛 klpbbs 便是一个不错的选择
服务器插件 - Minecraft(我的世界)苦力怕论坛 (klpbbs.com)

当你找好了一个插件后,请看一下他是 BungeeCord | Spigot | Paper | Sponge | Fabric....,因为Paper核心是Spigot的衍生,所以一般的Bukkit、Spigot、Paper插件都可以在paper服务端上运行,然后找到插件相应的支持版本下载即可

下载完成后,前往<服务端根目录/plugins/..>把你刚刚下载好的插件jar包扔进去,然后重启服务端即可



服务器启动后输入 </pl> 即可查看安装的插件



|配置插件 !

插件安装成功后肯定有一些插件无法完美适配你的服务端,所以你需要修改一下插件的配置文件
插件的配置文件一般都储存在<服务端根目录/plugins/插件名文件夹/config.yml>内,双击打开即可修改里面的内容
修改完成后记得保存!!!












开发插件 !


|前言

插件作为插件服的灵魂,你需要的功能、玩法肯定不是在所有市面上你能找到的插件能实现的,所以我们可能会需要自己编写插件实现一些小功能,本部分就会教学如何编写插件实现自己希望得到的功能。

注:本部分并非专业教学,肯定有遗漏、没有讲清楚的地方,所以本部分为选读,有不明白的地方你可以去咨询专业的教程、开发人员

|快速开始 !


[*]安装 IntelliJ IDEA (idea) :
前往 下载 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE (jetbrains.com) 下滑找到 IntelliJ IDEA Community 进行下载、安装


















资源网站


|核心下载

Home | PaperMC
Purpur - Your Minecraft, your way (purpurmc.org)
主页 | LeavesMC
下载 | FastMirror 无极镜像 | 我的世界核心下载

|Java下载

Java 7, 8, 11, 13, 15, 17, 19, 21 Download for Linux, Windows and macOS (azul.com)
Dragonwell (dragonwell-jdk.io)
Java Downloads | Oracle 中国

|插件获取

服务器插件 - Minecraft(我的世界)苦力怕论坛 (klpbbs.com)
Resources | SpigotMC - High Performance Minecraft

|资源购买   请注意 , 这里面的资源有付费资源、免费资源 , 由于不可确定性 , 请确认后购买

Resources | SpigotMC - High Performance Minecraft
BuiltByBit
Best 3D Model, Texture, Graphics Shop and Asset Marketplace | MCModels

声明:在付费网站获取资源被骗取财物均与本教程作者无关









44044glsml 发表于 2024-2-26 10:33:06

isksbsisodnhsksih

Orphan.Seven 发表于 2024-2-27 19:44:47

好耶,感谢楼主!

Battle信仰云 发表于 2024-2-29 18:38:27

非常不错了,保姆级的教程

Crigo 发表于 2024-5-26 22:47:37

插件编写教程没写完吗?
这才是我最想学的

sensen1234 发表于 2024-8-3 23:33:29

jdk这边
17推荐graalvm ce
8推荐zulu
21推荐graalvm ee
这几个本人在生产环境下测试出来性能都不错,优化都非常好

美味的迷迭香 发表于 2024-8-6 20:02:02

[贴吧_滑稽][贴吧_玫瑰]感谢 这正是我需要的

leodjc 发表于 2024-8-7 12:52:35

咋看教程

金泽123 发表于 2024-9-17 02:58:02

。。。。?。。。。。。。。

balabbala 发表于 2024-9-24 12:25:11

666666[贴吧_呵呵]
页: [1]2
查看完整版本: [持续更新]【原创】【Java开服教程】一起开优雅的搭建一个mc服务器吧!