我希望我的机器人在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 ')
答案 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")
我刚刚尝试过,并且效果很好