因此,我正在尝试使用Python 3.9.0和Discord.py编写Discord Bot。我已经开始编写一些代码,以及一些简单的命令,例如在机器人被召唤的通道中发送消息。
现在,我想每10秒运行一次循环(在此示例),但是我无法对其进行初始化。我应该怎么做?
我已经尝试过键入:vote_auto.start(),但是它说它缺少1个必需的positionnal参数:“ ctx”。
import discord
from discord.ext import commands, tasks
from itertools import cycle
bot = commands.Bot(command_prefix = '.')
@bot.event
async def on_ready():
print("Gol.D.Roger Bot est prêt.")
await vote_auto(ctx).start()
@bot.command()
async def votez(ctx):
await ctx.send("N’oubliez pas d’aller VOTER ! C'est un nouveau mois qui
s'annonce et qui dit nouveau cycle dit RESET TOP-SITE ! Faites de votre
mieux pour nous donner la force. C'est aussi pour vous quon veut rester
au TOP ! :star_struck: ET SURTOUT ! Cette semaine compte TRIPLE !!!
:fire: :cent: :clap:")
await ctx.send('https://onepieceanarchy.forumactif.com/t479-10-votes-et-recompenses')
await ctx.send('https://media1.tenor.com/images/4f02345231c710ae0a96098086a46c4f/tenor.gif?itemid=14816222')
@tasks.loop(seconds=10)
async def vote_auto(ctx):
print('Loop Vote Begun')
await ctx.send("N’oubliez pas d’aller VOTER ! C'est un nouveau mois qui s'annonce et qui dit nouveau cycle dit RESET TOP-SITE ! Faites de votre mieux pour nous donner la force. C'est aussi pour vous quon veut rester au TOP ! :star_struck: ET SURTOUT ! Cette semaine compte TRIPLE !!! :fire: :cent: :clap:")
await ctx.send('https://onepieceanarchy.forumactif.com/t479-10-votes-et-recompenses')
await ctx.send('https://media1.tenor.com/images/4f02345231c710ae0a96098086a46c4f/tenor.gif?itemid=14816222')
bot.run('NzYzMTIwNzI2MjI3MTU3MDEz.X3zFjw.butp19UlqX2h1Om9B6tG3Hr7riQ')
如果有人可以帮助我,请
答案 0 :(得分:1)
https://docs.pytest.org/en/latest/example/simple.html#incremental-testing-test-steps
task
没有ctx
参数,ctx
是Docs for discord.ext.tasks。考虑一下,任务中的ctx参数来自哪里?
async def vote_auto(ctx):
应该只是async def vote_auto():
task.start()
不是协程,您只需使用vote_auto.start()
就可以开始执行任务。如评论中所述,您应该在任务中使用command invocation Context,然后使用channel.send
而不是ctx.send
。