跳转至

IXBOB 模组开发者 API

本站点是 IXBOB 网易MC模组的公开 API 文档, 便于其他模组开发者进行模组联动。 任意问题均可进Q群 589523062 联系群主交流反馈~

项目导航

  • PlayerRevive Server


    《倒地救援与背负•超多自定义》 为原版添加玩家濒死倒地/救援机制

  • LimbHealth Server


    《肢体血量-医疗护理•超多自定义》 扩展原版单血条为身体各部位独立血条系统

  • HolyParty Server


    《更好的组队•超多自定义》 为原版添加多玩家组队/队内聊天/队伍身份组等复杂队伍功能

通用约定

下列约定对所有项目都适用,每个 API 方法页不再重复说明。

类型注释

所有 API 使用 Python 2.7 兼容的注释式类型标注:

def methodName(playerId, isFromHurt):
    # type: (str, bool) -> None
    ...

文档中均按类型注释中给出的实际类型展示。

静态方法

所有公开 API 都是 @staticmethod / @classmethod,无需实例化,直接通过类名调用:

PlayerReviveServerAPI.getIsNeedRevive(playerId)
LimbHealthServerAPI.setLimbHealth(playerId, posTypeEnum, newHealth, isFromHurt)
HolyPartyServerAPI.getPlayerCurrentParties(playerId)

事件优先级

所有项目都暴露一个 *EventPriorityEnum(PlayerRevive 用 PlayerReviveEventPriorityEnum,LimbHealth 用 LimbHealthEventPriorityEnum,HolyParty 用 ModEventPriorityEnum),五个等级的执行顺序一致:

常量 slot 触发顺序
LOWEST 0 最先触发
LOW 1
NORMAL 2 默认值
HIGH 3
HIGHEST 4 最晚触发

注册时若不传 priority,默认按 NORMAL 处理。

registerEventHandler*presetArgs

所有项目的事件注册接口签名一致:

def registerEventHandler(event, func, priority=None, *presetArgs):
    ...

调用时附加的 *presetArgs 会在事件对象之前传入处理器。例如:

api.registerEventHandler(
    api.getApiEvents().SomeEvent,
    handler,
    api.getEventPriorityEnum().NORMAL,
    "extra-arg-1", 42,
)

def handler(extraArg1, extraNumber, event):
    # extraArg1 == "extra-arg-1"
    # extraNumber == 42
    # event 是 SomeEvent 实例
    ...

异常约定

  • TypeError —— 参数类型不匹配(如把非 EnumObject 传给 priority,或把不可调用对象传给 func)。
  • ValueError —— 实体不存在(如查询未在管理器中注册的玩家 ID)。