# FamilyFriendly 插件
一个 Minecraft 插件,通过过滤不当词语、链接和垃圾信息,确保安全和适合所有年龄段的聊天体验,并提供完整的审核和警告系统。
## 特性
- 年龄验证系统(玩家首次加入时必须设置年龄)
- **未成年玩家受到保护:** 仅对未成年玩家的聊天进行过滤,并对他们使用被阻止的词语进行警告/静音/踢出/封禁。
- **成年人畅所欲言:** 成年人可以看到和发送未经过滤的聊天,但仍受垃圾信息和链接审核的约束。
- **私信保护:** 如果成年人向未成年玩家发送包含被阻止词语的私信,则消息将为未成年接收者过滤,并对成年人进行警告/升级。
- **静音和阴影静音是分开的:** 如果玩家被静音,则他们无法聊天。如果阴影静音,则他们的消息仅对他们自己可见。
- 基于年龄的聊天过滤(被阻止的词语、链接和服务器 IP)
- 可配置的被阻止的词语列表
- 基于权限的链接绕过
- 私信过滤(与公共聊天相同的过滤)
- 首次加入时的自动年龄提示和移动锁定
- 可配置的替换字符和警告消息
- **垃圾信息保护** 并采用单独的升级 (警告 → 静音 → 踢出)
- **静音、取消静音和定时静音命令** (带有简短的别名)
- **持久的警告系统** (常规警告和垃圾信息警告跨重启保存)
- **升级系统**: 对于严重违规行为(仅限未成年人,除非是向未成年人发送私信)进行警告 → 静音 → 踢出 → 封禁。
- **单独的垃圾信息升级**
- **管理员命令用于重置警告和垃圾信息警告**
- **查看任何玩家的警告**
- 增强的日志系统
## 要求
- Minecraft Spigot/Paper 1.21.X
## 安装
1. 下载插件的最新版本 jar 文件
2. 将 jar 文件放在服务器的 `plugins` 文件夹中
3. 重启你的服务器
## 配置文件
- **config.yml**: 所有设置、阈值、持续时间和权限
- **blockedwords.yml**: 被阻止的词语列表
- **messages.yml**: 所有面向用户的消息 (可定制)
- **players.yml**: 存储玩家年龄、警告和垃圾信息警告
## 主要命令
- `/age ` — 设置或更新你的年龄
- `/mute ` 或 `/ffmute ` — 临时静音一个玩家
- `/unmute ` 或 `/ffunmute ` — 提前取消一个玩家的静音
- `/resetwarnings ` 或 `/ffresetwarnings ` — 重置一个玩家的常规警告计数
- `/resetspamwarnings ` 或 `/ffresetspamwarnings ` — 重置一个玩家的垃圾信息警告计数
- `/familyfriendly reload` 或 `/ff reload` — 重新加载插件配置
- `/familyfriendly viewwarn ` 或 `/ff viewwarn ` — 查看一个玩家的常规和垃圾信息警告
> **提示:** 所有审核命令都有简短的别名(例如,`/mute`、`/unmute`、`/resetwarnings`、`/resetspamwarnings` 及其 `/ff...` 版本),以便快速访问。
## 工作原理
- **首次加入**: 玩家必须在聊天或移动之前设置他们的年龄。
- **聊天过滤**: 未成年玩家的消息将针对被阻止的词语和链接进行过滤。 成年人可以看到和发送未经过滤的聊天,但仍受垃圾信息和链接审核的约束。
- **私信保护**: 如果成年人向未成年玩家发送包含被阻止词语的私信,则消息将为未成年接收者过滤,并对成年人进行警告/升级。
- **静音和阴影静音**:
- 如果玩家被静音,则他们无法聊天,并看到一个静音消息。
- 如果玩家被阴影静音,则他们的消息仅对他们自己可见(他们不会收到通知)。
- 这两种效果永远不会重叠或冲突;静音始终优先。
- **垃圾信息保护**: 重复的消息触发单独的警告/静音/踢出系统(从不因垃圾信息而导致封禁)。
- **升级**: 常规违规行为(诅咒、链接)从警告升级到静音、踢出,最后封禁(所有配置均可配置,仅限未成年人,除非是向未成年人发送私信)。
- **警告**: 所有警告都保存并跨重启保持持久。管理员可以重置或查看任何玩家的警告。
## 权限
所有权限均通过 LuckPerms(或您选择的权限插件)进行管理。按需分配:
- `familyfriendly.age`: 允许玩家设置他们的年龄
- `familyfriendly.reload`: 允许重新加载插件配置
- `familyfriendly.link`: 允许玩家分享链接和服务器 IP
- `familyfriendly.op`: 绕过所有 FamilyFriendly 限制
- `familyfriendly.mute`: 允许版主静音玩家
- `familyfriendly.unmute`: 允许取消静音玩家
- `familyfriendly.resetwarnings`: 允许重置常规警告
- `familyfriendly.resetspamwarnings`: 允许重置垃圾信息警告
- `familyfriendly.viewwarns`: 允许查看警告计数
## LuckPerms 用法示例
```
lp user permission set familyfriendly.mute true
lp group staff permission set familyfriendly.viewwarns true
```
## 故障排除
- 如果玩家无法设置他们的年龄:确保插件在插件文件夹中有写入权限
- 如果聊天过滤不工作:检查 config.yml 和 blockedwords.yml
- 如果私信没有被过滤:检查玩家是否设置了他们的年龄
- 如果配置更改未生效:使用 `/familyfriendly reload` 重新加载设置
## 日志
- 所有聊天和私信都记录到服务器控制台
- 被阻止和过滤的消息将记录带有警告
## 许可
保留所有权利
---