[](https://discord.gg/2UTkYj26B4)
[](https://jitpack.io/#max1mde/BeyondBorderUnlocked)
[](https://github.com/max1mde/BeyondBorderUnlocked)
打破或放置方块 & 伤害实体在默认世界边界之外,无需任何客户端侧修改!
## 特性
- 绕过世界边界限制,允许:
- 放置方块(仅通过左键点击方块)
- 破坏方块
- 战斗和实体互动
- 玩家穿过边界
- 方块超出边界的视觉方块轮廓系统(使用显示实体)
- 方块破坏动画和效果
- 具有暴击和基于盔甲和武器的伤害计算的逼真战斗机制
## 安装
1. 将插件 JAR 和 [packetevents.jar](https://www.spigotmc.org/resources/80279/) 放入您的服务器的 `plugins/` 文件夹
2. 重启/重新加载您的服务器
3. 配置 `plugins/BeyondBorderUnlocked/config.yml` 以满足您的需求
> [!WARNING]
> 边界外的这些操作并非游戏设计目的。
> 可能会发生意外错误,并且体验将与正常游戏不同。
> 在生产使用前进行彻底测试。
## 配置 (`config.yml`)
```yaml
building: false # 允许在边界外放置方块 (左键点击)
breaking: true # 允许在边界外破坏方块 (左键点击)
walkthrough: true # 允许穿过边界
hitting: true # 允许击中边界外的实体
damage:
enabled: true # 启用以下自定义边界伤害设置 (如果为 false,则该插件不会在您的世界中修改以下值)
buffer: 5.0 # 伤害开始前的距离
amount: 0.2 # 每秒伤害量
blockOutline:
enabled: true # 显示边界外的方块轮廓
size: 0.009 # 轮廓段的大小
block: black_stained_glass # 轮廓的方块类型
```
## 指令
- `/beyondborder reload` - 重新加载配置
- `/beyondborder set
` - 更改设置
可用设置:
- `building`, `breaking`, `walkthrough`, `blockOutline.enabled`, `hitting` (true/false)
- `damage.enabled`, `damage.buffer`, `blockOutline.size`, `damage.amount` (数字)
- `blockOutline.block` (文本)
**权限**:
`beyondborder.commands` - 访问指令 (默认: op)
## API 文档
要使用 API,请将 `depends: BeyondBorderUnlocked` 添加到您的 plugin.yml
并将此插件作为仅编译依赖项:
```groovy
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compileOnly("com.github.max1mde:BeyondBorderUnlocked:1.0.0")
}
```
### 访问 API
```java
BeyondBorderUnlocked plugin = BeyondBorderUnlocked.getInstance();
Config config = plugin.getPluginConfig();
```
### 事件
| 事件类 | 异步 | 可取消 |
|-------------|-------|-------------|
| `BlockBreakBorderEvent` | 否 | 是 |
| `BlockPlaceBorderEvent` | 否 | 是 |
| `AsyncEntityDamageBorderEvent` | 是 | 是 |
| `AsyncEntityInteractBorderEvent` | 是 | 是 |
**事件用法示例:**
```java
@EventHandler
public void onEntityDamage(AsyncEntityDamageBorderEvent event) {
if (event.getDamager() instanceof Player) {
event.setDamage(event.getDamage() * 1.5); // 例如增加 50% 的伤害
}
}
```
## 已知问题
- 方块只能使用鼠标左键放置
- 穿过世界边界会出错,由于需要玩家传送
- 破坏的方块有时会持续破坏而无需按住鼠标按钮,或者在按住鼠标左键时破坏进度会重置
- 方块选择轮廓框的大小在某些方块上不正确
- 方块破坏、伤害计算和其他交互的机制并不完全准确
## 工作原理?
默认情况下,Minecraft 客户端不会在边界外发送某些数据包:
- 无方块破坏/放置数据包
- 无方块破坏进度数据包
- 客户端未显示方块选择轮廓
本插件通过:
1. 监听手臂摆动动画数据包(始终发送)
2. 计算玩家正在观看的方块
3. 在服务器端模拟适当的操作:
- 带有动画和效果的方块破坏
- 带有声音效果的方块放置
方块选择轮廓使用:
- 12 个物品显示实体形成 3D 轮廓
- 自定义数据包生成和定位这些实体
- 仅在观看方块的玩家可见
因此,当右键点击边界外时,`building` 功能无法工作,因为客户端不会发送任何数据包。 当玩家左键点击时,唯一发送的数据包是手臂动画数据包。