在on_ready中发送消息吗? Python Discord机器人

时间:2020-01-26 04:42:26

标签: python bots discord python-asyncio

我希望我的机器人在on_ready事件中上线时发送一条消息。该行在(on_message)中工作,但我无法使其在(on_ready)

中发送某些内容
@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))
    await message.channel.send('The bot is online ')

2 个答案:

答案 0 :(得分:2)

您没有选择向其发送消息的频道。首先,您需要选择一个频道,然后可以向该频道发送消息。

channel = client.get_channel(12324234183172)
await channel.send('hello')

您可以通过遍历所连接服务器中的频道列表来获取频道ID:

text_channel_list = []
for server in Client.servers:
    for channel in server.channels:
        if channel.type == 'Text':
            text_channel_list.append(channel)

来自 How to get all text channels using discord.py?

来自How do I send a message to a specific channel?中不和谐的python常见问题解答。

答案 1 :(得分:1)

discord.py似乎没有将变量用作通道

@client.event
async def on_ready():
   await client.get_channel("enter channel id here").send("bot is online")

我刚刚尝试过,并且效果很好