HolyPartyServerAPI¶
服务端入口类,所有方法均为 @staticmethod。
队伍查询¶
getPlayerCurrentParties(playerId)¶
返回玩家当前所在的全部队伍(包装为
CurrentParty)。
@staticmethod
def getPlayerCurrentParties(playerId):
# type: (str) -> list[HolyPartyServerAPI.CurrentParty]
参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
playerId |
str |
✅ | 玩家 ID |
返回
list[HolyPartyServerAPI.CurrentParty] —— 队伍列表,按内部存储顺序返回。玩家不在任何队伍时返回 []。
返回 CurrentParty 而非 PartyServer
内部为防止外部代码越权修改队伍状态,统一返回 CurrentParty 包装类。如需访问完整 PartyServer 对象,调用 currentParty.getParty(),但请只读使用。
示例
parties = HolyPartyServerAPI.getPlayerCurrentParties(playerId)
if not parties:
print("玩家不在任何队伍")
else:
for cp in parties:
print("[{}] {}".format(cp.getPartyId(), cp.getPartyName()))
事件系统¶
getApiEvents()¶
返回可注册事件的枚举类。
返回
type[HolyPartyServerAPI.ApiEvents] —— 包含四个事件枚举项:MemberJoinedPartyEvent、MemberLeftPartyEvent、MemberRoleChangedEvent、PartyRolePermissionChangedEvent。
getPartyEventPriorityEnum()¶
返回事件优先级枚举类。
返回
type[ModEventPriorityEnum] —— 5 个等级。
Info
HolyParty 使用通用的 ModEventPriorityEnum,不像 PlayerRevive / LimbHealth 各自定义专属优先级类。
registerEventHandler(event, func, priority=None, *presetArgs)¶
注册事件处理器。
@staticmethod
def registerEventHandler(event, func, priority=None, *presetArgs):
# type: (HolyPartyServerAPI.ApiEvents.EnumObject | type, callable, ModEventPriorityEnum.EnumObject | None, *any) -> None
参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
event |
ApiEvents.EnumObject | type |
✅ | 通过 getApiEvents() 取得 |
func |
callable |
✅ | 处理器,签名为 (*presetArgs, event) -> None |
priority |
ModEventPriorityEnum.EnumObject | None |
❌(默认 NORMAL) |
触发优先级 |
*presetArgs |
any |
❌ | 预置参数 |
返回
None
异常
TypeError——event/func/priority类型错误时抛出。
示例
api = HolyPartyServerAPI
events = api.getApiEvents()
priorityEnum = api.getPartyEventPriorityEnum()
def onRoleChanged(event):
print("{} 把以下玩家角色改为 {}: {}".format(
event.getCallerName(),
event.getNewRoleName(),
event.getTargetIds(),
))
api.registerEventHandler(
events.MemberRoleChangedEvent,
onRoleChanged,
priorityEnum.NORMAL,
)
unregisterEventHandler(event, func)¶
取消事件处理器注册。
@staticmethod
def unregisterEventHandler(event, func):
# type: (HolyPartyServerAPI.ApiEvents.EnumObject | type, callable) -> None
参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
event |
ApiEvents.EnumObject | type |
✅ | 与注册时相同 |
func |
callable |
✅ | 与注册时相同的函数对象 |
返回
None
异常
TypeError——event/func类型错误时抛出。
CurrentParty¶
HolyPartyServerAPI 的嵌套类,作为对外暴露的只读包装。
外部一般不直接构造,而是通过 getPlayerCurrentParties 取得。
getParty()¶
取得内部
PartyServer实例。
只读使用
PartyServer 是 HolyParty 内部状态对象,外部代码只应读取其属性。任何写操作可能导致状态不一致或与持久化层冲突。
getPartyKey()¶
取得
PartyKey轻量标识对象。
每次调用都会新建一个 PartyKey 实例。
getPartyId()¶
队伍 ID 字符串(与
getPartyKey().getPartyId()等价)。
getPartyName()¶
队伍显示名(与
getPartyKey().getPartyName()等价)。