HolyParty 类型与事件¶
汇总 HolyParty 暴露给外部的事件类、枚举与数据类型。
ApiEvents¶
可注册事件的枚举集合,通过 HolyPartyServerAPI.getApiEvents() 获取。
class HolyPartyServerAPI.ApiEvents(BaseEnum):
MemberJoinedPartyEvent # 成员加入队伍
MemberLeftPartyEvent # 成员离开队伍(含主动/被踢/被强制)
MemberRoleChangedEvent # 成员角色变更
PartyRolePermissionChangedEvent # 队伍角色权限项变更
每个枚举项是 ApiEvents.EnumObject,可通过 .getEventCls() 取出对应的事件类。ApiEvents 继承自 BaseEnum,可调用 values() / valueOf(name) 反射访问。
MemberJoinedPartyEvent¶
玩家加入队伍时触发。
| 属性 | 类型 | 说明 |
|---|---|---|
memberId |
str |
加入的玩家 ID |
memberName |
str |
加入的玩家显示名 |
partyKey |
PartyKey |
队伍标识 |
otherMemberIds |
list[str] |
此次加入前已经在队伍里的成员 ID 列表 |
Getter
| 方法 | 返回 |
|---|---|
getMemberId() |
str |
getMemberName() |
str |
getPartyKey() |
PartyKey |
getPartyId() |
str(等价于 getPartyKey().getPartyId()) |
getPartyName() |
str(等价于 getPartyKey().getPartyName()) |
getOtherMemberIds() |
list[str] |
MemberLeftPartyEvent¶
玩家离开队伍时触发,统一覆盖 主动离开 / 被踢 / 被强制离开三种场景。
| 属性 | 类型 | 说明 |
|---|---|---|
memberId |
str |
离开的玩家 ID |
memberName |
str |
离开的玩家显示名 |
partyKey |
PartyKey |
队伍标识 |
remainingMemberIds |
list[str] |
离开后剩余成员 ID 列表 |
newOwnerId |
str | None |
若离开导致队长转移,则为新队长 ID;否则 None |
newOwnerName |
str | None |
新队长显示名;否则 None |
leftReason |
str | None |
离开原因常量,见下表 |
kickerId |
str | None |
若是被踢/被强制离开,则为操作者 ID |
kickerName |
str | None |
操作者显示名 |
kickerRoleName |
str | None |
操作者在该队伍的角色名 |
离开原因常量¶
MemberLeftPartyEvent 类上挂载三个字符串常量:
| 常量 | 值 | 含义 |
|---|---|---|
REASON_LEAVE |
"leave" |
玩家主动离开 |
REASON_KICK |
"kick" |
被其他成员踢出 |
REASON_FORCE_LEAVE |
"force_leave" |
被系统强制离开(如队伍解散后清理) |
Getter¶
| 方法 | 返回 | 说明 |
|---|---|---|
getMemberId() |
str |
|
getMemberName() |
str |
|
getPartyKey() |
PartyKey |
|
getPartyId() |
str |
|
getPartyName() |
str |
|
getRemainingMemberIds() |
list[str] |
|
getNewOwnerId() |
str | None |
|
getNewOwnerName() |
str | None |
|
getLeftReason() |
str | None |
取上述常量之一或 None |
isKick() |
bool |
等价于 getLeftReason() == REASON_KICK |
isForceLeave() |
bool |
等价于 getLeftReason() == REASON_FORCE_LEAVE |
getKickerId() |
str | None |
|
getKickerName() |
str | None |
|
getKickerRoleName() |
str | None |
|
getOperatorId() |
str | None |
别名 getKickerId |
getOperatorName() |
str | None |
别名 getKickerName |
getOperatorRoleName() |
str | None |
别名 getKickerRoleName |
Operator 别名
若你的代码不区分「踢出 / 强制离开」,统一使用 getOperatorXxx 名称会让逻辑更通用。
MemberRoleChangedEvent¶
队伍内一个或多个成员的角色发生变更时触发。
| 属性 | 类型 | 说明 |
|---|---|---|
partyKey |
PartyKey |
队伍标识 |
callerName |
str |
操作者显示名 |
callerRoleName |
str |
操作者角色名 |
targetIds |
list[str] |
角色被改变的成员 ID 列表 |
newRoleName |
str |
新角色名 |
Getter
| 方法 | 返回 |
|---|---|
getPartyKey() |
PartyKey |
getPartyId() |
str |
getPartyName() |
str |
getCallerName() |
str |
getCallerRoleName() |
str |
getTargetIds() |
list[str] |
getNewRoleName() |
str |
PartyRolePermissionChangedEvent¶
队伍内某个角色的权限项发生变更时触发。
| 属性 | 类型 | 说明 |
|---|---|---|
partyKey |
PartyKey |
队伍标识 |
callerId |
str |
操作者 ID |
callerName |
str |
操作者显示名 |
role |
str |
角色内部标识(如 "owner"、"admin"、"member" 等) |
roleName |
str |
角色显示名 |
changes |
list[PartyRolePermissionChange] |
本次变更的权限项列表 |
Getter
| 方法 | 返回 |
|---|---|
getPartyKey() |
PartyKey |
getPartyId() |
str |
getPartyName() |
str |
getCallerId() |
str |
getCallerName() |
str |
getRole() |
str |
getRoleName() |
str |
getChanges() |
list[PartyRolePermissionChange] |
PartyRolePermissionChange¶
权限变更条目,作为 PartyRolePermissionChangedEvent.changes 列表中的每一项。仅供给外部读取,不需要也不应由外部代码自行构造。
方法¶
| 方法 | 返回 | 说明 |
|---|---|---|
getItem() |
PartyRolePermissionItem |
权限项本身 |
getNewValue() |
bool |
变更后的开启状态 |
getStatusText() |
str |
中文状态文本:"允许" / "禁止" |
toMessageLine() |
str |
拼好的中文一行:"变更的{item.label}: 允许/禁止" |
PartyKey¶
队伍轻量标识对象,包含 ID 与名称。
构造¶
PartyKey(partyId, partyName, extensionData=None)
# type: (str | unicode, str | unicode, dict | None) -> None
构造时会校验并规范化 partyId(必须是合法的队伍 ID 字符串)与 partyName(必须可转 str);不合法时抛 TypeError。
方法¶
| 方法 | 返回 | 说明 |
|---|---|---|
getPartyId() |
str |
队伍 ID |
getPartyName() |
str |
队伍显示名 |
setPartyName(partyName) |
None |
修改队伍显示名(自动规范化为 str) |
getName() |
str |
getPartyName 的别名 |
setName(name) |
None |
setPartyName 的别名 |
serialize() |
dict |
序列化为字典(用于持久化/网络传输) |
类方法¶
| 方法 | 返回 | 说明 |
|---|---|---|
fromPayload(payload) |
PartyKey |
从字典反序列化 |
fromParty(party) |
PartyKey |
从任意带 getPartyId/getPartyName 接口的队伍对象生成 |
PartyServer¶
队伍完整状态对象。HolyPartyServerAPI 不直接返回它,而是返回 CurrentParty 包装。如需访问完整属性,使用 currentParty.getParty()。
PartyServer 是 HolyParty 的内部状态对象,外部只应读取其属性,常用方法:
| 方法 | 返回 |
|---|---|
getPartyId() |
str |
getPartyName() |
str |
getOwnerId() |
str |
getMembers() |
list[str] |
hasMember(memberId) |
bool |
getMemberRole(memberId) |
str |
getColor() |
str |
getIcon() |
str |
getCreatedAt() |
int |
serialize() |
dict |
ModEventPriorityEnum¶
事件处理器执行优先级。slot 越小越先触发。
| 常量 | slot |
触发顺序 |
|---|---|---|
LOWEST |
0 |
最先触发 |
LOW |
1 |
|
NORMAL |
2 |
默认值 |
HIGH |
3 |
|
HIGHEST |
4 |
最晚触发 |