MPCombatLog

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