Parameters
- data: {
_id: string;
attachments?:
| null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
}[];
author: string;
channel: string;
content?: null
| string;
edited?: null | string;
embeds?:
| null
| (
| {
colour?: null
| string;
description?: null | string;
icon_url?: null | string;
image?:
| null
| {
height: number;
size: "Large"
| "Preview";
url: string;
width: number;
};
original_url?: null
| string;
site_name?: null | string;
special?:
| null
| { type: "None" }
| { type: "GIF" }
| { id: string; timestamp?: null | string; type: "YouTube" }
| { content_type: "Channel"; id: string; type: "Lightspeed" }
| {
content_type: "Channel" | "Video" | "Clip";
id: string;
type: "Twitch";
}
| { content_type: string; id: string; type: "Spotify" }
| { type: "Soundcloud" }
| { content_type: "Album" | "Track"; id: string; type: "Bandcamp" }
| { album_id: string; track_id?: null | string; type: "AppleMusic" }
| { id: string; type: "Streamable" };
title?: null | string;
type: "Website";
url?: null | string;
video?: null | { height: number; url: string; width: number };
}
| {
height: number;
size: "Large"
| "Preview";
type: "Image";
url: string;
width: number;
}
| { height: number; type: "Video"; url: string; width: number }
| {
colour?: null | string;
description?: null | string;
icon_url?: null | string;
media?:
| null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
};
title?: null
| string;
type: "Text";
url?: null | string;
}
| { type: "None" }
)[];
flags?: number;
interactions?: {
reactions?: null | string[];
restrict_reactions?: boolean;
};
masquerade?: | null
| { avatar?: null
| string; colour?: null | string; name?: null | string };
member?:
| null
| {
_id: { server: string; user: string };
avatar?:
| null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
};
joined_at: string;
nickname?: null
| string;
roles?: string[];
timeout?: null | string;
};
mentions?: null
| string[];
nonce?: null | string;
pinned?: null | boolean;
reactions?: { [key: string]: string[] };
replies?: null | string[];
system?:
| null
| { content: string; type: "text" }
| { by: string; id: string; type: "user_added" }
| { by: string; id: string; type: "user_remove" }
| { id: string; type: "user_joined" }
| { id: string; type: "user_left" }
| { id: string; type: "user_kicked" }
| { id: string; type: "user_banned" }
| { by: string; name: string; type: "channel_renamed" }
| { by: string; type: "channel_description_changed" }
| { by: string; type: "channel_icon_changed" }
| { from: string; to: string; type: "channel_ownership_changed" }
| { by: string; id: string; type: "message_pinned" }
| { by: string; id: string; type: "message_unpinned" };
user?:
| null
| {
_id: string;
avatar?: | null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
};
badges?: number;
bot?: null
| { owner: string };
discriminator: string;
display_name?: null | string;
flags?: number;
online: boolean;
privileged?: boolean;
relations?: {
_id: string;
status:
| "User"
| "None"
| "Friend"
| "Outgoing"
| "Incoming"
| "Blocked"
| "BlockedOther";
}[];
relationship: | "User"
| "None"
| "Friend"
| "Outgoing"
| "Incoming"
| "Blocked"
| "BlockedOther";
status?: | null
| {
presence?: null
| "Online"
| "Idle"
| "Focus"
| "Busy"
| "Invisible";
text?: null | string;
};
username: string;
};
webhook?: null
| { avatar?: null | string; name: string };
}_id: string
Optional
attachments?:
| null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
}[]
author: string
channel: string
Optional
content?: null | string
Optional
edited?: null | string
Optional
embeds?:
| null
| (
| {
colour?: null
| string;
description?: null | string;
icon_url?: null | string;
image?:
| null
| {
height: number;
size: "Large"
| "Preview";
url: string;
width: number;
};
original_url?: null
| string;
site_name?: null | string;
special?:
| null
| { type: "None" }
| { type: "GIF" }
| { id: string; timestamp?: null | string; type: "YouTube" }
| { content_type: "Channel"; id: string; type: "Lightspeed" }
| {
content_type: "Channel" | "Video" | "Clip";
id: string;
type: "Twitch";
}
| { content_type: string; id: string; type: "Spotify" }
| { type: "Soundcloud" }
| { content_type: "Album" | "Track"; id: string; type: "Bandcamp" }
| { album_id: string; track_id?: null | string; type: "AppleMusic" }
| { id: string; type: "Streamable" };
title?: null | string;
type: "Website";
url?: null | string;
video?: null | { height: number; url: string; width: number };
}
| {
height: number;
size: "Large"
| "Preview";
type: "Image";
url: string;
width: number;
}
| { height: number; type: "Video"; url: string; width: number }
| {
colour?: null | string;
description?: null | string;
icon_url?: null | string;
media?:
| null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
};
title?: null
| string;
type: "Text";
url?: null | string;
}
| { type: "None" }
)[]
Optional
flags?: number
Optional
interactions?: { reactions?: null | string[]; restrict_reactions?: boolean }
Optional
reactions?: null | string[]
Optional
restrict_reactions?: boolean
Optional
masquerade?: null | { avatar?: null | string; colour?: null | string; name?: null | string }
Optional
member?:
| null
| {
_id: { server: string; user: string };
avatar?:
| null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
};
joined_at: string;
nickname?: null
| string;
roles?: string[];
timeout?: null | string;
}
Optional
mentions?: null | string[]
Optional
nonce?: null | string
Optional
pinned?: null | boolean
Optional
reactions?: { [key: string]: string[] }
Optional
replies?: null | string[]
Optional
system?:
| null
| { content: string; type: "text" }
| { by: string; id: string; type: "user_added" }
| { by: string; id: string; type: "user_remove" }
| { id: string; type: "user_joined" }
| { id: string; type: "user_left" }
| { id: string; type: "user_kicked" }
| { id: string; type: "user_banned" }
| { by: string; name: string; type: "channel_renamed" }
| { by: string; type: "channel_description_changed" }
| { by: string; type: "channel_icon_changed" }
| { from: string; to: string; type: "channel_ownership_changed" }
| { by: string; id: string; type: "message_pinned" }
| { by: string; id: string; type: "message_unpinned" }
Optional
user?:
| null
| {
_id: string;
avatar?: | null
| {
_id: string;
content_type: string;
deleted?: null
| boolean;
filename: string;
message_id?: null | string;
metadata:
| { type: "File" }
| { type: "Text" }
| { height: number; type: "Image"; width: number }
| { height: number; type: "Video"; width: number }
| { type: "Audio" };
object_id?: null | string;
reported?: null | boolean;
server_id?: null | string;
size: number;
tag: string;
user_id?: null | string;
};
badges?: number;
bot?: null
| { owner: string };
discriminator: string;
display_name?: null | string;
flags?: number;
online: boolean;
privileged?: boolean;
relations?: {
_id: string;
status:
| "User"
| "None"
| "Friend"
| "Outgoing"
| "Incoming"
| "Blocked"
| "BlockedOther";
}[];
relationship: | "User"
| "None"
| "Friend"
| "Outgoing"
| "Incoming"
| "Blocked"
| "BlockedOther";
status?: | null
| {
presence?: null
| "Online"
| "Idle"
| "Focus"
| "Busy"
| "Invisible";
text?: null | string;
};
username: string;
}
Optional
webhook?: null | { avatar?: null | string; name: string }
Returns Promise<unknown>
A promise that resolves with the created message, or an empty object if the channel is not text-based.
Represents the event handler for incoming messages.