- 版权类型
- 原创
- 插件中文名称
- 模组漏洞修复合集
- 插件英文名称
- MultiModFixPlus
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- ProtocolLib
- 适配版本(Java)
- 1.12
[MD]
## 1. 简介
**MultiModFixPlus(多模组修复)** 面向 **Minecraft 1.12.2 模组服务器**,将多个常见「小修复插件」合并为 **单个 JAR**。运维只需维护一份 `config.yml`,即可开关发包封禁、物品修复、GUI 防护、AE/Mek 等 Mod 专项修复,告别插件堆叠与配置分散。
### 用途
- **整合包运维**:一次安装,覆盖复制、GUI Bug、权限滥用、爆炸破坏等高频问题
- **按需启用**:每个修复模块独立开关,排查冲突时可单独关闭
- **热重载**:`/multimodfix reload` 即时生效,无需重启服务端
- **可扩展封禁**:支持自定义 `ban-command` 与提示消息,对接现有封禁/公告插件
### 说明
本插件所整合的修复功能,**部分为作者自行编写**,**部分在参考、借鉴其他开源或市面插件源代码思路的基础上重写并统一接入**(如 Mek 储罐、回路检测等模块)。各模块均已纳入本插件的配置与生命周期管理,并非简单打包第三方 JAR。
目前**仅接受 Minecraft 1.12.2** 相关的 Bug 反馈与**模组修复建议**(例如某 Mod 方块/GUI/交互)。欢迎通过下方联系方式联系作者。
---
## 2. 功能特性 / 使用方法
### 管理命令
| 命令 | 权限 | 说明 |
|------|------|------|
| `/multimodfix reload` | `multimodfix.admin` | 重载 `config.yml` 并重启全部已启用模块 |
| `/multimodfix list` | `multimodfix.admin` | 查看模块列表及 ON/OFF 状态 |
| `/mmf`、`/mmfix` | 同上 | 命令别名 |
### 修复模块(共 14 项)
在 `fixes.<模块ID>.enabled` 中控制开关。
| 模块 ID | 类型 | 功能 |
|---------|------|------|
| `packet` | 安全 | 定时扫描含关键词的权限并执行封禁指令;非 OP 拦截 Custom Payload(MTRM、NBTEdit 等,需 ProtocolLib) |
| `item` | 物品 | 清除负数量物品;合并重复附魔;禁止 AE/扩展/秘术等元件堆叠 |
| `command` | 指令 | 非 OP 无法使用配置列表中的指令前缀(默认 Multiverse 全家桶) |
| `entity-explode` | 世界 | 实体爆炸不破坏方块 |
| `farm-protection` | 世界 | 禁止踩踏耕地 |
| `anti-loop` | 世界 | 禁止指定方块摆成「回路」,检测到时取消放置 |
| `no-open-gui` | GUI | 按标题禁止打开指定菜单 |
| `player-gui-bug` | GUI | GUI 独占、距离/移动检测、开 GUI 禁指令/传送/吃物品、区块卸载清理等 |
| `mod-aecraft` | Mod | 禁止手持物品打开 AE 终端 |
| `mod-ender-capacitor` | Mod | 电容库 GUI 禁止 Shift / 快捷栏交换 |
| `mod-mekanism-fluid-tank` | Mod | Mek 流体储罐 GUI 禁止 Shift 点击 |
| `mod-dragon-place-item` | Mod | 禁止放置指定方块类型名(如 DRACONICEVOLUTION_PLACEDITEM) |
| `healthy-bug` | 玩家 | 进服将血量设为配置值(默认 20) |
| `player-quit-spawn` | 玩家 | 退服传送到指定世界出生点 |
### 权限节点
| 权限 | 默认 | 说明 |
|------|------|------|
| `multimodfix.admin` | OP | 管理命令 |
| `multimodfixplus.antiloop.bypass` | OP | 绕过回路检测 |
| `multimodfix.mtrm` | OP | 已声明(发包拦截当前以 OP 判断为准) |
| `multimodfix.nbtedit` | OP | 已声明(发包拦截当前以 OP 判断为准) |
### 字符串匹配语法
用于 `no-open-gui`、`player-gui-bug` 等:
| 写法 | 含义 |
|------|------|
| 普通文本 | 标题完全相等 |
| `contains:关键词` | 标题包含关键词 |
| `regex:正则` | 正则匹配 |
### 封禁占位符(`ban-command`)
| 占位符 | 说明 |
|--------|------|
| `{player}` | 玩家名 |
| `{reason}` | 原因 |
| `{permission}` | 权限扫描命中节点 |
| `{channel}` | 发包频道名 |
同一玩家单次在线仅触发一次封禁流程,退出后重置。
---
## 3. 环境要求
### 理论环境
| 项目 | 要求 |
|------|------|
| 游戏版本 | **Minecraft 1.12.2** |
| 服务端 | Spigot / Paper / **CatServer** 等 Bukkit 系端 |
| Java | **Java 8(1.8+)** |
### 可选依赖
| 插件 | 说明 |
|------|------|
| **ProtocolLib** | 启用 `packet.custom-payload`;未安装时仅禁用该子功能 |
| Multiverse-Core | 与 `command` 模块配合,非必须 |
### 实际测试环境
| 项目 | 版本 / 说明 |
|------|-------------|
| 服务端 | **1.12.2 CatServer** |
| Java | **Java 8** |
> 插件基于 **1.12.2** API 编译,请使用 1.12.2 服务端运行,其他版本理论支持但未测试。
---
## 4. 安装方法
1. 确认服务端为 **1.12.2 CatServer(或兼容 Bukkit 端)**,Java 8 已安装。
2. (推荐)安装 **ProtocolLib** 到 `plugins` 目录。
3. 将 `MultiModFixPlus-1.0.0.jar` 放入 `plugins`。
4. 启动服务器,自动生成 `plugins/MultiModFixPlus/config.yml`。
5. 按整合包修改配置(Mod 材质名、回路方块、GUI 标题等)。
6. 执行 `/multimodfix reload` 或重启服务端。
```
plugins/
├── MultiModFixPlus/
│ └── config.yml
├── MultiModFixPlus-1.0.0.jar
└── ProtocolLib.jar # 可选
```
---
## 5. 配置文件
路径:`plugins/MultiModFixPlus/config.yml`
修改后执行 **`/multimodfix reload`**。
### 全局
```yaml
debug: false
pluginTitle: "§c特性修复 §7§l>>> §3"
ban-command:
- "bcc send all run ban {player} {reason}"
- "bc 玩家 {player} 因为 {reason} 被自动封禁"
```
### 模块总开关示例
```yaml
fixes:
packet:
enabled: true
anti-loop:
enabled: false # 需先配置 blocks 再开启
```
### 主要配置节速查
| 配置节 | 关键项 |
|--------|--------|
| `packet.permissions-ban` | `interval-ticks`、`permission-contains`、`exempt-op` |
| `packet.custom-payload` | `channels`、`reason` |
| `item` | `negative-amount` / `duplicate-enchant` / `no-stack.materials` |
| `command` | `blocked-keys`、`message` |
| `anti-loop` | `blocks`(`ID-data` 或 `材质名-data`)、`bypass-permission` |
| `no-open-gui` | `blocked-titles`、`message` |
| `player-gui-bug` | `distance`、`alone-block`、`trust-titles`、`close-on-*` |
| `mod-aecraft` | `blocks`、`inventory-titles` |
| `mod-ender-capacitor` | `inventory-titles` |
| `mod-mekanism-fluid-tank` | `title-suffix` |
| `mod-dragon-place-item` | `block-names`(方块 `Material.name()`,非 Bukkit 材质枚举名) |
| `healthy-bug` | `health` |
| `player-quit-spawn` | `world` |
完整默认值以 JAR 内生成的 `config.yml` 为准。
---
## 6. 常见问题
**Q:发包拦截没反应?**
A:检查是否安装 ProtocolLib;控制台若出现 `ProtocolLib not found` 表示仅发包子功能未启用。
**Q:重载后前缀没变?**
A:请用 `/multimodfix reload`,不要只 `/reload` 其它插件。
**Q:anti-loop 有 Unknown material 警告?**
A:将 `blocks` 中的占位项改为真实 Mod 方块,格式如 `168-0` 或 `MOD_BLOCK-0`。
**Q:list 显示 ON 但没效果?**
A:部分模块配置无效时会跳过注册(如 `blocked-titles` 为空),请看控制台 `[WARN]` 日志。
**Q:和原来的单功能插件能一起装吗?**
A:不建议,功能重复可能双重拦截,请关闭对应 `fixes.*.enabled` 或卸载旧插件。
**Q:退服传送出生点不生效?**
A:可能与登录/跨服插件覆盖位置有关,需按服内插件优先级调整。
---
## 7. 版本信息
| 项目 | 内容 |
|------|------|
| 当前版本 | **1.0.0** |
| 适配版本 | Minecraft **1.12.2** |
| 构建 | Maven + Bukkit API 1.12.2-R0.1-SNAPSHOT |
**v1.0.0**
- 首发:15 个修复模块、统一配置、管理命令与热重载
---
## 9. 联系作者
| 项目 | 联系方式 / 说明 |
|------|-----------------|
| 作者 QQ | 1011115423 |
| 交流群 | 1104439995 |
| 版本反馈 | 欢迎反馈 **1.12.2** 版本的 Bug,或提交**模组修复建议** |
| 插件定制 | 接受其他插件定制开发需求 |
---
*MultiModFixPlus — 少装插件,少踩漏洞,多省心运维。*
[/MD]