SmartRejoin

一个允许你完全控制玩家加入你的网络时连接到何处的Velocity插件。

资源图片
# SmartRejoin for Velocity ![Java 版本](https://img.shields.io/badge/Java-21+-blue?style=for-the-badge&logo=openjdk) ![Velocity 版本](https://img.shields.io/badge/Velocity-3.4.0+-orange?style=for-the-badge) **SmartRejoin** 是一个现代化的重连插件替代方案,它基于高度可定制的规则引擎构建。 --- ## 特性 - 🧠 自动将玩家返回他们断开连接的服务器。 - ⚙️ 根据玩家的最后服务器定义自定义规则。例如,将来自 `bedwars_` 游戏的玩家发送到人口最多的 `bedwars_lobby`。 - ⚖️ 通过将他们连接到玩家人数**最多**或**最少**的服务器,或随机的服务器来在各个大厅之间分配玩家。 - 🛡️ 为新玩家或目标服务器离线时配置安全的回退服务器(或服务器池)。 - ⚡ 使用简单的命令即时重新加载配置。 --- ## 安装 1. 下载插件 2. 将插件放入 Velocity 代理的 `/plugins` 目录中。 3. 重启 Velocity 代理。将在 `/plugins/SmartRejoin/` 目录中生成一个 `config.yml` 文件。 --- ## 命令 & 权限 | 命令 | 别名 | 权限 | 描述 | | :--- | :--- | :--- | :--- | | `/smartrejoinreload` | `/srr` | `smartrejoin.command.reload` | 重新加载 `config.yml` 文件。 | --- ## 配置 (`config.yml`) 配置分为三个主要部分:**回退**、**默认规则**和**自定义规则**。 ### 快速开始 对于最简单的设置,只需安装插件即可。默认情况下 (`rule: SAME`),它将自动将玩家重连到他们离开的服务器。新玩家将由您的 `velocity.toml` 配置处理。要使用插件的回退机制处理新玩家,请将 `fallback.enabled: true` 设置为真。 ### 示例用例 - **床战争大厅**: 如果玩家离开 `bedwars_12`,请将他们发送到拥有最多玩家的 `bedwars_lobby`。 - **持久生存**: 如果玩家离开 `survival`,始终将他们返回 `survival`。 - **随机大厅**: 如果玩家在任何 `lobby_` 服务器中,请将他们随机发送到另一个 `lobby_` 服务器。 - **AFK 逃脱**: 如果玩家在 `afk` 服务器中,请将他们发送到拥有最少玩家的 `lobby`。 ### 完整配置示例 (与默认配置不同!) ```yml # --------------------------------------------------- # # SmartRejoin 配置 # # --------------------------------------------------- # # --- 通用设置 --- settings: # 如果为真,插件将在控制台中打印信息性消息。 # 关键错误始终会记录。 logging_enabled: true # --- 回退配置 --- # 用于新玩家或目标服务器来自规则离线时。 fallback: # 如果为 'enabled',将使用此插件的回退逻辑。 enabled: true # 'RANDOM': 连接到名称包含 'name' 值的随机服务器。 # 'SERVER': 连接到具有完全 'name' 的特定服务器。 type: RANDOM name: "lobby" # --- 默认规则 --- # 如果玩家的最后服务器不匹配下面的任何自定义规则,则应用此规则。 default: # 'SAME': 连接到完全相同的服务器。(最常见) # 'FALLBACK': 立即使用回退规则。 # 'SMART': 查找相关的休息室。有关详细信息,请参阅下面的注释。 rule: SAME # 'SMART' 规则的参数。 # 示例: ['MOST', '%last_seen%_lobby'] arguments: [] # --- 自定义规则 --- # 在这里定义特定的重定向规则。它们按顺序检查。 rules: stay_on_survival: last_seen: # 条件: 玩家的最后服务器名称必须完全匹配。 type: EQUALS name: "survival" where_to_join: # 操作: 连接到具有完全相同名称的服务器。 type: EQUALS name: "survival" bedwars_lobby_fallback: last_seen: # 条件: 玩家的最后服务器名称必须包含 "bedwars"。 type: CONTAINS name: "bedwars" where_to_join: # 操作: 查找所有包含 "bedwars_lobby" 的在线服务器并 # 连接到拥有最多玩家的服务器。 type: MOST name: "bedwars_lobby" ```