资源图标

转载 工具 CKI | CombatKeepInventory | 保护你的物品栏免受环境死亡影响 1.1.0

没有下载权限
版权类型
转载
插件中文名
CKI | CombatKeepInventory | 保护你的物品栏免受环境死亡影响
插件英文名
CombatKeepInventory
原帖地址
https://www.spigotmc.org/resources/cki-combatkeepinventory-protect-your-inventory-from-environmental-death.138316/
支持的核心 [服务端]
  1. Paper
语言支持
  1. 中文(简体)
适配Minecraft版本 [Java]
  1. 1.21
[MD]
# CombatKeepInventory(CKI)

CombatKeepInventory 是一款 Minecraft 服务端插件,可根据玩家的死亡原因控制物品栏是否掉落,并提供 Bukkit/Paper 与 Velocity 的专用支持。

插件具备战斗状态识别能力,可区分普通死亡与被其他玩家击杀的 PvP 死亡。你可以设置:玩家在非 PvP 状态下死亡时保留物品栏,而在被玩家击杀时正常掉落物品。

## 核心功能

- 战斗状态管理,并支持自定义战斗持续时间。
- 玩家互相造成伤害时自动进入战斗状态。
- 持续发生战斗交互时自动刷新战斗状态。
- 战斗结束后正确解除战斗状态。
- 支持在服务器需要时强制结束战斗状态。
- 检测 PvP 死亡,并根据战斗状态处理物品栏。
- 可配置的物品栏保留规则。
- 分别处理普通死亡与玩家击杀导致的死亡。
- 可选集成 WorldGuard,以实现基于区域的战斗规则。
- 可选集成 PvPManager。
- 支持战斗伤害归属判定。
- 自动识别 Bukkit/Paper 平台。
- 支持 Velocity 代理,可在整个服务器网络中追踪战斗状态。
- 在后端服务器与 Velocity 代理之间同步战斗状态。
- 代理端会话追踪,支持处理切换服务器及离开服务器集群的情况。
- 可配置代理端战斗惩罚机制。
- 提供公共 API,便于其他插件集成。

## Bukkit/Paper 模块

Bukkit 模块负责处理游戏服务器内的战斗与死亡逻辑,主要包括:

- 检测玩家之间造成的伤害。
- 创建并刷新战斗会话。
- 正常结束或强制结束战斗会话。
- 判断玩家死亡原因。
- 应用配置中的物品栏处理规则。
- 将战斗状态变更发送至 Velocity 代理。
- 集成受支持的领地保护与 PvP 战斗插件。
- 为其他插件提供 Bukkit 端 API。

Bukkit 实现面向现代 Paper/Bukkit 服务端设计,并将平台相关功能与核心模块分离。

## Velocity 模块

Velocity 模块负责代理层面的战斗状态管理。

它会接收后端服务器发送的战斗状态更新,并集中维护当前所有活跃的战斗会话。支持以下状态变更:

```text
START
REFRESH
END
FORCE_END
```

因此,即使玩家在战斗期间切换后端服务器,代理端仍能追踪该玩家是否处于战斗状态。

Velocity 模块还提供会话追踪与可配置的惩罚处理,可应对玩家在战斗期间离开服务器集群或切换服务器等情况。

## 核心 API

CombatKeepInventory 由平台无关的核心接口与各平台实现模块组成。

核心模块为 Bukkit 和 Velocity 模块提供公共契约,其他插件无需直接依赖特定平台的实现类,即可与 CombatKeepInventory 集成。

API 提供以下能力:

- 战斗状态查询。
- 平台信息查询。
- 平台功能支持情况查询。
- 战斗管理。
- 物品栏规则控制。
- 伤害归属判定。
- 代理会话管理。
- 服务器切换处理。
- 离开服务器集群处理。
- 插件消息通信。

在后端服务器中,战斗事件由战斗管理器与 Bukkit 战斗服务处理。随后,战斗状态变化会通过战斗状态桥接器发送至 Velocity。

在代理端,对应的监听器会接收这些状态消息,并更新代理战斗状态管理器。Velocity API 会将最终状态提供给其他代理端组件和插件使用。

## 配置

CombatKeepInventory 为 Bukkit 与 Velocity 分别提供独立配置。

### Bukkit 配置

Bukkit 配置用于控制游戏服务器内的行为,例如:

- 战斗持续时间。
- 物品栏处理方式。
- 战斗相关规则。
- 可选插件集成设置。
- 消息与通知。

### Velocity 配置

Velocity 配置用于控制代理端行为,例如:

- 代理端战斗状态追踪。
- 切换服务器时的处理规则。
- 离开服务器集群时的处理规则。
- 惩罚机制。
- 战斗状态同步。
- 代理端消息。

配置会由对应的平台实现模块实际加载和使用,而非仅作为静态配置文件存在。

## 兼容性

CombatKeepInventory 采用模块化设计,支持:

- Bukkit/Paper 后端服务器。
- Velocity 代理。
- Java 21 运行环境。
- 现代 Minecraft 服务端环境。
- 可选的 WorldGuard 集成。
- 可选的 PvPManager 集成。

具体支持的 Minecraft 版本范围取决于各个发行版本所使用的 API 与依赖项。

## 面向服务器网络设计

本插件尤其适合使用 Velocity 代理、并部署多个后端服务器的 Minecraft 服务器网络。

CombatKeepInventory 可在代理层保留战斗状态信息,而不是将其限制在单个后端服务器中。这样,服务器管理员便能在多服务器环境下统一处理战斗逃跑、战斗中切服等行为。

## API 与扩展性

CombatKeepInventory 提供面向其他插件的 API 接口。

外部插件可以通过 API:

- 查询平台信息。
- 检查当前支持的功能。
- 获取玩家战斗状态。
- 将自身系统与 CombatKeepInventory 集成。

项目将功能拆分为 `cki-core`、`cki-bukkit` 和 `cki-velocity` 三个模块,便于未来增加更多平台专属功能,而无需重新设计整个插件架构。

CombatKeepInventory 将战斗逻辑、平台专属实现、代理同步机制与公共 API 清晰分离,既适用于独立服务器,也适用于大型 Minecraft 服务器网络。
[/MD]
作者
cacca
下载
0
查看
1
首次发布
最后更新
评分
0.00 星 0 星

来自cacca的更多资源

后退
顶部