我认为我做错了什么。如果我尝试在控制台中使用它来打印消息,那么它确实可以工作,但是如果我尝试将消息发送给不和谐的人,则无法正常工作。
import discord
import asyncio
from discord.ext import commands
import schedule
import time
TOKEN = 'xxx'
client = commands.Bot(command_prefix = '.')
@client.event
async def on_ready():
print('Bot Online.')
async def job():
channel = client.get_channel('XXXX')
messages = ('test')
await client.send_message(channel, messages)
schedule.every(5).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
client.run(TOKEN)
我修改了代码,但仍然收到此消息:
运行时警告:从未等待协程“工作” self._run_job(job)
答案 0 :(得分:1)
您需要在所有功能上使用async
,而不仅仅是准备就绪。函数名称也称为on_member_join
。
@client.event
async def on_member_join(member):
await client.send_message(member, message)
您必须dm成员而不要向通道发送消息的原因是因为未指定通道。
让我们说您想向特定频道发送消息:
@client.event
async def on_member_join(member):
await client.send_message(client.get_channel('12324234183172'), message)
将随机数替换为频道ID。
如果您想了解有关discord.py的更多信息,可以阅读文档或查看教程。 Discord.py Docs
注意:请确保在页面顶部添加import asyncio
。
编辑:
另一个问题是您做了schedule.every(5).seconds.do(job)
。将此行更改为:await schedule.every(5).seconds.do(job)