# DuraBlock - 自定义方块耐久插件
**DuraBlock** 是一个 Minecraft 插件,灵感来自 Metin2 中的 Metin Stones,允许服务器所有者创建具有可配置耐久度的自定义方块。玩家可以竞相击碎这些方块并获得奖励!
## 🌟 特性
* **自定义方块和耐久度:** 设置方块在破坏之前需要击打的次数。
* **全息显示:** 在方块上方显示自定义全息显示,在活动和非活动时均可。
* **权限支持:** 指定破坏每个方块所需的权限。
* **声音和广播事件:** 当方块被破坏时播放声音并广播消息。
* **奖励系统:** 当方块被破坏时给予具有可定制几率的奖励。
* **自动方块恢复:** 方块在可配置的间隔后自动重新出现。
* **自定义纹理支持:** 您可以从 ItemsAdder、Nexo 和 Oraxen 等插件添加自定义方块。
* **MiniMessage 支持:** DuraBlock 支持 MiniMessage 用于在配置和语言文件中进行丰富的文本格式设置。
## 📦 要求
* Java 17 或更高版本
* Minecraft 1.19 或更高版本
* PaperMC 或其分支 (例如,Purpur)
* [DecentHolograms 插件](https://modrinth.com/plugin/decentholograms)
## 🛠️ 安装
1. 下载 DuraBlock 的最新版本。
2. 将 `.jar` 文件放入服务器的 `plugins` 文件夹中。
3. 重新启动服务器以生成默认配置。
4. 编辑 `config.yml` 以自定义您的方块。
5. 重新加载插件 `/durablock reload` 以应用更改。
## 🌍 语言支持
* 该插件默认支持两种语言:
* **en_us** (英语)
* **tr_tr** (土耳其语)
* 您可以通过在 `languages` 目录中创建 `lang.yml` 文件来创建您自己的语言文件。
## 📝 默认配置
点击查看 config.yml
```yaml
language: en_us
prefix: "<#874CCC>DuraBlock » "
blocks:
test-block:
durability: 20
# 方块被破坏后恢复前的秒数
restore-interval: 30
# 全息显示在方块上方的垂直偏移量(以方块为单位)#
y-level: 2
# 破坏此方块所需的权限
permission: durablock.break.test-block
# 在全息显示中显示的文本行,当方块处于活动/启用状态时
# 请参阅 DecentHolograms 维基以获取格式和颜色选项:
# https://wiki.decentholograms.eu/general/format-and-colors/
enabled-hologram-lines:
- "<#6DE1D2>Test Block"
- "<#FF0000>Durability: {durability}#00FF00>"
# 在全息显示中显示的文本行,当方块处于禁用状态时
disabled-hologram-lines:
- "Disabled for now."
- "Will be activated in: <#FFA725>{restore}"
- "Broken by: <#FFA725>{last_player}"
# 当方块耐久度高于 0 时执行的命令列表
rewards:
- command: "give {player} diamond 1"
chance: 0.1 # %10 几率
- command: "give {player} emerald 2"
chance: 0.3 # %30 几率
# 方块破坏时执行的操作
on-break:
sound:
enabled: true
# https://minecraft.wiki/w/Sounds.json/Java_Edition_values 用于声音列表
sound-type: "minecraft:entity.player.levelup"
# 声音是否应该对所有人播放或仅对破坏方块的玩家播放
play-to-everyone: true
broadcast:
enabled: true
# 当方块被破坏时向所有玩家广播的消息
message: "{player} broke the test-block"
# 方块破坏时执行的命令
commands:
- "give {player} diamond 16"
# 警告:调整这些值可能会影响服务器性能或导致意外行为。
# 仅当您了解潜在后果时才更改它们。
# 更新全息显示的时间间隔(以秒为单位)
hologram-update-interval: 1
# 检查方块是否需要启用的时间间隔(以秒为单位)
block-restore-interval: 1
```
## 🚀 使用
* 通过将它们添加到 `config.yml` 文件来创建自定义方块。
* 自定义方块耐久度、全息显示、声音和奖励。
* 使用权限控制谁可以破坏特定的方块。
## 📜 命令和权限
| 命令 | 描述 |
| -------------------------------- | --------------------------------------------------- |
| `/durablock reload` | 重新加载配置 |
| `/durablock add
` | 添加一种指定类型的新的自定义方块 |
| `/durablock list` | 列出所有配置的自定义方块 |
| `/durablock remove ` | 通过 ID 移除特定的自定义方块 |
| `/durablock restore ` | 通过 ID 手动恢复方块 |
| `/durablock info` | 显示关于插件的信息 |
| 权限 | 描述 |
| ------------------------------ | ---------------------------------------- |
| `durablock.commands.main` | 允许使用 /durablock 命令 |
| `durablock.notify.update` | 允许接收更新通知 |
## 💡 占位符
### 全息显示占位符
* `{last_player}` - 显示最后破坏方块的玩家姓名。
* `{restore}` - 显示方块恢复剩余时间(以秒为单位)。
* `{durability}` - 显示方块当前的耐久度。
### 命令占位符
* `{player}` - 代表破坏方块的玩家姓名。
## 💡 示例
要创建一个名为 "diamond-block" 的新方块,耐久度为 50,恢复时间为 20 秒,请将以下内容添加到您的 `config.yml` 中:
```yaml
blocks:
diamond-block:
durability: 50
restore-interval: 20
permission: durablock.break.diamond-block
enabled-hologram-lines:
- "Diamond Block - {durability} hits left"
disabled-hologram-lines:
- "Regenerating in: {restore} seconds"
rewards:
- command: "give {player} diamond 1"
chance: 0.1 # %10 几率
on-break:
sound:
enabled: true
sound-type: "minecraft:entity.player.levelup"
play-to-everyone: true
broadcast:
enabled: true
message: "{player} broke the diamond block and earned 16 diamonds!"
commands:
- "give {player} diamond 16"
```
## 💬 支持
如果您遇到任何问题或有功能建议,请随时在 GitHub 上打开问题或加入我的 [Discord 服务器](https://discord.gg/p3PbC4afzV)。
## 📝 许可证
此项目使用 MIT 许可证授权 - 请参阅 [LICENSE.md](https://raw.githubusercontent.com/hakanyurtoglu/DuraBlock/refs/heads/master/LICENSE) 文件以了解详细信息。
享受通过 DuraBlock 让您的服务器更加动态的乐趣!