- 版权类型
- 原创
- 插件中文名称
- OP救我
- 插件英文名称
- OpSOS
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
[MD]
# 🆘 OpSOS - Minecraft SOS 求救插件
<p align="center">
<strong>一款现代化的 Minecraft 服务端求救插件</strong><br>
<em>让玩家在紧急情况下快速向管理员发送求救信号,支持一键传送和有偿保护</em>
</p>
---
## ✨ 核心功能
### 🚨 一键求救
- 玩家使用 `/sos` 命令即可向所有在线管理员发送求救信号
- 自动包含精确坐标、游戏模式和所在世界信息
- **智能冷却机制**:默认30秒间隔(可配置),防止滥用
### 💬 聊天检测
- **自动识别求救关键词**:当玩家在聊天中输入"救我"、"sos"、"救命"、"help"、"帮忙"等词汇时
- 系统会自动提示并引导玩家点击求助按钮
- 无需记忆命令,自然语言触发
### 🔘 一键传送(管理员)
管理员收到求救消息后可直接操作:
| 按钮 | 功能 | 说明 |
|------|------|------|
| **[点击传送]** | 传送到求救玩家位置 | 点击时实时获取最新位置 |
| **[传送ta到此处]** | 将求救玩家传送到你身边 | 快速救援或处理问题 |
### 🛡️ 有偿抗性保护(可选功能)
求救后可购买临时保护效果:
- **效果**:抗性提升 V(5级)
- **持续时间**:默认30秒(可配置)
- **价格**:默认100元(可配置)
- **经济支持**:兼容 Vault 经济系统(EssentialsX、CMI、GemsEconomy 等)
### 🎨 现代化界面
- **富文本消息**:支持渐变色、粗体、斜体等现代格式
- **悬停提示**:鼠标悬停在按钮上显示操作说明
- **点击交互**:所有操作均可通过点击完成,无需手动输入命令
---
## 📋 系统要求
| 项目 | 要求 |
|------|------|
| **服务端** | Paper (推荐) / Spigot / 及其衍生版本 |
| **Minecraft 版本** | 1.13+ |
| **Java 版本** | 17 或更高 |
| **可选依赖** | Vault + 经济插件(用于有偿抗性功能) |
---
## 🚀 安装指南
### 方法一:直接安装(推荐)
1. 从 [Gitee Releases](https://gitee.com/MVPS680/opsos/releases) 下载 `opsos-3.0.jar`
2. 将 JAR 文件放入服务器的 `plugins` 目录
3. 重启服务器
4. (可选)安装 [Vault](https://dev.bukkit.org/projects/vault) 和经济插件以启用有偿功能
### 方法二:源码构建
```bash
# 克隆仓库
git clone https://gitee.com/MVPS680/opsos.git
cd opsos
# 编译项目
./gradlew build
# 找到生成的 JAR 文件
ls build/libs/
```
---
## 📖 使用手册
### 👤 玩家操作
#### 发送求救信号
```bash
/sos
```
**执行后会发生什么?**
1. ✅ 向所有在线管理员发送你的位置信息
2. ✅ 你会收到确认消息:"✓ 求救信号已发送给在线管理员!"
3. ✅ 如果启用了经济功能,你会看到购买抗性提升的选项
4. ⏰ 进入30秒冷却期(期间无法再次发送)
#### 使用聊天求救
在聊天框中输入包含以下关键词的消息:
| 触发词 | 示例消息 |
|--------|---------|
| 救我 | "有人能救我吗" |
| sos | "sos 我卡住了" |
| 救命 | "救命啊!掉岩浆里了" |
| help | "help!我被困住了" |
| 帮忙 | "能帮忙吗?我卡bug了" |
**系统响应**:你会看到一条提示消息,点击 **[点击向OP求助]** 即可发送正式求救。
#### 购买抗性保护
如果服务器启用了经济功能,求救后会显示:
```
═══════════════════════════
需要临时保护吗?
购买 抗性提升 V 效果,持续 30秒
价格: 100.0 元
[确认购买] [暂不需要]
═══════════════════════════
```
点击 **[确认购买]** 或输入 `/sos buy_resistance` 即可购买。
---
### 👔 管理员操作
#### 接收求救消息
当玩家发送求救时,管理员会收到类似以下格式的消息:
```
⚠ 紧急求救信号
来自玩家: Steve
位置: 123.4, 64.0, -456.7
世界: world
模式: 生存
[点击传送] [传送ta到此处]
```
**操作说明:**
| 操作 | 步骤 | 效果 |
|------|------|------|
| 前往救援 | 鼠标悬停 → 点击 **[点击传送]** | 立即传送到玩家当前位置(实时获取) |
| 召唤玩家 | 鼠标悬停 → 点击 **[传送ta到此处]** | 将玩家传送到你身边 |
> 💡 **重要提示**:传送按钮会在点击时获取玩家的**最新位置**,确保准确性!
#### 管理命令
##### 显示帮助
```bash
/opsos
```
输出所有可用命令和当前经济系统状态。
##### 重载配置
```bash
/opsos reload
```
热重载配置文件,无需重启服务器。
- 权限要求:`opsos.admin`
- 成功提示:`✓ SOS插件配置已成功重载!`
##### 手动传送
```bash
# 传送到指定玩家
/opsos tp_here <玩家名>
# 将指定玩家传送到你身边
/opsos tp_player <玩家名>
```
##### 检查更新
```bash
/opsos update
```
检查 Gitee 上是否有新版本可用。
---
## 🔐 权限节点
| 权限 | 说明 | 默认 |
|------|------|------|
| `opsos.use` | 发送求救信号 | ✅ 所有玩家 |
| `opsos.admin` | 使用管理命令 | 🔒 仅 OP |
| `opsos.bypass.cooldown` | 绕过冷却时间限制 | 🔒 仅 OP |
| `opsos.free.resistance` | 免费获取抗性提升效果 | 🔒 仅 OP |
### 权限配置示例
**LuckPerms:**
```bash
/lp group default permission set opsos.use true
/lp group admin permission set opsos.admin true
/lp group vip permission set opsos.bypass.cooldown true
```
**PermissionsEx (PEX):**
```yaml
groups:
default:
permissions:
- opsos.use
admin:
permissions:
- opsos.*
vip:
permissions:
- opsos.use
- opsos.bypass.cooldown
```
---
## ⚙️ 配置文件详解
### 文件位置
```
plugins/opsos/config.yml
```
### 完整配置示例
```yaml
# ============================================
# OpSOS 插件配置文件 (v3.0)
# ============================================
settings:
# ── 冷却时间设置 ──
cooldown: 30 # 单位:秒(设为 0 表示无冷却)
# ── 经济系统设置(可选)──
economy:
enabled: true # 是否启用有偿抗性功能
price: 100.0 # 抗性提升价格(游戏币)
duration: 30 # 效果持续时间(秒)
amplifier: 5 # 效果等级(V = 5级)
# ── 消息自定义 ──
# 管理员收到的求救通知
# 支持占位符: {player}, {x}, {y}, {z}, {world}, {gamemode}
# 支持 MiniMessage 格式标签: <color>, <bold>, <gradient:#颜色1:#颜色2>
admin-message: |
<gradient:#ff6b6b:#ee5a5a><bold>⚠ 紧急求救信号</bold></gradient>
<gray>来自玩家:</gray> <white>{player}</white>
<gray>位置:</gray> <yellow>{x}, {y}, {z}</yellow>
<gray>世界:</gray> <green>{world}</green>
<gray>模式:</gray> <aqua>{gamemode}</aqua>
# 玩家发送成功后的提示
player-success-message: "<green>✓ 求救信号已发送给在线管理员!</green>"
# 冷却中提示({cooldown} = 剩余秒数)
cooldown-message: "<red>⏳ 请等待 {cooldown} 秒后再次发送求救信号</red>"
# 聊天检测到的求救提示
detect-message: '<yellow>您似乎在求救... </yellow><click:run_command:/sos><hover:show_text:"<green>点击向OP求助</green>"><green><bold>[点击向OP求助]</bold></green></click>'
# ── 抗性提升购买相关 ──
# 购买询问消息({price} = 价格, {duration} = 持续时间)
resistance-offer-message: |
<gold>═══════════════════════════</gold>
<yellow>需要临时保护吗?</yellow>
<gray>购买 </gray><aqua><bold>抗性提升 V</bold></aqua><gray> 效果,持续 </gray><green>{duration}秒</green>
<gray>价格: </gray><gold><bold>{price}</bold></gold><gray> 元</gray>
<click:run_command:/sos buy_resistance><hover:show_text:"<green>花费 {price} 元购买</green>"><green><bold>[确认购买]</bold></green></click> <red><gray>[暂不需要]</gray></red>
<gold>═══════════════════════════</gold>
# 购买成功提示
resistance-success-message: "<green>✓ 已获得抗性提升 V 效果,持续 {duration} 秒!已扣除 {price} 元</green>"
# 余额不足提示
insufficient-funds-message: "<red>✗ 余额不足!你需要 {price} 元才能购买抗性提升效果</red>"
# ── 触发关键词 ──
trigger-keywords:
- "救我"
- "sos"
- "救命"
- "help"
- "帮忙"
# ── 管理员按钮文本 ──
teleport-to-player-text: '<click:run_command:/opsos tp_here {player}><hover:show_text:"<green>传送到该玩家位置</green>"><bold><aqua>[点击传送]</aqua></bold></click>'
teleport-player-here-text: '<click:run_command:/opsos tp_player {player}><hover:show_text:"<green>将该玩家传送到你身边</green>"><bold><gold>[传送ta到此处]</gold></bold></click>'
```
### 配置调整建议
#### 场景一:儿童友好服务器
```yaml
settings:
cooldown: 60 # 更长的冷却时间
economy:
enabled: false # 禁用付费功能
admin-message: |
<yellow><bold>🆘 有人需要帮助!</bold></yellow>
<white>{player}</white> <gray>正在等待...</gray>
detect-message: '<blue>看起来你需要帮助?</blue> <click:run_command:/sos><hover:show_text:"<green>告诉管理员</green>"><bold>[点击这里]</bold></click>'
```
#### 场景二:硬核生存服务器
```yaml
settings:
cooldown: 10 # 短冷却时间,紧急情况多
economy:
enabled: true
price: 500.0 # 高价,作为惩罚机制
duration: 15 # 较短的保护时间
admin-message: |
<red><bold>⚠ 紧急警报 ⚠</bold></red>
<dark_red>{player}</dark_red> <red>位于危险区域!</red>
<red>坐标: </red><yellow>{x}, {y}, {z}</yellow>
```
#### 场景三:极简风格
```yaml
settings:
cooldown: 20
economy:
enabled: false
admin-message: "[SOS] {player} @ ({x}, {y}, {z})"
player-success-message: "<green>Sent!</green>"
detect-message: '<yellow>Need help? </yellow><click:run_command:/sos><bold>[Click to call OP]</bold></click>'
```
---
## 💰 经济系统集成
### 支持的经济插件
OpSOS 通过 Vault API 兼容以下经济插件:
| 插件 | 兼容性 | 备注 |
|------|--------|------|
| **EssentialsX** | ✅ 完全兼容 | 最常用的选择 |
| **CMI** | ✅ 完全兼容 | 功能丰富 |
| **GemsEconomy** | ✅ 完全兼容 | 轻量级 |
| **PlayerPoints** | ✅ 完全兼容 | 积分制 |
| **其他 Vault 兼容插件** | ✅ 应该兼容 | 只要实现 Vault Economy 接口 |
### 安装步骤
1. 安装 [Vault](https://dev.bukkit.org/projects/vault) 插件
2. 安装上述任一经济插件
3. 确保 Vault 在控制台输出 "Found economy provider: XXX"
4. 启动 OpSOS 插件
5. 查看 OpSOS 日志确认经济系统已启用
### 日志验证
**成功启用时:**
```
[SOS] ╔══════════════════════════════════════╗
[SOS] ║ ✓ 检测到经济系统! ║
[SOS] ║ 经济提供者: EssentialsX ║
[SOS] ║ 抗性提升价格: 100.0 元 ║
[SOS] ║ 效果持续时间: 30 秒 ║
[SOS] ╚══════════════════════════════════════╝
[SOS] ✓ 经济系统已启用 - 兼容插件: EssentialsX
```
**未检测到时:**
```
[SOS] ╔══════════════════════════════════════╗
[SOS] ║ 没有检测到 Vault 插件! ║
[SOS] ║ 已禁用有偿抗性提升功能 ║
[SOS] ╚══════════════════════════════════════╝
[SOS] ⚠ 经济系统未启用 - 有偿功能已禁用
```
> ⚠️ 即使没有经济插件,插件的**核心求救功能仍可正常使用**!
---
## 🔄 更新检查
### 自动更新检测
- 插件启动时**自动检查** Gitee 上的最新版本
- 检查过程**异步执行**,不影响服务器性能
- 结果输出到**控制台日志**
### 手动检查
```bash
/opsos update
```
### 版本号格式
遵循语义化版本规范:`主版本.次版本`(如 `3.0`、`3.1`、`4.0`)
### 下载地址
[Gitee Releases 页面](https://gitee.com/MVPS680/opsos/releases)
---
## ❓ 常见问题
### Q1: 玩家发送 /sos 后管理员没收到?
**排查清单:**
- ✅ 管理员是否为 OP(拥有 * 权限)?
- ✅ 管理员是否在线?
- ✅ 玩家是否有 `opsos.use` 权限?
- ✅ 查看控制台是否有错误日志?
### Q2: 点击传送按钮没有反应?
**可能原因:**
- 消息格式被修改导致标签损坏
- 服务器版本过旧不支持 MiniMessage
**解决方案:**
1. 删除 `config.yml` 并重载生成默认配置
2. 确认 Minecraft 版本 ≥ 1.13
3. 尝试使用 `/opsos tp_here <玩家名>` 手动传送
### Q3: 经济功能不生效?
**检查步骤:**
1. 是否安装了 Vault 插件?
2. 是否安装了经济插件(EssentialsX 等)?
3. `config.yml` 中 `economy.enabled` 是否为 `true`?
4. 查看启动日志中的经济系统状态
### Q4: 如何修改冷却时间?
编辑 `config.yml`:
```yaml
settings:
cooldown: 30 # 修改这个数字(单位:秒)
```
然后执行 `/opsos reload` 或重启服务器。
### Q5: 可以禁用某个触发词吗?
是的!编辑 `config.yml` 的 `trigger-keywords` 列表:
```yaml
trigger-keywords:
- "救我"
- "sos"
# 删除不想触发的词
```
### Q6: 中文显示乱码?
确保 `config.yml` 文件编码为 **UTF-8**:
- ✅ 推荐编辑器:VS Code、Notepad++、Sublime Text
- ❌ 避免使用 Windows 记事本(可能添加 BOM 头)
### Q7: 如何让某些玩家免费获取抗性效果?
授予权限:
```bash
/lp user <玩家名> permission set opsos.free.resistance true
```
---
## 📊 版本历史
### v3.0 (当前版本)
**主要更新:**
- ✨ 全新的现代化 UI(MiniMessage 富文本支持)
- 🔘 可点击的一键传送按钮(实时位置获取)
- 💬 智能聊天求救检测(关键词识别)
- ⏱️ 冷却时间系统(防滥用)
- 💰 有偿抗性提升功能(Vault 经济集成)
- 🔄 旧版配置自动转换工具
- 🛡️ 多层安全验证和错误处理
**优化改进:**
- 🎨 专业化的消息设计(移除重复发送)
- ⚡ 性能优化和内存管理增强
- 📝 完全可配置的所有文本和参数
- 🔧 弹性的经济系统检测和优雅降级
### v2.0-SNAPSHOT
- 基础求救功能
- 可配置的消息重复次数
- 自动更新检测
- 版本比较算法
### v1.0-SNAPSHOT
- 初始版本
- 基本 /sos 命令
- 管理员通知功能
---
## 🤝 反馈与支持
### 问题反馈
如果你发现了 Bug 或有功能建议,请访问:
- [Gitee Issues](https://gitee.com/MVPS680/opsos/issues)
提交问题时请包含:
- 问题描述和复现步骤
- 服务器版本(Paper/Spigot + 版本号)
- 插件版本号
- 相关截图或日志
### 功能建议
我们欢迎任何功能建议!请在 Issues 中标记为 "Feature Request"。
---
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
---
<div align="center">
**⭐ 如果这个插件对你有帮助,欢迎 Star 支持!⭐**
Made with ❤️ by [MVP](https://www.mvpclub.cc) |
[官网](https://www.mvpclub.cc) ·
[Gitee](https://gitee.com/MVPS680/opsos) ·
[问题反馈](https://gitee.com/MVPS680/opsos/issues)
</div>
[/MD]