BanTools

BanTools 是一个专为 Minecraft Velocity 服务器设计的先进禁令管理插件。它支持通过 UUID、IP 地址或用户名来禁令玩家,并提供动态配置重新加载和实时踢出在线玩家的功能。

资源图片
# BanTools - Velocity 封禁管理插件 ![Velocity](https://img.shields.io/badge/Velocity-3.x-blue) ![Java](https://img.shields.io/badge/Java-11-green) ![License](https://img.shields.io/badge/License-GPLv3-green.svg) **BanTools** 是一个专为 Minecraft Velocity 服务器设计的先进的封禁管理插件。它支持通过 UUID、IP 地址或用户名封禁玩家,并提供动态配置重新加载和在线玩家的实时踢出功能。 > **注意**: 此插件由 AI 开发,旨在帮助服务器管理员更有效地管理玩家封禁。 --- ## 功能 - **封禁功能**: - 支持通过 UUID、IP 地址或玩家名称进行封禁。 - 默认封禁时长为永久(如果未指定时长)。 - 支持指定封禁时长(例如 `7d` 表示 7 天,`2024/1/10-2025/01/10` 表示自定义日期范围)。 - 自动踢出在线封禁的玩家。 - **解封功能**: - 支持使用 `/bantools unban` 命令解封玩家。 - 解封不会删除封禁记录,而是将封禁状态标记为无效。 - **踢出功能**: - 支持使用 `/bantools kick` 命令立即踢出玩家。 - 可以指定自定义踢出原因(默认使用配置文件中配置的原因)。 - **自动解封机制**: - 如果指定了封禁时长,当时间结束时,封禁将自动过期。 - **多条件匹配**: - 在登录时,检查 UUID、IP 地址或玩家名称是否匹配任何封禁记录。 - 如果任何条件匹配,则会将玩家视为已封禁。 - **配置文件支持**: - 所有封禁记录都存储在 `config.conf` 文件中,支持手动编辑。 - 配置文件允许设置默认封禁和踢出原因。 - **动态配置重新加载**: - 支持通过 `/bantools reload` 命令动态重新加载配置文件,无需重启服务器。 - **实时同步**: - 所有封禁、解封和踢出操作都在所有下游服务器之间实时同步。 --- ## 安装 ### 1. 下载插件 从 [GitHub](https://github.com/NSrank/BanTools) 或其他分发渠道下载最新版本的 `BanTools.jar` 文件。 ### 2. 安装插件 将下载的 `BanTools.jar` 文件放入 Velocity 服务器的 `plugins/` 目录中。 ### 3. 启动服务器 启动 Velocity 服务器。插件将在 `plugins/BanTools/config.conf` 自动生成默认配置文件。 ## 配置文件(`config.conf`) ``` defaults { ban_reason = "违反服务器规则" kick_reason = "管理员强制踢出" } bans { "Player1": { name: "Player1" uuid: "069a79f4-44e9-4726-a5be-fca90e38aaf5" ip: "192.168.1.100" reason: "作弊行为" start_time: 1698765432 end_time: null # 永久封禁 state: true # 封禁状态(true:生效,false:解除) } } ``` - `defaults.ban_reason`: 默认封禁原因。 - `defaults.kick_reason`: 默认踢出原因。 - `bans`: 存储所有封禁记录,每个条目包含以下字段: - `name`: 玩家名称。 - `uuid`: 玩家 UUID。 - `ip`: 玩家 IP 地址。 - `reason`: 封禁原因。 - `start_time`: 封禁开始时间(Unix 时间戳)。 - `end_time`: 封禁结束时间(Unix 时间戳),永久封禁时设置为 `null`。 - `state`: 封禁状态(true 为生效,false 为解除)。 --- ## 使用方法 ### 命令 | 命令 | 权限节点 | 描述 | |-------------------------------------|-------------------------------|--------------------------------------| | `/bantools reload` | `bantools.command.reload` | 重新加载插件配置文件。 | | `/bantools ban ` | `bantools.command.ban` | 封禁指定的玩家。 | | `/bantools unban ` | `bantools.command.unban` | 解封指定的玩家。 | | `/bantools kick ` | `bantools.command.kick` | 踢出指定的玩家。 | ### 示例 1. 封禁名为 `Bianpao_xiaohai` 的玩家:`/bantools ban Bianpao_xiaohai`(默认封禁时长为永久;可以之后添加原因)。 2. 解封名为 `Steve` 的玩家:`/bantools unban Steve`。 3. 踢出名为 `Steve` 的玩家:`/bantools kick Steve`。 --- ### 支持与反馈 如果您遇到问题或有任何建议,请通过以下方式联系我们: - **GitHub Issues**: [提交问题](https://github.com/NSrank/BanTools/issues) --- ### 许可证与免责声明 - **开发通知**: 此插件由 AI 开发,旨在为 Minecraft Velocity 社区提供高效的封禁管理工具。 - **许可证**: 在 GPL v3.0 总条款下分发。您可以根据许可条款使用、修改和分发它。 - **免责声明**: 开发人员不对因使用此插件而产生的问题负责。 --- ### 鸣谢 特别感谢以下技术和工具: - [Velocity API](https://papermc.io/software/velocity) - [Typesafe Config](https://github.com/lightbend/config) - [Adventure API](https://github.com/KyoriPowered/adventure)