一个高度可自定义的 Minecraft 挖掘系统插件,基于 Spigot/Paper 1.12.2 开发。通过 NBT 标签识别自定义工具,实现可配置的方块掉落和命令执行。
- NBT 工具识别:通过物品 NBT 标签识别自定义挖掘工具,无需修改物品材质
- 可配置规则:每个工具可定义多套挖掘规则,针对不同方块触发不同效果
- 自定义掉落:支持原版物品和 MythicMobs 物品作为掉落,可配置数量范围和掉落概率
- 命令执行:挖掘时自动执行配置的命令,支持以 OP、PLAYER、CONSOLE 身份执行
- PlaceholderAPI 集成:命令中可使用 PAPI 变量,自动递归解析
- 世界控制:可按世界维度启用或禁用挖掘系统
- 概率机制:掉落和命令均支持独立的概率配置
| 插件 | 版本要求 | 说明 |
|---|---|---|
| Spigot/Paper | 1.12.2+ | 服务端核心 |
| MythicMobs | 4.11.0+ | 自定义物品掉落支持(可选) |
| NBTAPI | 2.15.0+ | NBT 标签读写 |
| PlaceholderAPI | 2.11.6+ | 命令中变量解析(可选) |
MythicMobs 和 PlaceholderAPI 为软依赖,如不需要对应功能可不安装。
- 下载最新版本的
CustomMining-x.x.x.jar - 将 jar 文件放入服务器的
plugins/目录 - 确保已安装所需依赖插件
- 重启服务器或使用
/plugman load CustomMining加载插件 - 编辑
plugins/CustomMining/Tools/目录下的配置文件来定义你的挖掘工具
| 命令 | 说明 |
|---|---|
/cm |
查看插件帮助信息 |
/cm reload |
重载所有配置文件 |
/cm get <path> |
获取手持物品指定 NBT 路径的值 |
/cm run <key> <alia> |
手动触发指定工具规则下的命令 |
/cm world <world> |
切换指定世界的挖掘系统启用/禁用状态 |
命令别名:/custom_mining 同样可用。
debug: true # 是否开启调试模式(OP 玩家可见调试信息)
nbt-key: 'cm' # NBT 标签的根路径,用于识别自定义工具disabled:
#- example_world
- world # 禁用挖掘系统的世界列表在 plugins/CustomMining/Tools/ 目录下创建 .yml 文件来定义工具。每个文件代表一个工具套件。
key: test # 工具标识,需与物品 NBT 标签中的值对应
rules:
代号1: # 规则别名(可自定义)
block: diamond_ore # 目标方块类型
drops: # 掉落物配置
- mm_drop1 5 26 # MythicMobs物品 数量5 概率26%
- mm_drop1 1 50 # MythicMobs物品 数量1 概率50%
- mm_drop2 2-10 40 # MythicMobs物品 数量2~10 概率40%
commands: # 命令配置
- cmd:{say 这是测试命令1} OP 100
- cmd:{say §e这是测试命令2;say §b这是测试命令3} OP 30
代号牢大:
block: grass # 针对草方块的规则<物品> <数量或范围> <概率>
- 物品:原版物品使用大写材质名(如
DIAMOND),MythicMobs 物品需加mm_前缀(如mm_SwordOfDarkness) - 数量:固定数量(如
5)或范围(如2-10) - 概率:百分比,0~100
cmd:{<命令内容>} <执行者> <概率>
- 命令内容:多条命令使用分号
;分隔 - 执行者:
OP(以 OP 身份)、PLAYER(以玩家身份)、CONSOLE(以控制台身份) - 概率:百分比,0~100
命令中可使用 PlaceholderAPI 变量,插件会自动解析。
要使工具被插件识别,需要给物品添加对应的 NBT 标签。例如,对于配置中 key: test 的工具,物品需要包含:
cm: test
可使用以下方式添加 NBT 标签:
/nbt add {cm:test}
或通过其他 NBT 编辑插件/MythicMobs 物品配置来添加。
- 玩家使用带有 NBT 标签的工具挖掘方块
- 插件检查工具是否具有对应的 NBT 标签
- 匹配工具配置中的规则,根据目标方块类型查找对应规则
- 按概率执行掉落生成和命令执行
- 若世界在禁用列表中,则跳过所有逻辑
src/main/java/org/lozin/custommining/
├── cache/ # 缓存管理(规则、掉落、命令缓存)
├── event/ # 事件监听(方块挖掘事件处理)
├── handler/ # 命令处理器、Tab补全、PAPI解析
├── item/ # 物品模型(Tool、Rule、Drop、Command、ItemChecker)
├── player/ # 玩家相关(预留)
├── worlds/ # 世界管理(启用/禁用控制)
└── CustomMining.java # 插件主类
mvn clean package生成的 jar 文件位于 target/CustomMining-1.0.0.jar。
本项目仅供学习和个人使用。