新增SendContainerClosePacket事件

This commit is contained in:
子沐呀
2024-07-20 21:50:54 +08:00
Unverified
parent 7af336e4b0
commit 8ee4e240f8
2 changed files with 30 additions and 1 deletions
+14 -1
View File
@@ -215,10 +215,23 @@ declare class Event {
player: Player,
/** 请求类型 */
actionType: string,
/** 容器ID */
/** 容器类型 */
ContainerNetId: string,
/** 请求的槽位 */
slot: number
) => boolean | void
): boolean;
/** 发送容器关闭数据包后(不可拦截) */
static listen(
/** 事件名 */
event: "SendContainerClosePacket",
/** 回调函数 */
listener: (
/** 要被关闭的玩家 */
player: Player,
/** 容器类型 */
ContainerNetId: string
) => void
): boolean;
}
+16
View File
@@ -289,6 +289,22 @@ void Export_Event_API() {
);
return true;
}
case doHash("SendContainerClosePacket"): {
auto Call =
RemoteCall::importAs<bool(Player * player, std::string const& ContainerNetId)>(eventName, eventId);
eventBus->emplaceListener<Event::PacketEvent::ContainerClosePacketSendAfterEvent>(
[Call](Event::PacketEvent::ContainerClosePacketSendAfterEvent& ev) {
try {
Call(
ev.getServerNetworkHandler()
.getServerPlayer(ev.getNetworkIdentifier(), ev.getPacket().mClientSubId),
magic_enum::enum_name(ev.getPacket().mContainerId).data()
);
} catch (...) {}
}
);
return true;
}
default:
return false;
}