События приходят как { "op": "DISPATCH", "t": "ИМЯ", "d": { … } }. Бот получает события только тех серверов, каналов и бесед, к которым у него есть доступ; при потере доступа (кик, роль, права канала) подписка снимается сразу.
Сообщения
MESSAGE_CREATEНовое сообщение в канале или беседе (включая сообщения самого бота).
{ message: Message }MESSAGE_UPDATEСообщение изменено, закреплено или откреплено.
{ message: Message }MESSAGE_DELETEСообщение удалено.
{ channelId, messageId }REACTION_UPDATEКто-то поставил или снял реакцию.
{ channelId, messageId, emoji, userId, added, reactions }TYPING_STARTКто-то печатает.
{ channelId, userId, at }POLL_UPDATEГолоса в опросе изменились.
{ channelId, messageId, poll }Команды и кнопки
INTERACTION_CREATEВызвана команда «/» бота или нажата его кнопка. Ответить — за 3 секунды.
Interaction — см. «Команды «/» и кнопки»Участники
MEMBER_JOINНовый участник сервера.
{ serverId, member: { userId, joinedAt, user } }MEMBER_LEAVEУчастник вышел, исключён или забанен.
{ serverId, userId, reason? }MEMBER_UPDATEИзменились роли или ник участника.
{ serverId, member: { userId, nickname, roleIds, … , user } }PRESENCE_UPDATEСтатус или активность участника.
{ userId, status, online, activity }USER_UPDATEУчастник изменил профиль (имя, аватар).
{ user: User }Серверы
SERVER_ADDБота добавили на сервер (подписка на него уже оформлена).
{ serverId, channels: { id, categoryId }[] }SERVER_UPDATEИзменены настройки сервера.
{ server } или { serverId }SERVER_DELETEСервер удалён.
{ serverId }Каналы и категории
CHANNEL_CREATEСоздан канал.
{ channel }CHANNEL_UPDATEКанал изменён.
{ channel }CHANNEL_DELETEКанал удалён.
{ channelId, serverId }CHANNELS_REORDERПорядок каналов изменён.
{ serverId, … }CHANNEL_OVERRIDE_UPDATEИзменились права канала.
{ channelId, … }CATEGORY_CREATE / CATEGORY_UPDATE / CATEGORY_DELETEКатегории каналов.
{ category } / { categoryId }Роли
ROLE_CREATEСоздана роль.
{ role }ROLE_UPDATEРоль изменена.
{ role }ROLE_DELETEРоль удалена.
{ roleId }ROLES_REORDERПорядок ролей изменён.
{ serverId, … }Личные сообщения
DM_CREATEОткрыта новая беседа с ботом.
{ channel: DmChannel }Пример: приветствие новичков
client.on("memberJoin", async ({ serverId, member }) => {
const { server } = await client.api("GET", `/servers/${serverId}`);
if (server.systemChannelId) {
await client.send(server.systemChannelId, `Добро пожаловать, @${member.user.username}! 👋`);
}
});