mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-03 05:26:07 +00:00
add property 'fields' to MESSAGE_UPDATE callback
This commit is contained in:
parent
093ca3b232
commit
2fb78ce8d6
@ -82,6 +82,7 @@ import type {
|
|||||||
} from '../structures/message-reaction';
|
} from '../structures/message-reaction';
|
||||||
|
|
||||||
import { NewMessageReactionAdd } from '../structures/message-reaction';
|
import { NewMessageReactionAdd } from '../structures/message-reaction';
|
||||||
|
import { Util, PartialMessage } from '../utils/util';
|
||||||
|
|
||||||
export type RawHandler<T> = (...args: [Session, number, T]) => void;
|
export type RawHandler<T> = (...args: [Session, number, T]) => void;
|
||||||
export type Handler<T extends [obj?: unknown, ddy?: unknown]> = (
|
export type Handler<T extends [obj?: unknown, ddy?: unknown]> = (
|
||||||
@ -106,21 +107,20 @@ export const MESSAGE_CREATE: RawHandler<DiscordMessage> = (
|
|||||||
session.events.emit('messageCreate', new Message(session, message));
|
session.events.emit('messageCreate', new Message(session, message));
|
||||||
};
|
};
|
||||||
|
|
||||||
export const MESSAGE_UPDATE: RawHandler<DiscordMessage> = (
|
export const MESSAGE_UPDATE: RawHandler<PartialMessage> = (
|
||||||
session,
|
session,
|
||||||
_shardId,
|
_shardId,
|
||||||
new_message
|
new_message
|
||||||
) => {
|
) => {
|
||||||
// message is partial
|
// message is partial
|
||||||
if (!new_message.edited_timestamp) {
|
if (Util.isPartialMessage(new_message)) {
|
||||||
const message = {
|
const message = {
|
||||||
// TODO: improve this
|
|
||||||
// ...new_message,
|
|
||||||
session,
|
session,
|
||||||
id: new_message.id,
|
id: new_message.id,
|
||||||
guildId: new_message.guild_id,
|
guildId: new_message.guild_id,
|
||||||
channelId: new_message.channel_id,
|
channelId: new_message.channel_id,
|
||||||
};
|
fields: new_message,
|
||||||
|
}; //satisfies Partial<Message>;
|
||||||
|
|
||||||
// all methods of Message can run on partial messages
|
// all methods of Message can run on partial messages
|
||||||
// we aknowledge people that their callback could be partial but giving them all functions of Message
|
// we aknowledge people that their callback could be partial but giving them all functions of Message
|
||||||
@ -130,7 +130,12 @@ export const MESSAGE_UPDATE: RawHandler<DiscordMessage> = (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
session.events.emit('messageUpdate', new Message(session, new_message));
|
if (Util.isFullMessage(new_message)) {
|
||||||
|
session.events.emit('messageUpdate', {
|
||||||
|
...new Message(session, new_message),
|
||||||
|
fields: {} as PartialMessage
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const MESSAGE_DELETE: RawHandler<DiscordMessageDelete> = (
|
export const MESSAGE_DELETE: RawHandler<DiscordMessageDelete> = (
|
||||||
@ -714,7 +719,7 @@ export type AllEvents = keyof Events;
|
|||||||
export interface Events {
|
export interface Events {
|
||||||
ready: Handler<[Ready, number]>;
|
ready: Handler<[Ready, number]>;
|
||||||
messageCreate: Handler<[Message]>;
|
messageCreate: Handler<[Message]>;
|
||||||
messageUpdate: Handler<[Partial<Message>]>;
|
messageUpdate: Handler<[Partial<Message> & { fields: PartialMessage }]>;
|
||||||
messageDelete: Handler<
|
messageDelete: Handler<
|
||||||
[{ id: Snowflake; channelId: Snowflake; guildId?: Snowflake }]
|
[{ id: Snowflake; channelId: Snowflake; guildId?: Snowflake }]
|
||||||
>;
|
>;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import type { SelectMenuBuilder, InputTextBuilder, ButtonBuilder } from '@biscuitland/helpers';
|
import type { SelectMenuBuilder, InputTextBuilder, ButtonBuilder } from '@biscuitland/helpers';
|
||||||
import type { Permissions } from '../structures/special/permissions';
|
import type { Permissions } from '../structures/special/permissions';
|
||||||
import type { Snowflake } from '../snowflakes';
|
import type { Snowflake } from '../snowflakes';
|
||||||
|
import type { DiscordMessage, MakeRequired } from '@biscuitland/api-types';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @link https://discord.com/developers/docs/resources/channel#message-object-message-flags
|
* @link https://discord.com/developers/docs/resources/channel#message-object-message-flags
|
||||||
@ -94,4 +95,14 @@ export abstract class Util {
|
|||||||
static getBotIdFromToken(token: string): string {
|
static getBotIdFromToken(token: string): string {
|
||||||
return atob(token.split('.')[0]);
|
return atob(token.split('.')[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isFullMessage(m: Partial<DiscordMessage> | DiscordMessage): m is DiscordMessage {
|
||||||
|
return !!m.edited_timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isPartialMessage(m: Partial<DiscordMessage> | DiscordMessage): m is PartialMessage {
|
||||||
|
return !m.edited_timestamp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type PartialMessage = MakeRequired<DiscordMessage, "id" | "channel_id">;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user