Пишу бота в дс, код состоит в том, что при событии on_member_join(member), исполняемый код брал ид сервера на котором произошло присоединение и с помощью функции обращался к базе данных, которая по ид сервера смотрела есть ли приветствие для пользователя, если оно есть, то бот отправит его пользователю, если же его нету, тогда просто проигнорирует, но вопрос в том, как в этом событии получить точный ид сервера, если эта функция принимает только один аргумент "member", bot.guilds or client.guilds не то.
Код:
TOKEN= 'Token'
p = '.'
bot = commands.Bot(command_prefix=p)
tag = 'Bot -'
def get_greeting(guild):
connect = connection()
try:
with connect.cursor() as cursor:
result = cursor.execute(f"SELECT * FROM `chats` WHERE gui={guild}")
row = cursor.fetchone()
if str(row['greeting']) != 'null':
return 1, str(row['greeting'])
else:
return 0, ' '
finally:
connect.close()
@bot.event
async def on_member_join(member):
rez, greeting = get_greeting(Сюды ид сервера)
if rez == 1:
await member.send(f"{member.mention}, приветствуем тебя на сервере.\n{greeting}")
bot.run(TOKEN)