VelocityVersionBouncer

这是一个为Velocity代理构建的插件,适用于版本3.4.0。它可在客户端连接时启用自动重定向,将用户路由到与其游戏版本匹配的服务器。

资源图片
# VelocityVersionBouncer **一个简单且完全自动化的方式,根据玩家的游戏版本连接到正确的服务器。** **VelocityVersionBouncer** 是一个插件,用于 [Velocity 代理](https://papermc.io/software/velocity)(在版本 3.4 上测试过),它会自动选择最兼容的后端服务器来连接玩家,基于他们的协议版本(Minecraft 游戏版本)。 --- ### 🔧 工作原理 - 每次客户端连接到你的代理时,插件会检查所有已注册的服务器并比较它们的协议版本(游戏版本)。 - 默认情况下,将选择第一个匹配的服务器(你可以在配置文件中更改)。 - 配置文件 `config.toml` 位于插件文件夹中 (`plugins/VelocityVersionBouncer/config.toml`)。 - 在配置文件中,你可以更改服务器检查的顺序或排除服务器进行检查。 - 配置文件本身对每个选项都有很好的解释(尽管我会在此 README 的末尾提供一个示例 config.toml)。 ### ❓ 你可能想知道的问题: - **当通过 `/server` 更改服务器时也会触发吗?** 不,版本检查仅在最初连接时触发(从多人游戏服务器列表)。 - **如果没有找到兼容的服务器会发生什么?** 客户端将被断开连接,并显示相应的提示/原因。 - **这适用于模组 Minecraft 服务器吗?** 如果你使用 Ambassador+ProxyCompatibleForge [(更多信息)](https://docs.papermc.io/velocity/server-compatibility) 等设置,此插件将根据玩家的协议版本(游戏版本)路由客户端,而不是他们安装的模组。_注意:此设置仅在 PaperMC 和 Forge 服务器上进行过测试。_ - **此插件会使用大量的 CPU 资源吗?** 完全不会。插件非常轻量级,并且在连接时仅对每个服务器执行一次 ping。即使在大规模网络中,性能影响也很小。 - **我可以设置回退服务器来接住被踢出的玩家吗? 是的,此插件包含一个回退功能,可以通过配置文件/开关进行配置。** ### 📦 安装 & 🛠️ 要求 1. 下载 `.jar` 文件 ([在此](https://github.com/Hallo5000/VelocityVersionBouncer/blob/master/build/libs/VelocityVersionBouncer-1.1.0-release.jar)) 或自行构建 (gradle 文件已包含)。 2. 将文件放入服务器的 `plugins/` 文件夹(仅限代理!)并重新启动服务器以生成配置文件。 3. 编辑完配置文件后,再次重新启动代理,一切应该能够正常工作。 _注意:如果你没有运行 `Java 21`(或更高版本)和 `Velocity 3.4.0` 或更高版本,此插件可能无法正常工作_ ## 示例配置: ```toml # 此配置用于确定服务器的检查顺序,以及可选地排除特定服务器。 # 'exclude-servers' 是要跳过版本比较的服务器名称的字符串数组。 # 示例:["server1", "server2"] # 注意:字符串外部的空格将被忽略。 exclude-servers = ["test_server", "privateServer"] # 'order-mode' 定义应如何排序服务器列表(不区分大小写)。 # 选项: # "DEFAULT" - 以字母顺序检查服务器 # "CUSTOM" - 使用在 'server-list' 中定义的顺序 order-mode = "CUSTOM" # 'server-list' 仅在 order-mode 设置为 "CUSTOM" 时使用。 # 最好在这里列出所有你的服务器并单独使用 'exclude-servers' 管理排除, # 但只包括特定服务器也是可能的。 server-list = ["lobby", "minigames", "test_server", "privateServer"] # 'first-match' 确定是否应使用第一个或最后一个匹配的服务器。 # 设置为 true 以使用找到的第一个匹配项,false 以使用最后一个。 first-match = true # 如果启用此选项,则每当客户端从服务器被踢出(无论是在登录、通过 /kick 或其他原因), # 他们将被自动重定向(弹回)到另一个服务器,而不是断开连接。 enable-fallback-bouncing = true # 如果设置为 true,则客户端被踢出的服务器将暂时排除在回退选项之外, # 防止在回退时将客户端发送回该服务器。 exclude-previous-server = false # 当 'explicit-fallback-server' 中存在有效的服务器名称时,插件将不再搜索新的服务器,而是仅尝试指定的服务器。 # 如果您想要禁用此选项,请将其留空(此选项在 enable-fallback-bouncing 设置为 false 时也会禁用)。 explicit-fallback-server = "" # 将在未来添加 [explicit-routing] 选项,该选项将不再自动搜索匹配的服务器,而是采用通过配置文件提供的静态路由映射 ```