Бот для приветствия нескольких гильдий — discord.py

#python #discord #bots #discord.py

#python #Discord #боты #discord.py

Вопрос:

В принципе, проблема действительно проста, я знаю, что мне нужно получить guild объект из on_member_join события, хотя, когда я искал решения своей проблемы, я не мог найти никакого решения для нее, в документации говорится, что единственное, что я могу получить из on_member_join события, — это member объект, и я не нашел никакого способа получитьобъект гильдии из него. Итак, есть ли какой-либо способ проверить, какой член гильдии присоединился (и получить его guild объект)?

Некоторый код для контекста:

 @bot.event
async def on_member_join(member):
    AutoRolechannel = bot.get_channel(channelId1)
    CharacterAddChannel = bot.get_channel(channelId2)
    WelcommingChannel = bot.get_channel(ChannelId3)

    await WelcommingChannel.send("Hi <@!"   str(
        member.id)   ">. I'm glad to see you here.n"
    "Please make sure to check every channel that you have been pinged on")

    ping1 = await CharacterAddChannel.send("<@!"   str(member.id)   ">")
    ping2 = await AutoRolechannel.send("<@!"   str(member.id)   ">")
    await ping1.delete()
    await ping2.delete()
  

Постскриптум:
Я знаю, что мог бы добиться этого, добавив функцию проверки и заставив игрока что-то сделать при подключении к серверу, поэтому я получу контекст действия (например, add_reaction событие или какую-нибудь простую команду, например !verificate ), но я бы хотел избежать такого решения

Ответ №1:

Объект-член на самом деле имеет ссылку на гильдию: https://discordpy.readthedocs.io/en/latest/api.html#discord .Член.гильдия

Просто используйте member.guild .