Skip to content

LozinLilis/CustomMining

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CustomMining

一个高度可自定义的 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 为软依赖,如不需要对应功能可不安装。

安装

  1. 下载最新版本的 CustomMining-x.x.x.jar
  2. 将 jar 文件放入服务器的 plugins/ 目录
  3. 确保已安装所需依赖插件
  4. 重启服务器或使用 /plugman load CustomMining 加载插件
  5. 编辑 plugins/CustomMining/Tools/ 目录下的配置文件来定义你的挖掘工具

命令

命令 说明
/cm 查看插件帮助信息
/cm reload 重载所有配置文件
/cm get <path> 获取手持物品指定 NBT 路径的值
/cm run <key> <alia> 手动触发指定工具规则下的命令
/cm world <world> 切换指定世界的挖掘系统启用/禁用状态

命令别名:/custom_mining 同样可用。

配置

config.yml

debug: true          # 是否开启调试模式(OP 玩家可见调试信息)
nbt-key: 'cm'        # NBT 标签的根路径,用于识别自定义工具

worlds.yml

disabled:
  #- example_world
  - world             # 禁用挖掘系统的世界列表

Tools/*.yml(工具配置)

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 物品制作

要使工具被插件识别,需要给物品添加对应的 NBT 标签。例如,对于配置中 key: test 的工具,物品需要包含:

cm: test

可使用以下方式添加 NBT 标签:

/nbt add {cm:test}

或通过其他 NBT 编辑插件/MythicMobs 物品配置来添加。

工作流程

  1. 玩家使用带有 NBT 标签的工具挖掘方块
  2. 插件检查工具是否具有对应的 NBT 标签
  3. 匹配工具配置中的规则,根据目标方块类型查找对应规则
  4. 按概率执行掉落生成和命令执行
  5. 若世界在禁用列表中,则跳过所有逻辑

项目结构

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

许可

本项目仅供学习和个人使用。

About

🎯 一个基于 NBT 标签的高可定制 Minecraft 挖掘系统插件。支持自定义工具识别、多规则方块匹配、概率掉落与命令触发,集成 MythicMobs 和 PlaceholderAPI,配置热重载,适配 Spigot/Paper 1.12.2+。

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages