我的世界Waterfall是一款由PaperMC团队主导开发BungeeCord的分支,拥有更友好的控制台输出和更个性化的配置选项,帮助用户更好的架设服务器。软件安装简单便捷,并且提供了详细的安装教程,可以帮助用户解决使用过程中遇到的各种问题,让我的世界服务器的运行更加稳定。
【软件特色】
稳定性: Waterfall的目标就是稳定。 我们将实现这个通过使代码基可测试并且阻止让代理[代理的意思就是服务端]滞后的行为.
特性: Waterfall目标就是比标准BungeeCord有更多特性。
可扩展性: Waterfall应当能够处理大量的并发[并发是开发者术语 大概意思就是很多玩家一起上]玩家, 给予公平的现代CPU,内存和好的网络连接。
【使用方法】
1、下载完成后,编写启动脚本以启动 Waterfall 。Waterfall 所需的内存并不多,因此您可按需为 Waterfall 分配 512MB-1024MB 内存
对于使用 Bash/CMD 的 Windows 用户
:: on start.bat
[url=home.php?mod=space&uid=39305]@echo[/url] off
java -Dfile.encoding=UTF-8 -Xms512M -Xmx1024M -jar waterfall-384.jar
pause
对于使用 Shell 的 Linux 用户
# on start.sh
java -Dfile.encoding=UTF-8 -Xms512M -Xmx1024M -jar ./waterfall-384.jar
2、第一次启动服务端时会下载额外的模块(位于 modules 文件夹内),下载完成后服务端便会启动。
3、当你看到Listening on /0.0.0.0:25577时即代表服务端已经完成了加载并开始正常工作了。因为我们需要配置服务端,因此输入end(不是stop)以关闭服务端。此时,你将可以看到 Waterfall 已经生成了一些文件。
4、打开config.yml,即可配置 Waterfall
【主要配置项目】
forge_support 代表是否启用对 Forge 的支持,默认值为true,即启用。启用后会为 Forge 客户端提供支持(尽管兼容性并不是很好,编者注)。
player_limit 代表整个 BungeeCord 实例能够接受的最大玩家数量,默认值为-1,即不限数量。调整为正整数即启用最大玩家数量限制。
premission 和 groups 由 BungeeCord 提供的简易权限管理设置。前者用以配置权限组内置的权限,default表示默认权限组;后者用以配置玩家所在的权限组。(这里的权限是指 BungeeCord 内置及其插件声明的权限,与下游服务器的权限完全无关,切勿混淆。正如 CraftBukkit 提供的 permission.yml 一样,这套简易的权限管理配置同样不受到欢迎,且难以配置。这里推荐安装 Luckperms 作为 BungeeCord 的权限组管理插件,编者注)。
log_commands 代表是否在控制台记录玩家输入的指令(同样,仅记录 BungeeCord 指令,与下游服务器无关,编者注)。默认值为false,即不记录。
log_pings 代表是否在控制台记录玩家客户端向 BungeeCord 发起 ping 请求的记录(这种记录一般是玩家尝试刷新服务器MOTD信息时出现的)。默认值为true,即记录。
online_mode 代表是否开启正版验证,开启正版验证时, BungeeCord 将仅接受经过 Mojang 正版验证服务器验证通过的玩家加入服务器,反之任何玩家都可进入服务器。默认值为true,即开启正版验证。(请注意,如果开启正版验证,那么请务必将所有下游服务器的正版验证关闭,否则玩家将无法连接至下游服务器(BungeeCord 将负责向下游服务器传递玩家的正版数据,如 UUID 等),编者注)。
ip_forward 代表是否启用 IP 追踪,默认值为 false,即不开启。开启后 BungeeCord 将会向下游服务端传递玩家的真实IP。如果不开启本项,那么下游服务端接收到的玩家 IP 将永远为 BungeeCord 服务端所在的 IP 地址。要想开启此项,您必须使用支持 ip_forward功能的服务端,并启用其配置中的设置(具体设置方法见下)。如果仅启用了此项而不配置下游服务端的是设置,那么玩家将无法连接到下游服务器。强烈建议所有人都启用此项以免出现某些 IP 问题。
listeners表示监听器设置,一个监听器对应一个监听端口,不同的监听端口可以允许不同的玩家加入设定的不同的服务器,且设置相互独立。一个 BungeeCord 实例可以设置多个监听器。BungeeCord 的默认配置文件只提供了一个监听器,如需添加多个监听器请自行按照 YAML 语法在listeners下重复添加。
listeners.query_enabled 代表是否开启 UDP 查询,开启后可籍由 UDP 协议监听该监听器的状态。默认值为false,即关闭查询。
listeners.query_port 代表查询端口,默认值为25577。
listeners.motd 代表当仅有一个默认服务器时,服务器将会显示给玩家的Motd。当listeners.ping_passthrough被开启时,此项无效。
listeners.tab_list 代表连接到服务器的玩家的 TAB 列表所显示的内容格式。他可以有三个值,分别是GLOBAL_PING(默认值),GLOBAL和SERVER。当设置为第一种时, TAB 列表会显示所有连接到本 BungeeCord 实例的玩家和他们的 PING 值;当设置为第二种时,同上一种大致相同,但玩家的 PING 值不会更新;当设置为第三种时,只会显示玩家所在的下游服务器的玩家列表。
listeners.proxy_protocol 代表是否开启对 HAProxy 的支持,默认值为false,即关闭。开启后,BungeCord 将支持接收上游 HAProxy 籍由 ProxyProtocolV3 协议发送的玩家真实 IP,如不开启此项但在上游使用了 HAProxy 服务端,那么 BungeeCord 接收到的玩家 IP 地址将衡为 HAProxy 的所在地址。如果您不理解此项在说什么,请不要随意开启本项。
listeners.forced_hosts 代表端口转发设置,默认值为一个仅包含一个键为pvp.md-5.net,值为pvp的 Map (即pvp.md-5.net: pvp)。这意味着所有通过pvp.md-5.net域名连接到 BungeeCord 的玩家将不会再被连接到默认下游服务器(对于默认下游服务器的配置请见listeners.priorities项),而将会被重定向至服务器名为pvp的服务器(关于服务器名的配置请见servers项)。这要求您预先将名为pvp.md-5.net的子域先解析至 BungeeCord 所在的地址。
listeners.ping_passthrough是否开启 ping 穿透,默认值为false,即不开启。开启后,BungeeCord 将直接传递默认下游服务器的 ping(如motd,在线玩家数)信息到客户端,而不是显示 BungeeCord 设置的此类信息。
listeners.priorities 优先级设置,默认值为一个仅有lobby 服务器的列表,可以按照格式依次向下添加多个已在servers项中配置的服务器名,优先级由上到下逐级递减)。这代表玩家连接到 BungeeCord 后将会被转发到的服务器的顺序:第一个是首选服务器,如果因为某些原因使玩家无法连接到该服务器(如服务器已关闭,版本与玩家客户端版本不匹配),那么将尝试将玩家转发到下一个服务器,以此类推。如果所有服务器都无法连接,那么玩家将会收到一个服务器当前不可用的提示。(此项不一定必须全部对应servers内的下游服务端名称,如果您有一个登录服,那么此处应当只填写您的登录服名称,这样当您的登录服离线时,玩家将不能进入服务器,而不是绕过登录服的登录系统前往其他下游服务器)
listeners.bind_local_address 代表是否显式显示 BungeeCord 正在监听的 IP 地址,默认值为true。除非的服务器拥有多个 IP 地址,否则这并没有什么实际用处。如果没有特殊需求,最好不要改变此项。
listeners.host 代表该监听器监听的 IP 地址和端口,默认值为0.0.0.0:25577,即监听来自所有 IP 地址的来自25577端口的连接。0.0.0.0代表监听所有 IP 地址,如果您将其设置为非0.0.0.0的 IP 地址,则代表只监听来自于该 IP 地址的连接。一般情况下,您只需要修改25577为希望玩家连接的端口号,或保持不变。
listeners.max_players 代表玩家客户端将会显示的最大玩家数,默认值为1。此项只作为装饰,并未真实的最大玩家数设置,即使将此项设置为0,玩家仍可以进入服务器。要想设置真正的最大玩家数,请见player_limit项。 listeners.tab_size 代表将会显示在 TAB 列表上的最大玩家数量,默认值为60.
listeners.force_default_server 代表当每次玩家进入服务器时,是否强制将玩家发送到默认服务器中,默认值为false,即关闭。设置为false则代表玩家进入服务器时将会发送到玩家上一次下线时的服务器。如果您有一个登录服,亦或者使用了一个由单个大厅服务器管理的登录插件,请务必将此处设置为true以免玩家下次登录时直接绕过登录系统。此项与listeners.forced_hosts相冲突,如果您希望使用后者提供的重定向功能,那么请将此项设置为false。
prevent_proxy_connections 代表是否向 Mojang 发送玩家 IP 数据以阻止 使用了代理的玩家进入服务器。默认值为false,即不开启
connection_throttle 和 connection_throttle_limit 为 BungeeCord 自带的简易反压测策略,他们分别代表断开时间和断开次数,默认值分别为4000和3。这意味着单个 IP 一旦在 4000 毫秒内连接了 BungeeCord 3 次,那么它必须等待 4000 毫秒后才能再次连接。
servers 代表下游服务端设置,只有在此处设置过的下游服务器才可被连接。它包括一个名为lobby的默认下游服务端,您可以按照这种格式继续向下添加更多的下游服务器。(如果修改了lobby的名称,请千万不要忘记修改上方listeners.priorities的优先级设置以免因不存在一个名为lobby的下游服务端而无法连接。其中:
server.[XXX]代表服务器名称,可为任意值,但必须是唯一的;
server.[xxx].motd代表当有多个默认服务器时,被匹配到可以连接的首选服务器将会显示给玩家的Motd。同样当listeners.ping_passthrough被开启时,此项无效。如果希望使用双行Motd,请参见上方listeners.motd的注释。
server.[xxx].address代表目标下游服务器的 IP 地址和端口,请填写 BungeeCord 所在的网络环境能够连接到的地址(包括本地地址和内网地址),无需保证玩家可以连接。
server.[xxx].restricted 代表权限控制,默认值为false。当设置为true时,只有拥有bungeecord.server.[xxx]权限时,玩家才能进入此服务器。