# 自定义消息
轻松地为您的 Bukkit/Spigot 服务器带来私信功能!**自定义消息** 为您的玩家提供了一个干净、熟悉的 DM 系统,带有可点击的用户名、回复和忽略功能、工作人员的社交间谍、垃圾邮件控制以及完全可定制的格式。
---
## 🚀 关键特性
- **`/msg <玩家> <消息>`** – 使用松绿色的 ✉ 信封前缀发送私信
- **`/r <消息>`** – 在不重新输入收件人情况下快速回复您最近的 DM
- **`/ignore <玩家>`** / **`/unignore <玩家>`** – 阻止或取消阻止来自特定用户的 DM
- **`/socialspy`** (仅限工作人员) – 以 🛡 **SPY** 前缀实时查看 **所有** DM
- **垃圾邮件控制** – 可配置的消息间隔,以防止滥用
- **可点击的 JSON 聊天** – 点击 DM 中的“Me”、“玩家名”或“您”,以打开 `/msg` 提示框
- **完全可配置** – 在 `config.yml` 中更改每个前缀、颜色、用法消息、冷却时间等
---
## 📋 命令 & 权限
| 命令 | 权限 | 默认 | 描述 |
| -------------- | --------------------------- | ------- | ------------------------------------------------ |
| `/msg` | `custommessage.msg` | **✔️** | 发送私信 |
| `/r` | `custommessage.msg` | **✔️** | 回复您最近的私信 |
| `/ignore` | `custommessage.ignore` | **✔️** | 切换忽略玩家的 DM |
| `/unignore` | `custommessage.ignore` | **✔️** | 停止忽略玩家的 DM |
| `/socialspy` | `custommessage.socialspy` | **OP** | 切换社交间谍 (仅限工作人员) 以观看每个 DM |
> **工作人员须知:** 拥有 `custommessage.socialspy` (默认: OP) 的任何人都可以看到每个以 🛡 **SPY** 前缀标记的 DM。
---
## ⚙️ 配置 (`config.yml`)
```yaml
# config.yml
# ─── 聊天格式 ─────────────────────────────────────────────────────────
formats:
msg: '&7[Msg] &f%sender% &8→ &f%target% &8: &7%message%'
spy: '&7[Spy] &f%sender% &8→ &f%target% &8: &7%message%'
# ─── 垃圾邮件控制 ─────────────────────────────────────────────────────────
# 玩家之间允许 /msg 的秒数
cooldown-seconds: 2
# 当您达到冷却时间时的警告 (%seconds% 将被填充)
cooldown-message: '&c慢点!在再次发送消息前等待 %seconds%s。'
# ─── /r (回复) ───────────────────────────────────────────────────────────
reply:
usage: '&e用法: /r <消息>'
no-partner: '&c没有要回复的对象。'
offline: '&c您的最后一个聊天伙伴不在线。'
# ─── /ignore & /unignore ───────────────────────────────────────────────────
ignore:
usage: '&e用法: /ignore <玩家>'
on: '&c您现在忽略 &f%target%'
off: '&a您不再忽略 &f%target%'
invalid: '&c无效玩家。'
self: '&c您不能忽略自己。'
blocked: '&c那个玩家正在忽略您。'
unignore:
usage: '&e用法: /unignore <玩家>'
on: '&a您不再忽略 &f%target%'
off: '&e您之前没有忽略 &f%target%'
# ─── /socialspy ───────────────────────────────────────────────────────────
socialspy:
on: '&a社交间谍已开启'
off: '&c社交间谍已关闭'
no-permission: '&c您必须是 OP 才能切换社交间谍。'
# ─── 通用回退 ────────────────────────────────────────────────────
no-permission: '&c您没有权限这样做。'
only-players: '&c只有玩家才能运行该命令。'
usage-msg: '&e用法: /msg <玩家> <消息>'
```