- 版权类型
- 转载
- 插件中文名
- CKI | CombatKeepInventory | 保护你的物品栏免受环境死亡影响
- 插件英文名
- CombatKeepInventory
- 支持的核心 [服务端]
- Paper
- 语言支持
- 中文(简体)
- 适配Minecraft版本 [Java]
- 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]
# 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]