@neurotickdev

Можно ли отправить через бота дискорд сообщение в определённый канал по названию?

я не понимаю, как это сделать.
  • Вопрос задан
  • 409 просмотров
Решения вопроса 2
Alexander_tt0
@Alexander_tt0
Интеграл в уме
Какой ЯП? Если ты имеешь ввиду следующее:
Ты написал боту в лс, а он от своего имени отправил в канал.
Python:
@bot.event
async def on_message(message: discord.Message):
    channel = discord.utils.get(message.author.guild.text_channels, id='айди канала')
    if not message.guild:
        if message.author.id == 'админ айди':
            await channel.send(message.content)

@commands.Cog.listener()
async def on_message(self, message: discord.Message):
    channel = discord.utils.get(message.author.guild.text_channels, id='айди канала')
    if not message.guild:
        if message.author.id == 'админ айди':
            await channel.send(message.content)

С другого форума.
Ответ написан
TaggedNorth
@TaggedNorth
Начинающий программист
Для того, чтобы отправить сообщение в любой канал нужно получить его объект. На C# и Python есть специальные декораторы, которые позволяют зарегистрировать async def как функцию, которая является отдельной командой. Вместе с контекстом можно передать упоминание канала (через #).

Если мы говорим об одном и том же канале, то поиск его может занять неприлично много времени. На любом языке программирования, библиотека Discord позволяет получить объект гильдии по её ID, потом весь список текстовых каналов в гильдии, а уже через цикл for можно сверить название канала и то, что мы ищем.

Лучше так не делать, очень долго будет работать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы