【Minecraft群组教程】Waterfall的实装与配置
什么是WaterFall核心?
Waterfall
是一个 BungeeCord
的分支,由 PaperMC
团队主导开发,其特点是拥有更友好的控制台输出和更个性化的配置选项
为什么不使用原生 BungeeCord
由 SpigotMC 团队开发的 BungeeCord
在控制台输出和log输出上并不完美,而 Waterfall
恰好改善了这一部分的体验,因此在这里我们使用 Waterfall
作为示例。如果你仍想使用原生 BungeeCord
或其分支(如HexaCord
)也无需担心,因为 Waterfall
并不会改变主要配置文件(config.yml)
和主要文件架构,因此您扔可通过本文来了解您所使用的 BungeeCord
跨服端如何配置
下载核心
请前往:https://papermc.io/downloads/waterfall
下载最新构建
下载完毕后,将他放到一个文件夹里
然后按照启动服务器核心的方法启动它,该核心需要的内存不多,一般分配个512m~1024m的内存就够了
下面就列一个启动脚本
Windows的小伙伴用这个
@echo off
title Waterfall
:head
Java -Xms512m -Xmx1024m -jar 核心名字.jar
goto head
保存为任意bat文件或者cmd文件,就是后缀为.bat/.cmd
Linux系统就是这个
java -Xms512m -Xmx1024m -jar 核心名字.jar
然后保存为一个sh文件,比如start.sh
然后终端输入:
sudo bash start.sh
这样就成功打开了!
第一次启动服务端时会下载额外的模块(位于 modules 文件夹内),下载完成后服务端便会启动。
当你看到 Listening on /0.0.0.0:25577
时即代表服务端已经完成了加载并开始正常工作了。因为我们需要配置服务端,因此输入end(不是stop)以关闭服务端。此时,你将可以看到 Waterfall 已经生成了一些文件。
他生成的文件一般有这些,除了你的启动脚本和核心排除掉
配置
config.yml
server_connect_timeout: 5000
enforce_secure_profile: false
remote_ping_cache: -1
forge_support: true
player_limit: -1
permissions:
default:
- bungeecord.command.server
- bungeecord.command.list
admin:
- bungeecord.command.alert
- bungeecord.command.end
- bungeecord.command.ip
- bungeecord.command.reload
- bungeecord.command.kick
timeout: 30000
log_commands: false
network_compression_threshold: 256
online_mode: true
disabled_commands:
- disabledcommandhere
servers:
lobby:
motd: '&1Just another Waterfall - Forced Host'
address: localhost:25565
restricted: false
listeners:
- query_port: 25577
motd: '&1Another Bungee server'
tab_list: GLOBAL_PING
query_enabled: false
proxy_protocol: false
forced_hosts:
pvp.md-5.net: pvp
ping_passthrough: false
priorities:
- lobby
bind_local_address: true
host: 0.0.0.0:25577
max_players: 1
tab_size: 60
force_default_server: false
ip_forward: false
remote_ping_timeout: 5000
prevent_proxy_connections: false
groups:
md_5:
- admin
connection_throttle: 4000
stats: 03e8e9a3-973e-4025-821a-67c7e7f28969
connection_throttle_limit: 3
log_pings: true
下面我只介绍和推荐我认为需要配置的选项
forge_support: true
代表是否启用对 Forge 的支持,默认值为true,即启用。启用后会为 Forge 客户端提供支持(尽管兼容性并不是很好,编者注)online_mode: true
正版验证,想开就开proxy_protocol: false
代表是否开启对 HAProxy 的支持,默认值为false,即关闭。开启后,BungeCord 将支持接收上游 HAProxy 籍由 ProxyProtocolV3 协议发送的玩家真实 IP,如不开启此项但在上游使用了 HAProxy 服务端,那么 BungeeCord 接收到的玩家 IP 地址将衡为 HAProxy 的所在地址。如果您不理解此项在说什么,请不要随意开启本项。
下面这个是默认服务器,意思就是进入服务器的首选服务器,玩家连接Waterfall时转接的第一个服务器
priorities:
- lobbyhost: 0.0.0.0:25577
绑定的地址,得要本地的地址,端口自己改,最好就25565,毕竟你拿来代理,有25565端口就最好了max_players: 1
最大玩家数,可以随便改force_default_server: false
这个必须开,不然玩家退出游戏再次进入还是在离线时的位置服务器,有登录服/大厅服的服务器必开ip_forward: false
这个也必须得开你子服的spigot.yml开启bungeecord: true时,必须开启这个选项,这是转发玩家ip的选项必开!log_pings: true
这个建议关掉,不然玩家每刷新一下服务器就会记录一次,后台就会刷屏
注意!
true
等于打开选项false
等于关闭选项!
额外的配置
对于 Waterfall,其在waterfall.yml上显示了很多有用的额外配置,您可以前往该文件内自行探索。
如何跨服
使用/server
服务器名指令即可传送到指定的服务器;
使用/send
玩家名 服务器名指令可以将指定在线玩家发送至指定的服务器;
请注意,不要忘记在权限管理系统中给予玩家bungeecord.command.server
权限,给予有权限的管理员bungeecord.command.send
权限以允许这些玩家使用上述指令。
推荐使用Luckperms
的bungee
插件来管理你的bungee
权限与权限组
其他 BungeeCord 指令请自行探索
为 Waterfall 安装插件
您可以前往 SpigotMC 为 Waterfall 下载插件,并将插件放入plugins文件夹,并重启服务器,即可完成插件安装
子服配置
如果您正在使用 Vanilla 服务端###
前往server.properties将server-ip项设置为 BungeeCord 所在的 IP 地址(如果 BungeeCord 和 下游服务端位于同一个网络环境,那么可以使用127.0.0.1),将network-compression-threshold项设置为-1(此项将交由 BungeeCord 管理)
如果您启用了 BungeeCord 的ip_forward,那么您需要安装 VanillaCore,并依照其介绍为 Vanila 服务端注入补丁,注入完成后,使用修改后的 Vanilla 服务端即可支持 ip_forward
如果您正在使用 CraftBukkit 服务端
前往server.properties将server-ip项设置为 BungeeCord 所在的 IP 地址(如果 BungeeCord 和 下游服务端位于同一个网络环境,那么可以使用127.0.0.1),将network-compression-threshold项设置为-1(此项将交由 BungeeCord 管理)
前往bukkit.yml,将connection-throttle设置为-1(以免 BungeeCord 连接到下游服务端时因尝试多次而连接失败)
您不能启用 BungeeCord 的ip_forward,因为 CraftBukkit 不支持 ip_forward
如果您正在使用 Spigot 及其分支服务端(包括但不限于 Purpur、Paper,Folia,Tuinity,Akarin,Thermos,Contigo,Uranium,CatServer,Mohist,Magma,Arclight)
前往server.properties将server-ip项设置为 BungeeCord 所在的 IP 地址(如果 BungeeCord 和 下游服务端位于同一个网络环境,那么可以使用127.0.0.1),然后将network-compression-threshold项设置为-1(此项将交由 BungeeCord 管理)
前往bukkit.yml,将connection-throttle设置为-1(以免 BungeeCord 连接到下游服务端时因尝试多次而连接失败)
如果您启用了 BungeeCord 的ip_forward,那么请前往spigot.yml,将settings.bungeecord设置为true。如果您找不到该项,那么请确认您的 Spigot 版本是否高于 1.7 #5版本,如您的 Spigot 版本低于该版本,则您不应启用ip_forward项
如果您正在使用 Sponge(SpongeVanilla,SpongeForge) 及其分支服务端
前往server.properties将server-ip项设置为 BungeeCord 所在的 IP 地址(如果 BungeeCord 和 下游服务端位于同一个网络环境,那么可以使用127.0.0.1),然后将network-compression-threshold项设置为-1(此项将交由 BungeeCord 管理)
如果您正在使用 SpongeForge,那么请开启 BungeeCord 中的forge_support以接收 Forge 数据包
如果您启用了 BungeeCord 的ip_forward,那么请前往config/sponge/global.conf,将modules.bungeecord和bungeecord.ip-forwarding设置为true。
如果您正在使用 VanillaFabric(或所谓carpet服务端):
前往server.properties将server-ip项设置为 BungeeCord 所在的 IP 地址(如果 BungeeCord 和 下游服务端位于同一个网络环境,那么可以使用127.0.0.1),然后将network-compression-threshold项设置为-1(此项将交由 BungeeCord 管理)
如果您启用了 BungeeCord 的ip_forward,那么您需要安装 FabricProxy 模组以支持ip_forward。
如果您完成了以上的所有配置,那么恭喜您,您的 Waterfall 已经部署完毕,可以进行跨服工作了。