# 无限水桶
用于现代 Paper 服务器的可定制 **无限水桶和熔岩桶**。以安全、可配置的方式为您的玩家提供无限的流体 — 使用 MiniMessage 创建精美的名称/lore、逐个桶的权限、可选的 Nether 限制以及智能行为,如水封支持。完全支持 Folia。

---
## ✨ 特性
* **用户友好**
* 右键点击放置水或熔岩
* 尽可能自动水封方块
* **完全可定制**
* 在 `config.yml` 中定义任意数量的无限水桶
* 自定义名称、lore、材质、权限和 Nether 规则
* **基于权限**
* 控制每个桶的访问权限 (`infb.use.water`、`infb.use.lava` 或您的自定义权限)
* **现代且安全**
* Paper API 1.21
* Java 17+
* Folia 支持
* 异步更新通知管理员
* **整合**
* 预备 Hook 用于 WorldGuard、GriefPrevention、Towny、Lands、PlotSquared、Residence
* 对于 SuperiorSkyblock2 具有明确的 build-privilege 检查
* **性能友好**
* 轻量级且经过优化,适用于繁忙的服务器
* **自定义品牌**
* MiniMessage 支持渐变色、颜色和 lore
* **开箱即用**
* 预配置了无限水桶和熔岩桶
---
## 📥 安装
1. 要求:
* Paper/Paper-fork 1.21+ (Folia 支持)
* Java 17+
2. 从 Modrinth 下载最新的 jar,并将其放置在服务器的 `plugins` 文件夹中
3. 启动服务器以生成默认配置、`config.yml` 和 `messages.yml`
---
## 📜 命令
* `/infinitebuckets` (别名: `/infb`, `/ib`)
* `help` — 显示帮助菜单
* `reload` — 重新加载 config、messages、buckets 和 hooks
* `give [amount]` — 给予无限水桶物品
示例:
* `/infb help`
* `/infb reload`
* `/infb give Steve water 1`
* `/infb give Alex lava 16`
---
## 🔒 权限
* `infb.admin` — 管理员权限 (`/infb reload`、`/infb give`、tab completion)
* `infb.use.water` — 使用无限水桶
* `infb.use.lava` — 使用无限熔岩桶
* `infb.use.` — 自定义桶使用其自己的权限
---
## ⚙️ 配置
无限水桶 "
lore:
- "• 永不缺少水 "
- "• 右键点击放置水 "
- "• 在大多数维度中工作 "
icon: "minecraft:water_bucket"
mode: "vanilla_like"
fluids: ["minecraft:water"]
capacity: 1
crafting:
enabled: false
permissions:
use: "buckets.use.water"
craft: ""
enabled: true
# 标准熔岩桶行为
lava_bucket:
id: "lava_bucket"
displayName: "无限熔岩桶 "
lore:
- "• 永不缺少熔岩 "
- "• 右键点击放置熔岩 "
- "⚠ 小心使用! "
icon: "minecraft:lava_bucket"
mode: "vanilla_like"
fluids: ["minecraft:lava"]
capacity: 1
crafting:
enabled: false
permissions:
use: "buckets.use.lava"
craft: ""
enabled: true
# 像海绵一样的桶,从区域内排水
empty_sponge_bucket:
id: "sponge_bucket"
displayName: "无限海绵桶 "
lore:
- "• 吸收 5x5x5 区域内的水 "
- "• 右键点击排水 "
- "• 也能移除水封! "
icon: "minecraft:bucket"
mode: "drain_area"
behavior:
radius: 2 # 5x5x5 立方体在用点周围
maxBlocksPerUse: 200
cooldown: 10 # tick
waterlogged: true # 从方块移除水封
fluids: ["minecraft:water"] # 只排水水
crafting:
enabled: false
permissions:
use: "buckets.use.sponge"
craft: ""
enabled: true
# =================================================================== #
# CUSTOM BUCKETS #
# =================================================================== #
#
# 在这里定义您自己的自定义桶类型。 每个桶必须具有唯一的 ID。
#
# 可用模式:
# - vanilla_like: 正常桶行为(从源中填充、放置流体)
# - drain_area: 像海绵一样的行为(在半径内排水)
#
# 对于 vanilla_like 桶,指定 fluids/fluidTags 以控制可以收集的内容
# 对于 drain_area 桶,使用 behavior 部分配置 drain 行为
#
customBuckets:
# - id: "milk_bucket"
# displayName: "无限牛奶桶 "
# lore:
# - "可以治愈你所有的问题。 "
# icon: "minecraft:milk_bucket"
# mode: "EFFECT"
# action: "CLEAR_EFFECTS"
# permissions:
# use: "buckets.use.milk"
# enabled: true
# =================================================================== #
# 示例自定义桶 #
# =================================================================== #
#
# 在这里有一些您可以创建的自定义桶示例。
# 要启用它们,请删除每一行前面的 #
#
# 示例 1:可以容纳任何流体的多流体桶
#customBuckets:
# - id: "custom:universal_bucket"
# displayName: "通用流体桶"
# icon: "custom:universal_bucket"
# mode: "vanilla_like"
# fluidTags: ["#minecraft:fluids"] # 接受任何流体
# capacity: 5 # 可以容纳 5 个单位
# permissions:
# use: "buckets.use.universal"
# craft: "buckets.craft.universal"
# crafting:
# enabled: true
# recipe: "universal_bucket_recipe"
# enabled: true
# 示例 2:一个超级海绵,可以排水大面积
# - id: "custom:super_sponge"
# displayName: "超级吸水海绵"
# icon: "custom:super_sponge"
# mode: "drain_area"
# behavior:
# radius: 4 # 9x9x9 立方体
# maxBlocksPerUse: 500
# cooldown: 20
# waterlogged: true # 不影响水封的方块
# fluidTags: ["#minecraft:water"] # 排水所有水型流体
# permissions:
# use: "buckets.use.supersponge"
# craft: "buckets.craft.supersponge"
# crafting:
# enabled: true
# recipe: "super_sponge_recipe"
# enabled: true
# 示例 3:专门用于熔岩的排水桶
# - id: "custom:lava_absorber"
# displayName: "熔岩吸收器"
# icon: "custom:lava_absorber"
# mode: "drain_area"
# behavior:
# radius: 3 # 7x7x7 立方体
# maxBlocksPerUse: 300
# cooldown: 40
# waterlogged: false # 不影响水封的方块
# fluids: ["minecraft:lava"] # 只排水熔岩
# permissions:
# use: "buckets.use.lavaabsorber"
# craft: ""
# enabled: true
# =================================================================== #
# 配置注释 #
# =================================================================== #
#
# 字段描述:
#
# id: 桶的唯一标识符 (必需)
# displayName: 显示给玩家的名称 (必需)
# icon: 物品图标/纹理标识符 (可选)
# mode: 桶行为类型 - “vanilla_like” 或 “drain_area” (必需)
# capacity: 桶可以容纳的流体单位数 (可选,默认:1)
# fluids:此桶可以处理的特定流体 ID 数组(可选)
# fluidTags: 此桶接受的流体标签数组(可选)
# enabled: 此桶是否可用(可选,默认:true)
#
# 对于 vanilla_like 桶:
# - 必须指定 fluids 或 fluidTags(或两者)
# - 容量决定了可以存储多少流体
#
# 对于 drain_area 桶:
# - 必须有 behavior 部分
# - radius: drain 区域的曼哈顿距离(最大 6 不带 unsafe 标志)
# - maxBlocksPerUse:使用过程中可以排水的方块数量的安全限制(不带 unsafe 标志最大 5000)
# - cooldown:每次使用之间的 tick 数量
# - waterlogged:是否从方块中移除水封
# - unsafe:设置为 true 以绕过安全限制(不建议)
#
# 权限:
# - use: 使用此桶类型的所需权限
# - craft: 制作此桶所需的权限(如果启用了制作)
#
# 制作:
# - enabled:是否可以制作此桶
# - recipe:制作系统的recipe标识符
#
支持 **MiniMessage** 格式 → [文档](https://docs.advntr.dev/minimessage/format.html)
---
## 🔗 整合
在可能的情况下,尊重构建规则。 初始化用于:
- WorldGuard
- GriefPrevention
- Towny
- Lands
- PlotSquared
- Residence
- SuperiorSkyblock2(实现了显式的 `BUILD` 权限检查)
---
---
## 🚀 为什么使用无限水桶?
* 省去玩家反复补充水桶的麻烦
* 通过细粒度的权限和 Nether 规则防止破坏
* 轻量级且性能友好 — 为现代 Paper/Folia 服务器设计
* 开箱即用,带有水和熔岩桶,并可轻松自定义更多选项
* 受到保护插件信任,从而保证服务器的安全