Discord.py. Как сделать так чтобы при выходе из сервера(когда кикнут) выполнил какое-либо действие

Есть такой код, рабочий:

@bot.event
async def on_guild_join(curser):
    print(curser.id)
    for guild in bot.guilds:
        for server in guild.name:
            cursor.execute(f"SELECT id FROM server where id={curser.id}")
            if cursor.fetchone()==None:
                cursor.execute(f"INSERT INTO server VALUES ({curser.id}, '{curser.name}', 1)")
            else:
                pass
                conn.commit()

Мне нужно типа этого(снизу):

@bot.event
async def on_guild_leave(curser):
    print(curser.id)
    for server in cursor.execute(f"SELECT id FROM server where id={curser.id}"):
        if cursor.fetchone()!=None:
            cursor.execute(f"UPDATE server SET isExists=(0) WHERE id={curser.id}")
        else:
            pass
            conn.commit()

чтобы наоборот когда был кикнут или забанен или сам вышел из сервер, значения в базе данных изменились.


Ответы (1 шт):

Автор решения: jillstr
from discord import Guild


@bot.event
async def on_guild_remove(guild: Guild):
    # Выполняем какие-либо действия с бд.

Ивент on_guild_remove выполняется, когда клиент(бот) был кикнут, забанен или покинул сервер. Чтобы ивент работал, нужно "включить" намерения сервера Intents.guild.

Прочитать про ивент, можно в документации.

→ Ссылка