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.
Прочитать про ивент, можно в документации.