AttributeError:'NoneType'对象没有属性'send'Discord.py rewrite

时间:2020-05-27 22:31:05

标签: python-3.x discord.py-rewrite

我正在尝试向特定频道发送消息。我仍然无法弄清楚该怎么做。非常感谢您的帮助。

import keep_alive
import discord

client = discord.Client()

channel = client.get_channel('ID'`enter code here`)

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$hello'):
        await channel.send('hello')


keep_alive.keep_alive()

client.run('ID')

1 个答案:

答案 0 :(得分:0)

get_channel在您拥有的地方无法使用,因为该漫游器尚未连接到不和谐状态(发生在run中)。当漫游器连接时,它将建立它知道的所有事物(成员,行会,渠道等)的内部缓存。这些缓存是各种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')