[MD]
# BanExplosion
一个可以制止爆炸,或是让爆炸变得无害的插件。
~~yq精神续作了属于是~~
## 功能
- 精细化控制,可控制每个实体的爆炸行为
- 完全自由的配置,可随意增加删除
- 专注于功能实现,性能无需顾虑
## 安装
### 使用Lip安装
```bash
lip install github.com/TelluriumDev/BanExplosion
```
### 手动安装
下载最新版本的压缩包,并把里面的内容解压到`plugins`文件夹中。
## 配置
### 配置文件
在`./plugins/BanExplosion/config/config.json`中,你可以设置拦截爆炸的实体,以及爆炸参数。
默认不会对特定生物或方块释放特定配置,如需要可以复制粘贴下文的配置文件。
```jsonc
{
"version": 2, // 配置文件版本
"GlobalSetting": { // 全局设置,如果并未在下方的代码找到对应配置,则使用此配置
"AllowExplosion": false, // 是否允许爆炸
"AllowDestroy": false, // 是否允许破坏方块
"AllowFire": false, // 是否允许生成火
"MaxRadius": 3.4028234663852886e+38 // 爆炸最大半径
},
"ExplosionSetting": { // 自定义爆炸配置
"Overworld": { // 维度,你可以根据维度名来配置,原版的维度名有:Overworld, Nether, TheEnd
"DefaultSetting": { // 每个维度的默认配置
"AllowExplosion": true,
"AllowDestroy": false,
"AllowFire": false,
"MaxRadius": 3.4028234663852886e+38
},
"CustomSettings": { // 维度内的部分特殊设置,这些配置会覆盖所有默认配置
"minecraft:tnt": {
"AllowExplosion": true,
"AllowDestroy": true,
"AllowFire": false,
"MaxRadius": 3.4028234663852886e+38
}
}
}
}
}
```
配置生效顺序为:
1. 插件首先会寻找配置文件内是否配置了维度,如果没有则使用`GlobalSetting`。
2. 如果找到了维度,则优先在`CustomSettings`内寻找匹配的配置项并使用,如没有则使用维度的默认配置。
维度名字为运行时判断,如果有多维度需求仅添加维度名即可。
### 部分特化配置
本插件对部分生物和实体的爆炸做了特化判断:
- 闪电苦力怕的键名为`minecraft:lightning_creeper`,并且和普通苦力怕(`minecraft:creeper`)无任何配置继承关系
- 凋灵受击破坏周围方块的行为和凋灵本体均算在`minecraft:wither`内
- 重生锚的键名为`minecraft:respawn_anchor`,在主世界爆炸会使用
- 床的键名为`minecraft:bed`,在下界爆炸会使用
### 运行时重载配置
如果在服务器运行时更改了配置,您可以使用`ll reload BanExplosion`来快速重载插件。
## 开源
本插件遵循AGPL-V3协议开源,请严格遵守开源协议。
插件源码可在[这里](https://github.com/TelluriumDev/BanExplosion)找到。
## 鸣谢
感谢`LeviLamina`的API支持,使得此插件开发难度大大降低。
[/MD]