SpySimpleBan

SpySimpleBan是一个全面的Minecraft管理插件,为服务器管理员提供完整的惩罚管理工具。

资源图片
# SpySimpleBan 插件 SpySimpleBan 是一款全面的 Minecraft 模组插件,为服务器管理员提供完整的惩罚管理工具。 ![banner](https://cdn.modrinth.com/data/cached_images/e0bac08649e26b25ab2433bb4ff734f5ea37abbf_0.webp) ## 插件信息 - **名称:** SpySimpleBan - **版本:** 1.0.0 - **描述:** 带有 IP 和 UUID 封禁的简单封禁插件 - **API 版本:** 1.21 ## 可用命令 ### 封禁命令 #### `/ban <玩家> <原因>` - **描述:** 通过名称、IP 和 UUID 永久封禁一名玩家 - **权限:** `spy.admin` - **用法示例:** `/ban PlayerName 在出生区域破坏` - **功能:** - 同时按名称、IP 地址和 UUID 封禁 - 对在线和离线玩家都有效 - 对于在线玩家:立即踢出并显示封禁消息 - 对于离线玩家:创建离线封禁,在下次尝试加入时更新 IP/UUID - 向所有玩家广播封禁消息 - 永久封禁(无过期时间) #### `/tempban <玩家> <时间> <原因>` - **描述:** 通过名称、IP 和 UUID 临时封禁一名玩家 - **权限:** `spy.tempban` - **用法示例:** `/tempban PlayerName 1h 在聊天中垃圾信息` - **时间格式:** - `s` = 秒 (例如 `30s`) - `m` = 分钟 (例如 `15m`) - `h` = 小时 (例如 `2h`) - `d` = 天 (例如 `7d`) - 可以组合:`1d12h30m` 代表 1 天 12 小时 30 分钟 - **功能:** - 与永久封禁相同 IP/UUID 封禁 - 在指定时间后自动过期 - 在踢出消息中显示持续时间 - 自动清理删除过期封禁 #### `/unban <玩家>` - **描述:** 从玩家处移除封禁 - **权限:** `spy.unban` - **用法示例:** `/unban PlayerName` - **功能:** - 移除所有封禁数据(名称、IP、UUID) - 对永久封禁和临时封禁都有效 - 向所有玩家广播解封消息 - 如果玩家未被封禁,则返回错误 #### `/banlist` - **描述:** 显示当前所有活跃的封禁玩家 - **权限:** `spy.banlist` - **用法示例:** `/banlist` - **功能:** - 只显示未过期的封禁 - 显示封禁总数 - 对于每个封禁显示: - 玩家名称 - 封禁原因 - 谁封禁了他们 - 封禁日期和时间 - 封禁类型(永久/临时) - 对于临时封禁:到期日期和剩余时间 - 格式化颜色以方便阅读 ### 静音命令 #### `/mute <玩家> <原因>` - **描述:** 永久静音一名玩家 - **权限:** `spy.mute` - **用法示例:** `/mute PlayerName 使用不适当的语言` - **功能:** - 阻止玩家发送聊天消息 - 对在线和离线玩家都有效 - 对于在线玩家:立即通知他们静音 - 对于离线玩家:创建离线静音,在下次加入时更新 UUID - 向所有玩家广播静音消息 - 永久静音(无过期时间) #### `/unmute <玩家>` - **描述:** 从玩家处移除静音 - **权限:** `spy.mute` - **用法示例:** `/unmute PlayerName` - **功能:** - 移除所有静音数据 - 向所有玩家广播解除静音消息 - 如果玩家未被静音,则返回错误 - 玩家可以立即再次聊天 #### `/mutelist` - **描述:** 显示当前所有被静音的玩家 - **权限:** `spy.mutelist` - **用法示例:** `/mutelist` - **功能:** - 显示所有活跃的静音 - 显示静音总数 - 对于每个静音显示: - 玩家名称 - 静音原因 - 谁静音了他们 - 静音日期和时间 - 格式化颜色以方便阅读 #### `/tempmute <玩家> <时间> <原因>` - **描述:** 临时静音一名玩家 - **权限:** `spy.tempmute` - **用法示例:** `/tempmute PlayerName 30m 在聊天中垃圾信息` - **时间格式:** - `s` = 秒 (例如 `30s`) - `m` = 分钟 (例如 `15m`) - `h` = 小时 (例如 `2h`) - `d` = 天 (例如 `7d`) - 可以组合:`1h30m` 代表 1 小时 30 分钟 - **功能:** - 与永久静音相同的功能 - 在指定时间后自动过期 - 在静音消息中显示持续时间 - 每秒自动清理删除过期的静音 - 对在线和离线玩家都有效 - 对于在线玩家:立即通知他们持续时间 - 向所有玩家广播带有持续时间的静音消息 ### 警告命令 #### `/warn <玩家> <原因>` - **描述:** 向玩家发出警告 - **权限:** `spy.warn` - **用法示例:** `/warn PlayerName 违反服务器规则` - **功能:** - 在玩家的历史记录中记录警告 - 对在线和离线玩家都有效 - 对于在线玩家:显示带有总数格式化的警告消息 - 通知所有在线工作人员 - 警告累积(无自动删除) - 向被警告的玩家显示警告计数 #### `/unwarn <玩家>` - **描述:** 移除玩家的所有警告 - **权限:** `spy.unwarn` - **用法示例:** `/unwarn PlayerName` - **功能:** - 移除指定玩家的所有警告 - 显示移除了多少个警告 - 如果玩家在线,则通知目标玩家 - 工作人员专用通知(无公共广播) - 如果玩家没有警告,则返回错误 #### `/warnlist <玩家>` - **描述:** 显示特定玩家的所有警告 - **权限:** `spy.warnlist` - **用法示例:** `/warnlist PlayerName` - **功能:** - 显示指定玩家的所有警告 - 显示警告总数 - 对于每个警告显示: - 警告原因 - 谁发出的警告 - 警告日期和时间 - 对在线和离线玩家都有效 - 如果玩家没有警告,则返回消息 ## 权限系统 ### 主要权限 - `spy.admin` - 掌握权限(授予所有命令访问权限) - `spy.tempban` - 允许 `/tempban` 命令 - `spy.unban` - 允许 `/unban` 命令 - `spy.mute` - 允许 `/mute` 和 `/unmute` 命令 - `spy.tempmute` - 允许 `/tempmute` 命令 - `spy.warn` - 允许 `/warn` 命令 - `spy.banlist` - 允许 `/banlist` 命令 - `spy.unwarn` - 允许 `/unwarn` 命令 - `spy.warnlist` - 允许 `/warnlist` 命令 - `spy.mutelist` - 允许 `/mutelist` 命令 ### 权限详情 - 所有权限默认为 `op` 级别 - `spy.admin` 包括所有其他权限作为子权限 - `/ban` 命令直接需要 `spy.admin` 权限 - 工作人员需要适当的权限才能使用模组命令 ## 数据存储 ### 文件位置 - **封禁:** `plugins/SpySimpleBan/bans.json` - **静音:** `plugins/SpySimpleBan/mutes.json` - **警告:** `plugins/SpySimpleBan/warns.json` ### 数据功能 - JSON 格式,便于阅读和备份 - 所有更改时自动保存数据 - 线程安全操作 - 每秒自动清理过期封禁 - 当玩家加入时,对离线玩家丰富 UUID ## 特色功能 ### IP 和 UUID 封禁 - 封禁适用于玩家名称、IP 地址和 UUID - 防止通过同一 IP 的替身帐户逃避封禁 - UUID 封禁可防止更改名称绕过封禁 ### 离线玩家支持 - 所有命令对离线玩家有效 - 当玩家加入时,通过 IP/UUID 丰富数据 - 使用存储的玩家数据进行准确的目标 ### 自动过期 - 临时封禁自动过期 - 每秒清理过期的封禁 - 无需手动干预定时惩罚 ### 工作人员通知 - 警告命令通知所有在线工作人员 - 移除警告命令发送工作人员专用通知 - 广播可让工作人员了解模组操作 ### 聊天集成 - 静音的玩家无法发送聊天消息 - 聊天侦听器可防止静音的玩家的消息 - 实时静音检查在聊天事件期间 ### 错误处理 - 无效用处的清晰错误消息 - 带有关联用户友好消息的权限检查 - 所有命令参数的验证 - 离线玩家操作的优雅处理