Отправка сообщений на первый канал. Discord.py

#discord #bots #discord.py

#Discord #боты #discord.py

Вопрос:

Мне нужно сделать так, чтобы, когда бот присоединяется к новому серверу, он записывал конкретное сообщение в самый первый текстовый канал.

Я пытался что-то сделать:

 @bot.event
async def on_guild_join(guild):
    print("Join to "   guild.name)
    guild_to_audiocontroller[guild] = AudioController(bot, guild)
    await guild_to_audiocontroller[guild].register_voice_channel(guild.voice_channels[0])
    for guild in bot.guilds:
        await guild.text_channels[0].send(join_message)
  

Но он не хочет работать, как мне это сделать?

Комментарии:

1. Что вы подразумеваете под «это не хочет работать»? У вас есть какое-либо сообщение об ошибке?

2. @Mr_Spaar нет, он просто игнорирует эти строки

3. Если этот код работал, каждый раз, когда ваш бот присоединялся к серверу, он отправлял ваше сообщение о присоединении на каждый отдельный сервер, членом которого он является, это намеренно?

4. @derw О, нет, мне нужно, чтобы он отправлял только тому, к кому он присоединился. Вы не знаете, как это сделать?

Ответ №1:

Пока у вашего бота есть Send Messages разрешения, все, что вам нужно для отправки сообщения при присоединении, это:

 @bot.event
async def on_guild_join(guild):
    await guild.text_channels[0].send("I have joined the server")