# SmartRouter
SmartRouter 是一个 Velocity 插件,它根据玩家上次连接的服务器来智能地路由玩家。它专为具有多个子服务器的网络而设计,例如 `hub`、`spawn` 和 `smp`。
## ✨ 功能
- 将尝试连接到备用服务器(例如 `spawn`)的玩家重定向到他们的 **之前服务器**。
- 跟踪玩家上次连接的服务器,并在重新连接时记住它。
- 具有 `config.yml` 的完全可配置性。
- 需要 **LuckPerms** 来存储和检索玩家元数据。
---
## 📦 需求
- **Velocity** 代理
- **LuckPerms** (必须在代理上安装并激活)
如果未找到 LuckPerms,插件将自动禁用自身。
---
## ⚙️ 配置
配置文件创建在 `plugins/smartrouter/config.yml`。
```yaml
file-version: 1
intercept-servers:
- spawn
remember-servers:
- spawn
- smp
```
### `intercept-servers`
一个服务器名称列表,当玩家连接时拦截它们。
如果玩家尝试加入这些服务器中的任何一个,SmartRouter 将检查其已知的最后服务器,如果需要,将其重定向。
**示例:**
如果玩家尝试加入 `spawn`,但他们上次知的服务器是 `smp`,他们将被重定向回 `smp`,而不是加入 `spawn`。
---
### `remember-servers`
一个服务器名称列表,要记住为玩家的最后服务器。
当玩家加入这些服务器中的任何一个时,SmartRouter 会将服务器名称保存到元数据(通过 LuckPerms)。
**提示:**
将任何玩家可能在重新连接后返回的服务器添加到此处。
---
### 💡 示例用例
假设您的网络有:
- 一个玩家始终首先连接的中心服务器。
- 一个玩家最初被传送到其中的生成区域。
- 一个玩家探索并返回的 SMP 世界。
借助 SmartRouter,玩家第一次被路由到 spawn。如果他们在 `smp` 中注销,下次连接时,SmartRouter 将跳过 spawn 并将他们发送回 `smp`。