Вот у меня есть код по которому в должно отправляться сообщения в канал который указан в сообщении:
@bot.command()
async def news(ctx,channel_id, text):
emb= discord.Embed(title='Новость!!!',description=f'{text}', timestamp=ctx.message.created_at)
channel= bot.get_channel(channel_id)
await channel.send(embed=emb)
Писал по одной из ваших вопросов, но выдает ошибку:
Ignoring exception in command news:
2020-08-05T12:54:20.983670+00:00 app[worker.1]: Traceback (most recent call last):
2020-08-05T12:54:20.983698+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.8/site-packages/discord/ext/commands/core.py", line 83, in wrapped
2020-08-05T12:54:20.983698+00:00 app[worker.1]: ret = await coro(*args, **kwargs)
2020-08-05T12:54:20.983701+00:00 app[worker.1]: File "Bot.py", line 248, in news
2020-08-05T12:54:20.983702+00:00 app[worker.1]: await channel.send(embed=emb)
2020-08-05T12:54:20.983729+00:00 app[worker.1]: AttributeError: 'NoneType' object has no attribute 'send'
2020-08-05T12:54:20.983732+00:00 app[worker.1]:
2020-08-05T12:54:20.983733+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2020-08-05T12:54:20.983733+00:00 app[worker.1]:
2020-08-05T12:54:20.983736+00:00 app[worker.1]: Traceback (most recent call last):
2020-08-05T12:54:20.983770+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 892, in invoke
2020-08-05T12:54:20.983770+00:00 app[worker.1]: await ctx.command.invoke(ctx)
2020-08-05T12:54:20.983771+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.8/site-packages/discord/ext/commands/core.py", line 797, in invoke
2020-08-05T12:54:20.983771+00:00 app[worker.1]: await injected(*ctx.args, **ctx.kwargs)
2020-08-05T12:54:20.983774+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.8/site-packages/discord/ext/commands/core.py", line 92, in wrapped
2020-08-05T12:54:20.983775+00:00 app[worker.1]: raise CommandInvokeError(exc) from exc
2020-08-05T12:54:20.983813+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'send'
А если написать:
@bot.command()
async def news(ctx,channel_id, text):
emb= discord.Embed(title='Новость!!!',description=f'{text}', timestamp=ctx.message.created_at)
channel= bot.get_channel(channel_id)
await ctx.channel.send(embed=emb)
То будет отправлено в тот же канал, в котором была написана команда.
Можно ли написать как то по-другому?