不和谐的Python Bot时间表

时间:2018-12-09 00:49:18

标签: python python-3.x scheduled-tasks python-asyncio discord.py

我认为我做错了什么。如果我尝试在控制台中使用它来打印消息,那么它确实可以工作,但是如果我尝试将消息发送给不和谐的人,则无法正常工作。

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)

1 个答案:

答案 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)