
MPCombatLog
完美的CombatLog插件,可防止玩家在战斗中退出,设置无缝,并易于与其他模组集成!
MPCombatLog - Hytale 战斗日志预防插件
本模组确保没有玩家在战斗期间离开,如果离开——他们将在断开连接时被击杀。
功能特性
- 自动战斗检测 - 自动检测玩家何时受到或造成伤害
- 可配置战斗持续时间 - 设置玩家保持战斗状态的时间
- PvP/PvE 模式 - 可选择允许 PvE 战斗日志
- 指令屏蔽 - 在战斗中屏蔽特定指令,如 /tp!
- 战斗日志预防 - 击杀在战斗中断开连接的玩家
- 战斗状态消息 - 可自定义进入/退出战斗的消息
- 重载指令 - 可在游戏中重载插件!无需重启服务器
- 颜色代码支持 - 在配置中使用 &0-9 和 &a-f 设置颜色!(Minecraft 风格)
- 开发者 API - 为其他插件提供简单的 API 以检查战斗状态
No CombatLog 权限
如果您不希望被标记为战斗状态,请使用此权限 combatlog.bypass
配置
配置文件位于 mods/MP_CombatLog/config.json:
{
"onlyPlayerDamageLog": true, // 设为 false 启用 PvE 战斗日志
"combatTime": 30, // 玩家保持战斗状态的秒数
"showCombatTitle": true, // 设为 false 禁用战斗标题
"blockCommandsInCombat": true,
"blockedCommands": [
"home",
"spawn",
"tpa",
"tp",
"warp"
],
"messages": {
"prefix": "&l&7[&c&lCL&l&7] &7>> ",
"combatEnter": "&c你已进入战斗!&7不要退出游戏!",
"combatExit": "&a你已脱离战斗。",
"combatTimeRemaining": "&6战斗:&e%seconds%秒 &7剩余",
"combatLogBroadcast": "&e%player% &c因战斗日志行为被击杀!",
"commandBlocked": "&c你无法在战斗中使用此指令!",
"commandReloadSuccess": "&a配置重载成功!",
"commandReloadFailed": "&c配置重载失败:%error%",
"commandInfo": "&7运行 &eMPCombatLog &7v%version%",
"combatTitleMain": "&c战斗中",
"combatTitleSub": "&7剩余%seconds%秒"
}
}
指令
| 指令 | 描述 | 权限 |
|---|---|---|
/combatlog |
显示插件信息 | 所有人 |
/combatlog help |
显示可用指令 | 所有人 |
/combatlog reload |
重载配置 | 仅管理员 |
开发者 API
MPCombatLog 为其他插件提供简单的 API,用于检查和管理战斗状态。
添加为依赖
Maven
在您的 pom.xml 中将 MPCombatLog 添加为依赖:
<dependency>
<groupId>com.minimalpulse.combatlog</groupId>
<artifactId>MPCombatLog</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
Hytale Manifest
在您的 manifest.json 中将 MPCombatLog 添加为依赖:
{
"Dependencies": {
"com.minimalpulse.combatlog": "*"
}
}
或者,如果您希望插件在没有它的情况下也能工作,可将其添加为可选依赖:
{
"OptionalDependencies": {
"com.minimalpulse.combatlog": "*"
}
}
API 使用
所有 API 方法均为静态方法,通过 CombatLogAPI 访问:
import com.minimalpulse.combatlog.api.CombatLogAPI;
// 检查插件是否已加载
if (CombatLogAPI.isAvailable()) {
// 插件已加载并准备就绪
}
// 检查玩家是否在战斗中
UUID playerUuid = player.getUuid();
if (CombatLogAPI.isInCombat(playerUuid)) {
player.sendMessage(Message.raw("您无法在战斗中进行此操作!"));
return;
}
// 获取战斗中剩余的秒数
int secondsLeft = CombatLogAPI.getRemainingCombatTime(playerUuid);
// 获取配置的战斗持续时间
int combatDuration = CombatLogAPI.getCombatDuration();
// 手动将玩家置于战斗状态
CombatLogAPI.enterCombat(playerUuid, worldName);
// 手动将玩家移除战斗状态
CombatLogAPI.exitCombat(playerUuid);
API 方法
| 方法 | 描述 | 返回 |
|---|---|---|
isAvailable() |
检查 MPCombatLog 是否已加载 | boolean |
isInCombat(UUID) |
检查玩家是否在战斗中 | boolean |
getRemainingCombatTime(UUID) |
获取战斗剩余秒数 | int |
getCombatDuration() |
获取配置的战斗持续时间 | int |
enterCombat(UUID, String) |
将玩家置于战斗状态并关联世界 | void |
exitCombat(UUID) |
将玩家移出战斗状态 | void |
许可协议
MIT 许可证 - 欢迎在您自己的项目中使用!
作者
MinimalPulse
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。