discord.py. Я хотел сделать бота отправляющего сообщение в определённый канал с id из базы данных. Однако мне выводит ошибку ниже:
Вот сама ошибка:discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'send'
Использую базу MongoDB
@client.command()
async def bump(ctx):
guild = ctx.guild
chanid = collection.find_one()["chan"]
text = collection.find_one()["descript"]
baner = collection.find_one()["banner"]
channl = client.get_channel(chanid)
invite = await ctx.channel.create_invite()
yes = discord.Embed(
title = 'Успешная рассылка.',
description = 'Ваше объявление рассылается по партнёрским серверам, ожидайте.',
color = 0x00ccd4
)
await ctx.send(embed=yes)
for guild in client.guilds:
embed = discord.Embed(
title = f'{ctx.guild.name}',
description = f'{text}\n**? | Ccылка на сервер**\n**✅ | [Присоединиться]({invite})**\n\n**? | Владелец сервера:** {ctx.guild.owner}\n**? | Количество участников:** {ctx.guild.member_count}\n`ID: {ctx.guild.id}`',
color = 0x00ccd4
)
embed.set_image(url=baner)
for channel in guild.channels:
await channl.send(embed=embed)
Ответы (1 шт):
Автор решения: itskekoff
→ Ссылка
Вам нужно указать ID канала как INT. Ошибка гласит, то что бот не смог найти канал и отправить в него сообщение.
@client.command()
async def bump(ctx):
guild = ctx.guild
chanid = collection.find_one()["chan"]
text = collection.find_one()["descript"]
baner = collection.find_one()["banner"]
channl = client.get_channel(int(chanid)) # Получаем ID канала как int
invite = await ctx.channel.create_invite()
yes = discord.Embed(
title = 'Успешная рассылка.',
description = 'Ваше объявление рассылается по партнёрским серверам, ожидайте.',
color = 0x00ccd4
)
await ctx.send(embed=yes)
for guild in client.guilds:
embed = discord.Embed(
title = f'{ctx.guild.name}',
description = f'{text}\n**? | Ccылка на сервер**\n**✅ | [Присоединиться]({invite})**\n\n**? | Владелец сервера:** {ctx.guild.owner}\n**? | Количество участников:** {ctx.guild.member_count}\n`ID: {ctx.guild.id}`',
color = 0x00ccd4
)
embed.set_image(url=baner)
for channel in guild.channels:
await channl.send(embed=embed)