# 🎙️ PvAddonSorter - A PlasmoVoice Add-On for Minecraft Servers
**PvAddonSorter** 是一个 Minecraft 服务器插件和 **插件**,用于 **PlasmoVoice**,旨在根据玩家的 **语音聊天状态** 来管理玩家。无论您是 **举办** 一场 **特别活动**、**管理** 一个 **服务器**,还是 **组织** 游戏玩法,这个 **插件** 可以让您轻松 **过滤**、**踢出**、**传送**、**列出**、**广播消息** 或 **分配队伍** 给有或 **没有** 语音聊天的玩家。🚀
> 一些功能,例如 `VOICE` 模式,可能无法在 **高延迟** 服务器上完全 **稳定**。**需要** **PlasmoVoice** 插件!该插件已与 **PlasmoVoice** 版本 **2.1.4+** **测试**。
## 🌟 功能
- **灵活的玩家过滤**:根据他们是否 **安装了 PlasmoVoice** 来控制谁可以 **加入** 或 **留在** 您的 **队伍** 中。🎯
- **踢出模式**:选择 **三种模式** 来 **强制执行** 语音聊天规则:
- **NOBODY**: 无限制,允许所有人。😊
- **NO-VOICE**: 踢出 **没有** 语音聊天的 **玩家**。🚪
- **VOICE**: 踢出 **有** 语音聊天的 **玩家**。⚠️
- **传送**:**立即传送** 有或 **没有** 语音聊天的 **玩家** 到 **您的** 位置,以便 **分组**。🌍
- **玩家列表**:根据他们的 **语音** 聊天 **状态** 显示 **玩家** 列表。📋
- **广播**:向有或 **没有** 语音聊天的 **玩家** **发送** **定向** 消息。📢
- **队伍分配**:根据 **语音** 聊天状态分配 **Minecraft** 队伍。🛡️
- **可配置的消息**:自定义所有 **消息** 和 **设置** `config.yml`。📝
- **权限系统**:使用 `pvaddsonsorter` 权限来限制 **命令** 和 **绕过** 检查。🔒
- **制表符自动完成**:为 **管理员** 提供智能 **命令** 建议。💻
- **轻量级和健壮**:易于 **安装**、**使用**,并在任何 **服务器** 上 **表现出色**。⚡
> `VOICE` 模式 (踢出 **有** 语音聊天的玩家) 可能会 **在** 具有 **高** 延迟或 **频繁连接问题** 的 **服务器** 上 **不稳定**,因为玩家可能在 **稳定** 之前就显示为 **连接** 状态。**在使用** 滞后 **服务器** 时请 **谨慎**。
## ⚙️ 工作原理
**PvAddonSorter** 与 **PlasmoVoice** 集成以 **监控** 玩家 **语音** 聊天状态,在 **加入** 时。它 **使用** 一个 **延迟** 检查 (默认:3 秒,可配置) 以 **确保** 通过 **UDP** 准确检测 **PlasmoVoice**。根据配置的模式,它可以:
- **踢出** 不符合语音聊天 **标准** 的 **玩家**。
- **传送** 玩家到 **管理员** 的位置,用于 **活动** 或 **队伍** 分离。
- **列出** 有或 **没有** 语音聊天的 **玩家**。
- **广播** 消息给 **特定** 组。
- **分配** 玩家到 **Minecraft** 队伍。
- **绕过** 具有 **权限** 的 **玩家** 的检查。
> `VOICE` 模式 **对** **网络** 延迟 **敏感**。请在 `config.yml` 中 **调整** **check-time-in-seconds** 以在 **高延迟** 服务器上获得 **更好的** 可靠性。
## 📋 要求
- **Minecraft 服务器**: Spigot/Paper **1.20.4 或 1.21+**。
- **PlasmoVoice**: 版本 **2.1.4** 或 **更高** (**必需的依赖项**)。
## 🎮 用例
| 情景 | 命令 | 结果 |
|-------------------------------------|----------------------------------|------------------------------------------------------------------------|
| **需要** **语音** 聊天的 **活动** | `/sorter kick no-voice` | **踢出** **没有** **PlasmoVoice** 的 **玩家** 并 **防止** 加入。 |
| 排除 **语音** 聊天的 **活动** | `/sorter kick voice` | **踢出** **有** **PlasmoVoice** 的 **玩家** 并 **强制执行** 不 **使用** **语音** 聊天。 |
| **组织** 语音聊天用户 | `/sorter tp voice` | **传送** **有** **语音** 聊天的 **玩家** 到 **管理员** 的位置。 |
| **列出** **没有** **语音** 聊天的 **玩家** | `/sorter list no-voice` | **显示** 列表 **没有** **语音** 聊天的 **玩家**。 |
| 向 **语音** 聊天用户 **宣布** | `/sorter broadcast voice Hello!` | **发送** "Hello!" 给 **有** **语音** 聊天的 **玩家**。 |
| **分配** 玩家到 **队伍** | `/sorter team voice VoiceTeam` | **将** **有** **语音** 聊天的 **玩家** **分配** 给 `VoiceTeam` 队伍。 |
| **重置** 限制 | `/sorter kick nobody` | **禁用** 语音聊天检查,**允许** 所有人 **加入**。 |
## 📜 命令
**使用** **主** 命令 `/sorter` (或 **别名** `/pvsorter`, `/pvsort`) 来 **管理** 插件。以下是 **可用** 的子命令:
| 命令 | 描述 | 权限 |
|--------------------------------------------|-----------------------------------------------------------------------------|------------------------|
| `/sorter kick ` | **设置** 踢出模式并 **踢出** 不符合标准 **的** 玩家。 | `pvaddsonsorter.admin` |
| `/sorter tp ` | **传送** 有或 **没有** 语音聊天的 **玩家** 到 **您的** 位置。 | `pvaddsonsorter.admin` |
| `/sorter list ` | **列出** 有或 **没有** 语音聊天的 **玩家**。 | `pvaddsonsorter.admin` |
| `/sorter broadcast ` | 向有或 **没有** 语音聊天的 **玩家** **发送** 消息。 | `pvaddsonsorter.admin` |
| `/sorter team ` | 根据 **语音** 聊天状态 **分配** 玩家到 **一个** 队伍。 | `pvaddsonsorter.admin` |
| `/sorter reload` | **重新加载** **配置文件**。 | `pvaddsonsorter.admin` |
**使用示例**:
- `/sorter kick no-voice` – **踢出** **没有** **语音** 聊天的 **玩家** 并 **防止** 加入。
- `/sorter tp voice` – **传送** **有** **语音** 聊天的 **玩家** 到 **您** 的位置。
- `/sorter list no-voice` – **显示** **没有** **语音** 聊天的 **玩家**。
- `/sorter broadcast voice 加入我们的 Discord!` – 向 **语音** 聊天用户 **发送** "加入我们的 Discord!"
- `/sorter team no-voice NoVoiceTeam` – 将 **没有** **语音** 聊天的 **玩家** **分配** 给 `NoVoiceTeam`。
- `/sorter reload` – **重新加载** `config.yml`。
## ⚙️ 配置
插件在 `plugins/pv-addon-sorter/` 中生成 `config.yml` 文件。您 **可以** 自定义消息、**踢出** 原因和 **设置**。关键 **选项** 包括:
- `check-time-in-seconds`: 在 **检查** 语音聊天状态之前 **延迟** **(以秒为单位)** (默认:3)。
- 命令 (`kick`, `tp`, `list`, `broadcast`, `team`) 的 **消息**:自定义所有游戏内 **消息**。
- `NO-VOICE` 和 `VOICE` 模式的 **踢出** 原因。
# 🔐 权限
使用这些权限来控制谁可以管理或绕过插件:
| 权限 | 描述 |
|------------------------|-------------------------------------------------------------------------|
| `pvaddonsorter.*` | 授予所有插件权限(管理员 + 绕过)。 |
| `pvaddonsorter.admin` | 允许执行所有 `/sorter` 命令。 |
| `pvaddonsorter.bypass` | 使玩家免受插件的踢出。 |
# 🛠️ 安装
1. **下载** **最新** 的 `pv-addon-sorter.jar` 从 **项目** [版本](https://modrinth.com/project/pv-addon-sorter#download) 页面。
2. **将** `.jar` 文件放入服务器的 `plugins` 文件夹中。
3. **确保** **PlasmoVoice** 已 **安装** 在 `plugins` 文件夹中。
4. **启动** 或 **重新启动** 您的服务器以 **生成** `config.yml`。
5. **配置** `config.yml` 在 `plugins/pv-addon-sorter/` 以 **自定义** 消息和 **设置**。
6. **使用** `/sorter reload` 以在 **重新启动** **无需** **的情况下** **应用** 更改。
# 📝 许可
本项目采用 MIT 许可。详情请参阅 LICENSE。
# ⚠️ 注意事项与限制
* 一些功能 (例如 `VOICE` 模式) 可能无法在具有高延迟的服务器上完全稳定。
* `VOICE` 模式依赖于检测活动 UDP 连接,这可能需要几秒钟的时间,可能导致虚假阳性。
* **始终** 在受控环境中测试插件,然后再在实时活动中使用它。
# 📊 支持的版本
| Minecraft 版本 | 状态 |
|-------------------|------------------------------------|
| **1.20.4 1.21+** | ✅ 支持 |
| **旧版本** | ❌ 未测试 |
# 🐛 错误报告与建议
发现错误或想改进 **PvAddonSorter** 的想法吗?在我们的 GitHub 问题页面上打开一个问题或在 Discord 上给我发送消息 `oluni_official`!🗣️
# 💖 鸣谢
* 作者:Oluni_Official
* 专为:PlasmoVoice
* 灵感:让 Minecraft 事件更生动和有组织!
感谢您使用 **PvAddonSorter**!让我们让语音聊天管理变得轻松愉快。 🎉