fix: events flow

This commit is contained in:
MARCROCK22 2024-12-18 16:54:26 -04:00
parent 03d7e5bda8
commit f9c5f46d50

View File

@ -183,44 +183,28 @@ export class EventHandler extends BaseHandler {
runCache = true, runCache = true,
) { ) {
const Event = this.values[name]; const Event = this.values[name];
if (!Event) {
return runCache
? this.client.cache.onPacket({
t: name,
d: packet,
} as GatewayDispatchPayload)
: undefined;
}
try { try {
if (Event.data.once && Event.fired) { if (!Event || (Event.data.once && Event.fired)) {
return runCache return;
? this.client.cache.onPacket({
t: name,
d: packet,
} as GatewayDispatchPayload)
: undefined;
} }
Event.fired = true; Event.fired = true;
const hook = await RawEvents[name]?.(client, packet as never); const hook = await RawEvents[name]?.(client, packet as never);
await (Event.run as any)(hook, client, shardId);
} catch (e) {
await this.onFail(name, e);
} finally {
if (runCache) if (runCache)
await this.client.cache.onPacket({ await this.client.cache.onPacket({
t: name, t: name,
d: packet, d: packet,
} as GatewayDispatchPayload); } as GatewayDispatchPayload);
await (Event.run as any)(hook, client, shardId);
} catch (e) {
await this.onFail(name, e);
} }
} }
async runCustom<T extends CustomEventsKeys>(name: T, ...args: ResolveEventRunParams<T>) { async runCustom<T extends CustomEventsKeys>(name: T, ...args: ResolveEventRunParams<T>) {
const Event = this.values[name]; const Event = this.values[name];
if (!Event) {
// @ts-expect-error
return this.client.collectors.run(name, args, this.client);
}
try { try {
if (Event.data.once && Event.fired) { if (!Event || (Event.data.once && Event.fired)) {
// @ts-expect-error // @ts-expect-error
return this.client.collectors.run(name, args, this.client); return this.client.collectors.run(name, args, this.client);
} }