• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
Carpenter's axe 木匠斧

原创 开源 工具 世界管理 Carpenter's axe 木匠斧 2.0.0

请登录后获取
版权类型
原创
插件中文名称
木匠斧
插件英文名称
Carpenter's axe
原帖地址
https://github.com/QingXuan2000/Carpenter-s-axe
支持的核心(服务端)
  1. Paper
  2. Folia
  3. Purpur
  4. PufferFish
  5. 其他核心
语言支持
多语言
适配版本(Java)
  1. 26.x
[MD] # Carpenter's axe 木匠斧 手持木斧即可实现**选区填充 / 全填 / 清除**的 Paper 插件。左击选块、右击设点、右击空气切换模式、潜行右击确认执行,支持撤销、经验消耗、黑名单保护、粒子选区预览与中英文语言。 ## 环境要求 - Paper 26.2+(支持 Folia,`folia-supported: true`) - Java 21+(推荐 25/26) - 构建:JDK 26 + Gradle wrapper 9.5.1(已随项目提供) ## 安装 1. 将 `build/libs/CarpentersAxe-2.0.0.jar` 放入服务器的 `plugins/` 目录 2. 重启服务器 3. 首次启动会自动生成: - `plugins/CarpentersAxe/config.yml` —— 配置文件(含中文注释) - `plugins/CarpentersAxe/lang/zh_CN.yml`、`lang/en_US.yml` —— 可编辑的语言文件 - `plugins/CarpentersAxe/exp.json` —— 经验池欠费记录(自动管理,一般无需手动修改) ## 基本使用 手持**任意木斧**(无需改名)即可使用: | 操作 | 效果 | | --- | --- | | 左击方块 | 选择方块类型并设为位置 1(方块不会被破坏) | | 右击方块 | 设为位置 2,显示选区尺寸与方块数 | | 右击空气 | 切换模式:**填充 → 全填 → 清除** | | 潜行 + 右击(方块或空气) | 确认执行当前模式的操作 | | 蹲下 + 左击空气 | 撤销上一次操作 | | `/carpentersaxe cancel` | 取消选择 | 选择完成后,选区内会显示**末地烛粒子框**(沿方块角点绘制)。 ### 模式说明 | 模式 | 行为 | | --- | --- | | 填充 | 只在空位(空气/水/岩浆)放置方块,逐块消耗背包物品,单次上限 192 块 | | 全填 | 覆盖选区内所有方块(含已有方块),仍受黑名单限制,单次上限 192 块 | | 清除 | 清除选区内的方块,掉落物先入背包、满则掉脚边,黑名单方块不动,单次上限 1280 块 | ## 黑名单 `config.yml` 中的 `blacklist` 默认包含水、岩浆、基岩、传送门、命令方块、屏障、刷怪笼等方块: - **默认**:选区内存在黑名单方块时,操作被拒绝 - **跳过**(`/carpentersaxe bypass`,所有玩家可用):操作不动黑名单方块,只处理其他方块 - **强制**(`/carpentersaxe force`,仅 OP):完全无视黑名单,可操作黑名单方块 两者均为默认单次生效,追加 `toggle` 参数切换持续开关。 ## 经验消耗 `config.yml` 中 `exp` 段(默认开启): ```yaml exp: enabled: true # 是否开启 blocksPerExp: 10 # 每多少个方块计一次费 expAmount: 1 # 每次计费消耗几点经验 ``` - 按**比例**扣费:操作不足一个计费周期时零头累计,满 1 点后统一扣除(保留一位小数) - 经验不足时操作被拒绝 - 撤销操作会返还对应经验(含累计零头) - 未扣完的零头持久化到 `exp.json`,跨会话保留,只记录欠费玩家 ## 命令 主命令:`/carpentersaxe`(别名 `/caxe`) | 命令 | 说明 | 权限 | | --- | --- | --- | | `/carpentersaxe give [玩家]` | 获取一把木匠斧 | `carpentersaxe.give`(OP) | | `/carpentersaxe clear` | 清空当前选区 | `carpentersaxe.clear`(所有玩家) | | `/carpentersaxe cancel` | 取消当前选择 | `carpentersaxe.cancel`(所有玩家) | | `/carpentersaxe undo` | 撤销上一次填充/清除(最多 20 步) | `carpentersaxe.undo`(所有玩家) | | `/carpentersaxe bypass [toggle]` | 跳过黑名单,不动黑名单方块 | `carpentersaxe.bypass`(所有玩家) | | `/carpentersaxe force [toggle]` | 强制模式,可操作黑名单方块 | `carpentersaxe.force`(OP) | | `/carpentersaxe help` | 查看使用说明 | — | | `/carpentersaxe reload` | 重载配置与语言文件 | `carpentersaxe.reload`(OP) | ## 配置(config.yml) ```yaml enabled: true # 插件总开关 maxSelection: 1280 # 选区体积上限(长×宽×高) blacklist: [...] # 黑名单方块列表 exp: { ... } # 经验消耗设置 ``` 修改配置后执行 `/carpentersaxe reload` 生效。 ## 语言 - 语言文件位于 `plugins/CarpentersAxe/lang/`,可直接编辑 - 自动按玩家客户端语言选择(`zh*` → 中文,其他 → English),控制台默认英文 - 语言文件内置版本号,插件升级后自动覆盖旧版本,管理员自定义内容(版本一致时)不会被覆盖 ## 其他特性 - **撤销**:填充/清除前自动记录快照,最多保留 20 步;填充撤销返还物品,经验按比例返还 - **粒子预览**:选区成立后沿方块角点显示末地烛粒子框,模式切换不影响 - **物理更新**:清除方块后触发周围方块状态更新(水流、沙子下落、红石等) - **物品名**:提示中的方块名按玩家客户端语言显示 ## 构建 ```bat gradlew.bat build ``` 产物位于 `build/libs/CarpentersAxe-2.0.0.jar`。 ## 文件结构 ``` src/main/java/org/little100/carpentersaxe/ ├── CarpentersAxePlugin.java # 主类(消息发送、反馈管理) ├── ConfigManager.java # config.yml 配置 ├── LangManager.java # 语言文件加载与自动检测 ├── WandManager.java # 核心逻辑(选择/填充/清除/撤销/粒子/经验) ├── WandState.java # 每玩家状态 ├── command/AxeCommand.java # 命令 └── listener/AxeListener.java # 交互监听 ``` ## 更新日志 - **2.0.0**:新增全填模式、常显提示(后移除)、模式顺序调整(填充/全填/清除)、经验按比例扣费与持久化、物品名本地化、语言文件版本机制、图标 - **1.1.0**:插件更名为 CarpentersAxe,新增语言文件/撤销/黑名单三态/粒子预览 - **1.0.0**:初始版本(建筑棒) [/MD]
作者
QingXuanJun
价格
50.00金粒
下载
0
查看
25
首次发布
最后更新

评分

0.00 星 0 次评分
后退
顶部 底部