Aleks_Kavli
本帖最后由 953480384 于 2016-10-14 06:13 编辑
所有服务端,都过来!
重大公告!
征集现有所有服务端!
为了提供更加齐全的服务端核心文件,本贴现在征集各类本贴没有的服务端。例如KBungeeCord,PaperspigotAPI,Minecraft_ServerAPI,BungeeCord,KPaperspigot,MCPE服务端,Sponge,KCauldron等等
各位作者可以按照格式独立发布到[软件资源]板块,然后私信本人或者回复本帖,我会带上服务端链接,作者链接,下载链接到其帖子!
感谢大家的支持!

另外,由于Spigot服务端API本人不会使用,希望各位技术大神做出解释!



目录:


什么是核心文件?[转自stool、craftbukkit官网

这篇帖子包含了什么核心?
CraftBukkit(水桶服务器)
BungeeCord(跨服服务器)
Spigot(水龙头服务器)
SpigotAPI(水龙头服务器API)
Minecraft_Server(官方服务器)
Cauldron(原MCPC+)
Libigot(现已停更)
Spoutcraft(水龙头服务器)
PaperSpigot(水龙头优化版)
Sponge(海绵服务端API)
TorchSpigot

2021.12 数据,可能有更多内容所有服务端,都过来!重大公告!征集现有所有服务端!为了提供更加齐全的服务端核心文件,本贴现在征集各类本贴没有的服务端。例如KBungeeCord,PaperspigotAPI,Minecraft_ServerAPI,BungeeCord,KPaperspigot,MCPE服务端,Sponge,KCauldron等等各位作者可以按照格式独立发布到[软件资源]板块,然后私信本人或者回复本帖,我会带上服务端链接,作者链接,下载链接到其帖子!感谢大家的支持!
另外,由于Spigot服务端API本人不会使用,希望各位技术大神做出解释!


目录:
1.简单介绍
2.核心下载

3.关于核心文件的一切
4.使用一切核心的教程
5.服务端根目录解析
6.有关于BungeeCord的一切
7.有关于Sponge的一切
8.有关于PaperSpigot的一切
9.有关于Spout的一切
10.有关于核心优化的一切
11.有关于TorchSpigot得一切


什么是核心文件?[转自stool、craftbukkit官网JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。
一个 JAR 文件可以用于:
□ 用于发布和使用类库
□ 作为应用程序和扩展的构建单元
□ 作为组件、applet 或者插件程序的部署单位
□ 用于打包与组件相关联的辅助资源
JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 TAR 所没有提供的。它们包括:
·安全性。 可以对 JAR 文件内容加上数字化签名。这样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。
·减少下载时间。 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。
·压缩。JAR 格式允许您压缩文件以提高存储效率。
·传输平台扩展。 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
·包密封。 存储在 JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 文件中找到。
·包版本控制。 一个 JAR 文件可以包含有关它所包含的文件的数据,如厂商和版本信息。·可移植性。 处理 JAR 文件的机制是 Java 平台核心 API 的标准部分。
这篇帖子包含了什么核心?CraftBukkit(水桶服务器)BungeeCord(跨服服务器)Spigot(水龙头服务器)SpigotAPI(水龙头服务器API)Minecraft_Server(官方服务器)Cauldron(原MCPC+)Libigot(现已停更)Spoutcraft(水龙头服务器)PaperSpigot(水龙头优化版)Sponge(海绵服务端API)TorchSpigot

下载这些核心文件
CraftBukkit:1.6.1-1.10.2百度网盘链接:http://pan.baidu.com/s/1kTmpnVL


Cauldron:1.7.2-1.7.10百度网盘链接:http://pan.baidu.com/s/1o6qse3w

PaperSpigot:1.7.10-1.8.8 百度网盘链接:http://pan.baidu.com/s/1o6mukyQ

BungeeCord:全版本 百度网盘链接:http://pan.baidu.com/s/1jG3mrjw


Sponge:1.8 百度网盘
链接:http://pan.baidu.com/s/1dDfeHQL


Libigot:1.5.2、1.6.2 (官方已停更)链接:http://pan.baidu.com/s/1qW4vV6O


Spigot:1.5.2-1.10.2百度网盘链接:http://pan.baidu.com/s/1mg87N1e


SpigotAPI:1.8.3-1.10.2百度网盘链接:https://pan.baidu.com/s/1o8euBpw

Minecraft_server:1.5.2-1.10 百度网盘(其中1.8分别有exe格式和jar格式,所有版本格式都带有官方控制面板)链接:http://pan.baidu.com/s/1pJLsVrl


Spoutcraft:1.5.2 1.6.4 百度网盘链接:http://pan.baidu.com/s/1hqtgTRu


TorchSpigot:1.8.8-1.9.4贴内链接链接:http://www.mcbbs.net/forum.php?mod=viewthread&tid=610636此服务端为国人制作的Spigot分支,希望大家报以支持!下载链接请前往贴内下载,本贴暂不搬运更新。作者页面
全文件链接:http://yun.baidu.com/s/1o69jHRc
这些服务器核心分别有什么作用?什么特点? [转自wolski,部分原创
minecraft_serverLink: -
官方服务端不能装插件!可以安装MOD API使之加载各种MOD。本贴只搬运jar通用版和少量exe版!
站内API合集:http://www.mcbbs.net/thread-63718-1-1.html

craftbukkit
Link: http://dl.bukkit.org/downloads/craftbukkit/
国内比较大众的服务器核心,不可随意安装API!不过有水桶版Player API以及smartmoving.jar安装后就可以在水桶服玩核弹啦~
Spigot
Link: http://ci.md-5.net/job/Spigot/
craftbukkit优化版!可有效分配利用资源人多的服效果更为明显。理论上支持所有插件但也不排除个别情况。并且服务端自带反X-ray MOD!


SpigotAPILink: http://ci.md-5.net/job/Spigot/Spigot的API文件独立出的Spigot应用程序接口,用于插件开发者使用
PaperSpigotLink: https://ci.destroystokyo.com/job/PaperSpigot Spigot的优化版!
相比Spigot服务端来说有着显著的性能提升
(Tiles几乎不再消耗CPU时间,爆炸算法优化,红石不再卡服,流水算法优化,区块压缩节约内存,优化Spigot自带的Anti X-ray等等)
并且有许多可自定义项目
船损坏依然掉落船,各种地形生成的开关等等)


TorchSpigotLink:http://www.mcbbs.net/forum.php?mod=viewthread&tid=610636国人自制Spigot分支!相比Spigot,Paperspigot,Taco服务端拥有爆炸性优化与其他核心相比,Toch具有以下特性:
   将更高版本上的各种更新重新应用到1.9.4/1.8.8上
   更完善的功能,包括自动保存和内置反X-ray(by stonar)等功能(下文详细)
   更优秀的性能,多线程处理 充分利用多核心CPU
   内置了1.9-1.9.2版本的MC连接支持 包括实体、爆炸等均为多线程计算,防止卡顿
MCPC-Plus 现已更名为CauldronLink1.7.X:http://ci.md-5.net/job/Cauldron/Link1.6.X:http://ci.md-5.net/job/Cauldron-164/
以上链接失效,请看站内搬运帖:http://www.mcbbs.net/thread-282081-1-1.html
craftbukkit、forge、Spigot的集合体!所以这个端即可以装MOD(绝大部分),又可以装插件!内置特定版本forge,无需拖入forge,当然你也不能随便往里拖东西,Player API需要安装MCPC+的版本
关于插件的兼容,这里说两句,并不是所有的插件都能在MCPC+上完美运行、支持MOD物品,毕竟插件的设计是以craftbukkit为基础的,设计者可能不会考虑那么多,具体情况要自己测试
相关说明链接:http://www.mcbbs.net/forum.php?mod=viewthread&tid=281716

LibigotLink1: http://get.libigot.org/
Link2: http://build.libigot.org/job/Libigot/
属于craftbukkit的分支可安装插件兼具Spigot节省资源的功能。其最大的特点是对老旧插件的兼容性很好
PS:七月中旬已停止开发停留在1.6.2 R0.1版本..... 请使用spigot

Spoutcraft
Link: http://www.spout.org/
Link2: http://get.spout.org/
不需要特殊的服务端只要能装spoutplugin即可安装spout专用或实现具有spout功能的插件!客户端比较特殊这个地方
与原版MC相比spoutcraft有更多的改进支持高清皮肤、披风通过server端来自定义音效、音乐自带小地图等等。
其他的就不了解有爱的同学可以来科普、推广
Sponge
Link: https://forums.spongepowered.org/
Sponge是一个新的Minecraft服务端。目前还在开发中。
简单的说,就是在Bukkit因为DMCA而挂掉之后,一群人决定抛弃Bukkit并重写一套服务端的API,这就是Sponge。
更具体一些的内容可以看论坛内介绍地址。这里并且感谢坛友@RecursiveG 在坛内发布的介绍~


BungeeCordLink:http://www.BungeeCord.org/并不是一个服务器.是服务器之间的桥梁,可以轻松的把多个服务端通过此服务端连接起来,在各个服务端之间来回跳跃,实现云服务器。关于此服务端的架设本帖会进行更新,关于这个服务端的基础本人已经整合了一个基本的BungeeCord的云服务器懒人包,可供参考。如何使用这些核心?[craftbukkit、spigot、PaperSpigot、Libigot、Spoutcraft]适用↓
第一步:下载需要开启的服务器核心
第二步:创建一个服务器根目录文件夹
第三步:新建一个TXT文档,键入以下命令:Java7-Xms最小内存 -Xmx最大内存 -XX:MaxPermSize=128M -XX:+AggressiveOpts -XX:+UseCompressedOopsJava8-Xms最小内存 -Xmx最大内存 -XX:+AggressiveOpts -XX:+UseCompressedOops* -XX:+AggressiveOpts的含义是尽可能的使用更多对性能有帮助的优化功能* -XX:+UseCompressedOops的含义是指针压缩,可以减少一定的内存占用(64位才支持
或:

代码:

  1. @echo off

  2. :MAIN
  3. cls
  4. java -Xms1024M -Xmx1024M -jar 核心文件名字.jar
  5. if exist "plugins\RestartEvolution\restart.mcs" goto MAIN
  6. if not exist "plugins\RestartEvolution\restart.mcs" goto END
  7. :END
  8. echo.
  9. pause>nul
第四步:把txt文件后缀改为bat,并启动第五步:等自动关闭后打开自动生成eula.txt文件夹把下面的eula=false改为eula=true然后保存并关闭第六步:启动bat,更改server.properties文本服务器成功启动



[MCPC+Cauldron、Cauldron-Plus]适用↓


1.下载Lib库文件和Cauldron本体2.解压Lib压缩文件到一个目录内,把本体放到同目录内3.新建txt文件,输入:

代码:

  1. @echo OFF
  2. java -Xmx1024M -Xms1024M -jar cauldron.jar
  3. PAUSE



4.后缀改为bat5.启动服务器。
[spongeForge、SpongeVanilla]适用↓SpongeForge:1.首先设置好官方服务端+Forge环境(注意不是Cauldron)2.将Sponge的jar放入mods文件夹3.启动服务器启动方法是在终端中运行:(版本号请按实际情况输入)

代码:

  1. java -jar forge-1.8-11.14.1.1371-universal.jar
首次运行会生成eula.txt文件,将其中的eula=false修改为eula=true
SpongeVanilla:SpongeVanilla 的使用方法和 CraftBukkit 一样,下载好jar文件后直接执行

代码:

  1. <div>java -jar spongevanilla-1.8-2.1-DEV-51.jar
  2. </div>
首次运行会生成eula.txt文件,将其中的eula=false修改为eula=true


[BungeeCord]适用↓1.下载BungeeCord服务端执行

代码:

  1. java -jar BungeeCord.jar
然后配置config文件即可
[Minecraft_Server]官方服务器适用↓windows平台:exe版:双击文件后修改eula文件jar版:(1)双击文件后修改eula文件(2)执行:

代码:

  1. <div>@echo off

  2. :MAIN
  3. cls
  4. java -Xms1024M -Xmx1024M -jar 核心的名字.jar
  5. if exist "plugins\RestartEvolution\restart.mcs" goto MAIN
  6. if not exist "plugins\RestartEvolution\restart.mcs" goto END
  7. :END
  8. echo.
  9. pause>nul</div>
Linux等平台如上。
生成文件:统一生成:[BungeeCord除外][spoiler]loge 服务器后台数据备份crash-reports 崩溃报告plugins 插件文件夹world 主世界world_nether 地狱世界world_the_end 末路之地banned-ips.json 封禁ip列表banned-players.json 封禁玩家列表eula.txt EULA协议help.yml 在游戏中输入/help的东西ops.json 服务器管理员列表server.properties 服务器基础设置usercache.json 玩家在world里的player文件夹的读取IDwhitelist.json 白名单列表另外Spigot.yml为spigot服务器的设置文件bukkit.yml为spigot服务器、bukkit服务器的设置文件Paper.yml为PaperSpigot服务器的优化文件Spout.yml为Spout服务器的设置文件BungeeCord服务器生成:modulesplugins:BungeeCord的插件文件夹config.yml:配置文件locations.yml:设置文件modules.yml:设置文件
有关于BungeeCord的一切:介绍:BungeeCord跨服群组是很流行的一种分布式部署Minecraft服务端从而提高服务器硬件资源利用率的技术。现在已经有很多关于BC群组的教程帖,水平参差不齐,其中有部分教程帖不仅是描述不清晰,甚至在某些地方有错误的描述,从而误导了很多人。    我这篇教程帖主要基于BungeeCord官方Wiki,对其中重要的部分进行翻译和解读,来帮助想要搭建跨服群组的服主来更深刻的理解其中每一项配置的作用。    因为本文的主要内容是基于官方Wiki,所以有可能不适合新手服主来阅读,以后我可能会根据情况来写深入浅出的快速搭建指引专供新手阅读。    使用BC跨服群组后,会产生很多潜在的安全漏洞,关于BungeeCord群组的安全漏洞,请阅读:http://www.mcbbs.net/thread-399234-1-1.html关于设置:
设置最大内存的建议:每多500人就多增加512M内存的分配,当然如果你用了BC端的插件,你也得考虑这些插件的内存占用


建议在Linux生产环境下运行BungeeCord


如果你使用Multicraft,请下载他们推荐的配置文件:http://www.multicraft.org/download/conf/?file=bungeecord.jar.conf


请将你子服务端目录下的“bukkit.yml”中的“connection-throttle”一项的数值修改为“-1


请将你子服务端目录下的“server.properties”中的“server-ip”一项的值修改为“127.0.0.1”(原因请参见另一篇关于漏洞解析的帖子


为了提高安全性,请确保你的服务器防火墙阻断了玩家直接连入后端服务器的请求(最好只给你的BC端开放唯一一个外网端口)


添加服务器列表页图标的方式和普通服务器一样,放一个64*64像素的png文件到BC端文件夹即可,图片名称是“server-icon.png


如果你想获取到正版玩家的UUID,请在BungeeCord的“config.yml”中设置“ip_forward: true”,并使用spiot/cauldron作为子服务端,然后在“spigot.yml”中设置“bungeecord: true




添加子服务器:
在config中,找到如下并修改。
servers:
login:
    address: 127.0.0.1:25560
    restricted: false
    motd: '&amp;b这是登陆服务器'
survival:
    address: 127.0.0.1:25561
    restricted: false
    motd: '&amp;c这是生存服务器'
game:
    address: 127.0.0.1:25561
    restricted: false
    motd: '&amp;c这是游戏服务器'


有关于Sponge的一切:


Sponge 项目目前由四个部分组成,鉴于有人搞不清楚其中的差别于是我在这儿罗列一下


SpongeAPI
即一套 API 标准,本身不能做任何工作,但是所有的插件均基于 API 编写,运行插件需要“实现”。
SpongeForge
SpongeAPI 的官方“实现”之一,基于 Forge,本身是一个 Mod,可以理解为所有 Mod 服务器的 Sponge 插件的前置依赖。使用该实现的服务端可以安装 Mod, 类似 Cauldron。同时它也可以在客户端使用,即单机也可以用插件。
SpongeVanilla
SpongeAPI 的官方“实现”之二,基于原版服务端。使用该实现的服务端不能安装 Mod, 类似 CraftBukkit。
SpongeDocs
Sponge 项目的官方文档,主要包含了服务器建立和插件开发相关的内容,部分有中文翻译。

本帖提供的是 SpongeForge 和 SpongeVanilla 的下载地址。Sponge要求使用Java8运行


关于:Sponge 是一个新的向 Minecraft 服务器添加插件支持的项目。目前还在开发中。
简单的说,在 Bukkit 因为 DMCA 而挂掉之后,一群人决定抛弃 Bukkit 并重新设计一套服务端的 API,这就是 Sponge。
更具体一些的内容可以看szszss菊苣的博客
目前,Sponge 作为一个 Mod 存在,但是它并不会要求在客户端也安装 Forge。
另外,因为 Sponge 的 Mod 本质,它也可以在客户端运行
友链:Sponge文档:https://docs.spongepowered.org/zh-CN/
Sponge论坛:https://forums.spongepowered.org/
Sponge的Github:https://github.com/SpongePowered/
Sponge的Maven Repo:https://repo.spongepowered.org/maven/
SpongeAPI下载:https://repo.spongepowered.org/maven/org/spongepowered/spongeapi/
楼主的Sponge插件开发样例:http://www.mcbbs.net/thread-385074-1-1.html
有关于PaperSpigot的一切介绍:PaperSpigot是一款基于Spigot服务端进一步优化修改而来的MineCraft原版服务端.但相比Spigot服务端来说有着显著的性能提升(Tiles几乎不再消耗CPU时间,爆炸算法优化,红石不再卡服,流水算法优化,区块压缩节约内存,优化Spigot自带的Anti X-ray等等)并且有许多可自定义项目(船损坏依然掉落船,各种地形生成的开关等等)。
由于基于Spigot开发,也必须使用BuildTools来进行构建
https://ci.destroystokyo.com/job/PaperSpigot/322/
关于兼容性,几乎兼容所有Spigot插件/Bukkit插件
地图/插件导入- 经测试,直接替换同版本服务端即可

Tools的用法:
Tools的用处:
1.能时刻获得最新的版本
2.不用担心服务端是否被动了手脚,都是官方的git直推的




使用方法:
首先请从官方的地址获取最新的Tools工具
https://ci.destroystokyo.com/job/PaperSpigot-BuildTools/
首先需要git的环境,请百度msysgit,并下载,下载后打开,并选择安装路径进行安装
然后需要创建一个bat脚本来运行这个tools,下面是一段示范

代码:

  1. @echo off
  2. title paperspigot制作工具,制作by AppleTop - soutou
  3. set startdir=%~dp0
  4. set bashdir="F:\msysgit\bin\bash.exe"此处请替换成你的msysgit安装路径中bash.exe文件的路径
  5. %bashdir% --login -i -c "java -jar ""%startdir%\PaperTools.jar"""
  6. pause
等待一段时间即可。

有关于Spout的一切
在正版mc玩家社区当中有几个非常著名的modpack一样的东西——tekkit、voxel、spoutcraft
跟其他modpack不一样的地方在于,这几个东西都有自己的启动器,并且都需要正版验证。


这几个东西在中文mc社区内我几乎完全没见有人讨论。不过,既然连正版minecraft的启动器都没有几个人用过,这样的modpack 启动器完全没有人气或者知名度也是正常的。


而在这里面,spoutcraft又是比较特殊的一个mod. 比起modpack,它更像是一个API,跟forge类似的一种东西——然而跟forge不同的是,spout能够被用来做mod的那部分API离完成永远遥遥无期(毕竟没有non-premium用户的关注和支持),这导致spout在实际上能提供的内容极其有限。


不过spout在多人游戏上有着一个非常大的优势:官方支持bukkit。不仅如此,如果在服务端安装了spout的mod,客户端不需要事先进行针对性配置——也就是说,使用同一个spoutcraft客户端你可以玩服务器提供的任何mod.


SpoutAPI之所以工程量浩大迟迟无法完工,就是因为像bukkit一样,spout不是一个基于Notch-code的mod. Forge的开发者能够通过反编译官方版的minecraft,在其基础上增加各种各样的hook,然后统一提供一个接口给mod开发者。这样的开发没什么后顾之忧,并且可以步步为营加一个算一个随时可以发布。然而对于SpoutAPI,他要做的基本是把整个mc重新写一遍。有什么地方不对或者没完成,整个spout都没法发布。


所以forge的发布可以超勤快,而且还可以嫌sdk的工作太慢自己出fml,而spout却一直拖到连1.4都要发布了,才更新1.3.2推荐版。
也是同样的原因,spout可以从头到尾稳定地支持bukkit且没有版本兼容问题,而mcpc到现在也没把1.3.2的forge给port出来。
————————————————————————————————————
其实说起来,spout也并不是只有正版玩家可用,你甚至不需要破解就能使用spout.
spoutlauncher在启动时无论你是否成功登陆,都会将整个spoutcraft的客户端更新下载下来,你只需要以某种方式启动这个客户端就行了。
具体方法不做提供。
spout官网:
http://www.spout.org/

有关于优化的一切:

server.properties中可以优化性能的参数:


  * view-distance,视距,默认值是10。含义是玩家的视距也就是加载的区块范围,默认是10个区块,视距10加载的区块是视距5的四倍。加载更多的区块则需要更多的内存和运算能力。推荐将这个值设置在5或者6,如果在线人数非常多可以设置为4。降低视距可以有效减少内存的占用,也能有效提高TPS,还可以减少宽带的使用量。这个参数对性能提升是立竿见影的。
    * generate-structures,默认值是true。含义是生成和计算一些特殊的环境,例如女巫塔、村民到达数量生成铁傀儡等等。设置为false可以减少这些特殊环境生成和周期性检查带来的开销。这个参数很少被提起,但是对性能的提升有着不少的帮助。例如我的服务器生存子服有130人左右在线,TPS在17左右,关闭这个功能后提高到了19左右。需要彻底关闭这个参数,还需要在spigot.yml中把save-structure-info设置为false。并且关服后手动删除每个世界(例如world、world_nether、world_the_end)下的data文件夹里的Fortress.dat、Mineshaft.dat、Stronghold.dat、Temple.dat、Village.dat文件。


  *network-compression-threshold,默认值是256。这个参数只有1.8的服务端才有,含义是网络封包压缩的阀值。例如设置为16,代表封包大于16才被压缩,设置成256代表着封包大于256才被压缩。设置的值越小则会压缩更多的封包,可以使得宽带使用减少,提高网络流畅程度,但是也会增加性能的开销。如果性能够用可以设置为128,使得更多通讯封包被压缩,一定程度上减少宽带使用率又不会带来太多的性能开销。设置的值太小,例如小于等于32会明显增加对能的开销,不建议这么做。


bukkit.yml中可以优化性能的参数:

* spawn-limits,意思是限制实体的生成。这个并不是限制一个区块生成多少实体,而是针对一个人可以生成多少实体。例如monsters: 70,在线人数只有10个人,则最多只能生成700个怪物实体(僵尸、骷髅、蜘蛛等等),适当的设置这些参数可以减少实体对性能的影响。

* chunk-gc,控制着区块的回收,单位是Tick(1/20秒),period-in-ticks是指每过多少tick回收一次需要回收的区块,设置的太小会导致回收过于频繁而影响性能,设置的太大会导致需要回收的区块迟迟不回收使得内存占用过大合理的数值一般是300~400。load-threshold是指达到多少需要回收的区块的时候才进行回收。例如设置成300,只有当需要回收的区块到达300以上才进行回收,合理的设置这个数值可以使得额外只多占用一丁点内存却使得区块回收的性能开销可以被无视。一般设置为300~600比较合适。
    *autosave,自动保存存档(地图、玩家数据等)的周期,单位是Tick(1/20秒),如果你使用了定时保存的插件,例如Saveit、AutoSave等等,你可以将他设置为0,即关闭这个功能。这样可以减少服务器瞬卡发生的可能


spigot.yml中可以优化性能的参数:

* user-cache-size,1.7.5以上版本才有,其控制用户缓存的大小,如果你的服务器玩家很多,可以设置的更大一些,例如5000。

* save-user-cache-on-stop-only,1.7.5以上版本才有,其含义是是否只在服务器关闭/重启的时候保存用户缓存,设置为true可以提高性能。

* view-distance,同server.properties里的view-distance一样。

* chunks-per-tick,是指每tick(1/20秒)扫描计算多少区块,计算的内容是作物的生长。默认值是650,可以设置成350来提高性能。极端的情况可以设置成150,但是会使得作物生长的速度明显变慢。

* max-tick-time:(仅较新的版本有该参数,如1.8.3+)是指每tick,实体和tile最多可以用的时间(单位是毫秒),要明白其含义首先要解释什么是TPS,TPS的意思是每秒有多少tick,最大值是20,也就是每秒tick20次,每次50毫秒。如果运算量过大导致每tick计算了超过了50毫秒,那么TPS就会下降,一旦TPS低于15就会产生明显的卡顿。在这参数中tile代表着熔炉、箱子、牌子、骷髅头等等所能占用的最大时间,entity是指的实体,例如动物、怪物、村民、展示框、掉落物、船、矿车等等。设置tile和entity的总和小于等于30则能明显降低tile和entity对TPS的影响,而服务器运算资源几乎一大半都是由这两者消耗的。设置tile为10,entity为20比较合适,如果实体非常多,还可以设置tile为6,entity为24。

* anti-xray,服务端自带的反透视功能,俗称假矿。这个功能相比插件版的假矿来说,额外内存占用极少,少到可以忽略,并且矿物的变动计算是异步进行的,对TPS的影响很小。engine-mode为1则是隐藏矿物,engine-mode为2则是将非矿物也伪装成矿物,engine-mode设置为2的效果最好,但是会额外吃一定的性能和宽带,但是engine-mode设置为1无法防御矿追。具体如何权衡请自行决定。如果你不需要本功能,例如你是纯RPG服务器,可以直接把enabled设置为false关闭这个功能,提高性能。

nerf-spawner-mobs,简单来说就是让刷怪笼生成的怪物变成白痴,直观感受就是刷怪笼刷出的怪不能攻击了。默认为false,意思是不开启。设置为true可以获得一定的性能提升。

* entity-activation-range,这个参数是控制实体的活跃范围,例如monsters: 32意思是在玩家附近32格范围内的怪物才会活跃(被计算AI等),减少这个数值可以明显提升性能,但是设置得过小会使得游戏难度大幅降低。一般可以把monsters设置为24,animals设置为12,misc设置为2(misc主要是掉落物,设置2可以使得掉落物几乎不再卡服)。

entity-tracking-range,这个参数是控制实体的可见范围,这个参数不会影响性能,对宽带的影响也极小。不建议修改这个参数,但是适当的降低数值可以减少客户端的卡顿。

* random-light-updates,随机的光照更新,设置为true的话服务器会随机更新光照,并且在区块加载的第一个tick运算光照逻辑。设置为false可以提高不少性能。

* save-structure-info,在前面已经介绍了。

max-bulk-chunks,1.7.10+才有这个参数,意思是每个数据封包里塞多少个区块。适当提高这个数值,例如从10提高到15可以减少网络卡顿和客户端读取区块的速度,但是设置得过高会导致客户端崩溃。

* max-entity-collisions,实体碰撞箱的阀值。建议设置为2,可以减少密集卡服的问题。

* max-tnt-per-tick,每tick(1/20秒)最多计算多少TNT爆炸,设置为20可以显著防御TNT蹦服。




paper.yml中可以优化性能的参数:

keep-spawn-loaded,spawn区块是否常驻内存,设置为false可以减少一定的内存占用和计算量

* tick-next-tick-list-cap,每tick最大的运算量,减少数值可以提高TPS,例如设置为8000

* tick-next-tick-list-cap-ignores-redstone,达到上面的运算阀值是否无视红石运算,设置为true可以显著减少红石对服务器性能的影响。

* optimize-explosions,是否开启爆炸算法优化,设置为true可以提升一定的服务器性能

* use-async-lighting,是否让光照的逻辑运算异步化,设置为true可以使得光照运算不再影响TPS,强烈推荐设置为true

* cache-chunk-maps,是否缓存chunkmaps,可以让区块的数据更多得被复用,可以一定程度提高性能,推荐设置为true

* fast-drain,快速液体流动运算,推荐设置为true,可以减少液体流动运算对服务器性能的影响


有关于TorchSpigot的一切
转载部分与http://www.mcbbs.net/forum.php?mod=viewthread&amp;tid=610636


Torch(或TorchSpigot)是一款基于TacoSpigot并对其进行完善和提高的服务端核心
由于是分支,仍然能够兼容Spigot/Bukkit的插件(部分使用NMS的插件可能会无法使用)



与其他核心相比,Toch具有以下特性:
   将更高版本上的各种更新重新应用到1.9.4/1.8.8上
   更完善的功能,包括自动保存和内置反X-ray(by stonar)等功能(下文详细)
   更优秀的性能,多线程处理 充分利用多核心CPU
   内置了1.9-1.9.2版本的MC连接支持
   这里并没有稳定性)
   包括实体、爆炸等均为多线程计算,防止卡顿
使用Torch有以下需求
   软件:Java 8或更高的版本(建议使用Oracle JDK,对性能提升可能有帮助 / 请尽量使用新一些的Java8)
   硬件:推荐使用CPU核心数2+

与Paperspigot对比压力测试
Spigot:大约1200只怪物时TPS开始跌落Torch:大约8500只怪物时TPS开始跌落所有核心都能明显利用 (非专业测试,测试结果仅供参考)和图片似乎没有关系测试环境:nc

PaperSpigot:约4.5秒Torch:约0.8秒地图为新生成)



更多内容请前往原作者帖子进行查看,希望大家对原创服务端作者报以支持
http://www.mcbbs.net/forum.php?mod=viewthread&amp;tid=610636



青橘短衫丶
CD没整合哈!

下一页 最后一页