get_channel
не будет работать там, где у вас есть, потому что бот еще не подключился к Discord (это происходит во время run
). Когда бот подключается, он создает внутренние кеши всего, о чем он знает (членов, гильдий, каналов и т. Д. c.). Эти кэши используются различными методами get, но поскольку кеши пусты, эти методы возвращают None
.
Вместо этого вы можете каждый раз получать канал в on_message
или использовать глобальную переменную в on_ready
:
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$hello'):
channel = client.get_channel(1234)
await channel.send('hello')