# 通用矿脉矿机
[2008Choco's VeinMiner](https://github.com/2008Choco/VeinMiner) 的一个分支。
这个 Minecraft (Bukkit) 插件旨在为 CraftBukkit 和 Spigot 服务器重现流行的 Minecraft Forge 模组 VeinMiner,由 portablejim 创建。该项目使用 GPLv3 许可,并在 GitHub 上发布以符合此许可。你目前正在 VeinMiner (适用于 Bukkit) 的 GitHub 页面上。portablejim 的 VeinMiner (适用于 Forge) 仓库可以在[这里](https://github.com/portablejim/VeinMiner)找到。你欢迎分支此项目,并通过问题跟踪器提交拉取请求或请求功能/报告错误。
# 概述
Simple Vein Miner 引入了一种与原版友好的机制,允许玩家瞬间挖掘相邻的方块组,从而节省宝贵的时间。例如:矿石群、大树、广阔的作物田等等。每个工具可以拥有自己的可配置方块列表,从而实现无限的可能性。这对于监狱、派系和准原版服务器来说是一个极佳的福利,不会过于强大,但仍然为你的服务器捐赠者提供有益的回报。

## 主要功能:
- 高效的连续挖掘相似方块
- 强大的配置,用于自定义工具类别和方块列表
- 各种挖掘模式,用于挖掘立方体区域、隧道或楼梯
- 可选的经济支持
- 可选的客户端模组,用于自定义快捷键
- 开发者 API,用于自定义挖掘模式和行为
- 默认情况下,服务器所有者可以通过拖放安装,无需额外步骤。
- 原生反作弊和 PlaceholderAPI 支持
## 客户端伴侣模组 (目前与插件的 Folia 版本不兼容)
伴侣模组是一个可选的客户端模组,为玩家提供更丰富的用户体验,包括支持自定义快捷键、模式切换快捷键以及脉络挖掘的框架渲染。 可以在 Fabric 客户端上下载并安装。

# 命令:
- `/veinminer ...`
- `/veinminer reload`
- 重新加载 `config.yml` 和 `categories.yml` 并应用你在文件中所做的任何更改
- **权限:** `veinminer.command.reload`
- `/veinminer version`
- 查看有关 VeinMiner 的版本和开发者信息
- `/veinminer toggle [tool]`
- 启用或禁用脉络挖掘
- 如果提供,则切换特定工具
- **权限:** `veinminer.command.toggle`
- `/veinminer mode `
- 更改脉络挖掘激活的方式
- 要使用 `"client"`,必须在客户端安装 VeinMiner 伴侣模组
- **权限:** `veinminer.command.mode`
- `/veinminer pattern `
- 更改脉络挖掘搜索和破坏方块的方式
- 模式可以通过插件注册,但 VeinMiner 提供了:
- `default`
- `tunnel`
- `staircase_up`
- `staircase_down`
- **权限:** `veinminer.command.pattern`
- `/veinminer givetool [amount]`
- 给予你自己给定的类别的工具(适用于具有 NBT 的工具)
- **权限:** `veinminer.command.givetool`
- `/veinminer import`
- 用于 VeinMiner 2.0.0 之前的版本的工具,用于将旧版 JSON 数据导入新的 SQLite 格式
- **权限:** `veinminer.command.import`
- `/veinminer blocklist ...`
- 镜像 `/blocklist` 下方
- `/veinminer toollist ...`
- 镜像 `/toollist` 下方
- `/blocklist ...`
- `/blocklist add `
- 将可脉络挖掘的方块添加到给定的类别中
- 方块可以是简单的 ID,如 `minecraft:stone`,或者具有状态,如 `minecraft:chest[waterlogged=true]`
- **权限:** `veinminer.command.blocklist`
- `/blocklist remove `
- 从给定的类别中移除方块
- 方块可以是简单的 ID,如 `minecraft:stone`,或者具有状态,如 `minecraft:chest[waterlogged=true]`
- **权限:** `veinminer.command.blocklist`
- `/blocklist list`
- 列出所有以给定类别为脉络可挖掘的方块(包括方块状态)
- **权限:** `veinminer.command.blocklist`
- `/toollist ...`
- `/toollist add - `
- 将项目添加到给定类别的工具列表中
- **权限:** `veinminer.command.toollist`
- `/toollist
remove - `
- 从给定类别的工具列表中移除项目
- **权限:** `veinminer.command.toollist`
- `/toollist
list`
- 列出所有可用于给定类别的项目
- **权限:** `veinminer.command.toollist`
# 支持的反作弊
Universal Vein Miner 原生支持许多流行的反作弊插件,因此你的玩家不会因“快速破坏”而被标记(或适用于你选择的反作弊的等效标志)。 如果你使用的反作弊插件未在此处列出,那么使用脉络矿机并被错误标记为快速破坏方块的可能性很高。 如果您希望将另一种反作弊插件添加到此列表中,请通过讨论线程、Discord 或 GitHub 上的问题请求支持。
- AAC (高级反作弊) 5.x
- AntiAura
- FoxAddition (通过他们的插件)
- Grim 反作弊 2.3.59+
- LightAntiCheat
- Matrix 6.x+
- Negativity
- NoCheatPlus
- Spartan
- Themis
- Vulcan
- Vulcan 有一个配置选项来启用 API,默认情况下禁用。 enable-api 必须为 true
# 占位符 (PlaceholderAPI)
Universal Vein Miner 欣然支持 PlaceholderAPI,提供以下占位符:
- `"%veinminer_enabled%"`
VeinMiner 是否已切换为启用状态。
- `"%veinminer_enabled_%"`
特定类别是否已切换为启用状态。
- `"%veinminer_active%"`
VeinMiner 是否处于活动状态(例如,玩家按下了快捷键)。
- `"%veinminer_vein_mining%"`
如果玩家当前正在脉络挖掘,则为 `"true"`;否则为 `"false"`。
仅在短时间内为 `"true"`。
- `"%veinminer_vein_mineable%"`
如果玩家的目标方块可以与工具一起脉络挖掘,则为 `"true"`;否则为 `"false"`。
需要玩家。
- `"%veinminer_vein_mineable_%"`
如果玩家的目标方块可以用指定的类别脉络挖掘,则为 `"true"`;否则为 `"false"`。
需要玩家。
- `"%veinminer_using_client_mod%"`
如果玩家使用的是客户端模组,则为 `"true"`;否则为 `"false"`。
- `"%veinminer_pattern%"`
玩家所选脉络挖掘模式的关键。
- `"%veinminer_activation_strategy%"`
玩家所选激活方法的名称(“Sneak”、“Client”、“Always”等)。
- `"%veinminer_category%"`
提供玩家手中工具的类别名称。
需要玩家。
- `"%veinminer_cost%"`
提供脉络挖掘的成本。
- 如果指定了玩家,则提供玩家手中工具的成本(或全局配置成本,如果手中没有类别),考虑了 `"free economy"` 权限。
- 如果**未**指定玩家,则提供全局配置成本。
- `"%veinminer_cost_%"`
提供指定类别的脉络挖掘成本。
- 如果指定了玩家,则考虑了 `"free economy"` 权限。
- `"%veinminer_max_vein_size%"`
提供单个脉络挖掘中可挖掘的最大方块数量。
- 如果指定了玩家,则提供玩家手中工具的最大脉络大小(或全局配置的最大脉络大小,如果手中没有类别)。
- 如果**未**指定玩家,则提供全局配置的最大脉络大小。
- `"%veinminer_max_vein_size_%"`
提供指定类别的最大脉络大小。
# 消息协议
Universal Vein Miner 通过其[自定义有效负载包](https://wiki.vg/Protocol#Plugin_Message_.28clientbound.29)与 Minecraft 客户端进行通信。 虽然 VeinMiner 有自己的客户端模组,但其他客户端模组也可以监听这些通道并拦截消息。 此外,虽然 VeinMiner 提供 API 与客户端进行通信,但服务器也可以选择监听原始消息内容。