无意冒犯,但这些都是你的问题,
-
首先,你没有调用任务,所以它不会运行。
-
二、为什么remind_loop是全局的,有什么意义?
-
第三,您没有传入变量 user 和 mbed 用于提醒循环。
-
第四,你为什么只发送“提醒你停止拖延”?当将所有文本放在一起更合乎逻辑时,向用户展示。
-
五、remind10(ctx, user) 如果是remind(ctx, user : discord.Member)会更好
-
第六,将任务功能放在主功能之外更清楚,在某些情况下,您不能将任务放在功能内部。
反正我做了两个版本的想要你想要的。
第一个要求用户具有管理员权限,因为人们可以对其他人执行此操作。如果您只输入“pp!remind”,它会每 10 分钟(600 秒)提醒自己一次,直到您输入“pp!remind stop”。否则,如果您输入“pp!remind @[Username] start [interval(in seconds)]”,它会提醒用户您在输入的每个间隔中输入。例如“pp!提醒@Bob start 60”。如果您想停止提醒该特定用户,您可以输入“pp!remind @[Username] stop”。
第二个不需要 adim perms 因为这个提醒只对你自己有效。如果您输入“pp!remind”,它会每 10 分钟(600 秒)提醒自己一次,直到您输入“pp!remind stop”。否则,如果您输入“pp!remind start [interval]”,那么它会在每个时间间隔提醒您。例如“pp!remind start 600”(10 分钟)。要停止它运行,只需输入“pp!remind stop”即可。
1.
@bot.command(aliases = ["r","R"])
@commands.has_permissions(administrator = True)
async def remind(ctx,member : discord.Member = "", enabled = "start", interval = 600):
if member == "":
member = bot.get_user(ctx.author.id)
if enabled.lower() == "stop":
reminder.cancel()
elif enabled.lower() == "start":
mbed = discord.Embed(title = f'Reminding you to stop procrastinating every {interval / 60} minutes.', description = 'If you want to deactivate this, ask an admin to enter the command pp!remind stop @[Username]')
mbed.set_author(name = 'Procrastination Police')
reminder.change_interval(seconds = float(interval))
reminder.start(member, mbed)
@tasks.loop(seconds = 600)
async def reminder(member, mbed):
await member.send(embed=mbed)
-
@bot.command(aliases = ["r","R"])
async def remind(ctx, enabled = "start", interval = 600):
member = bot.get_user(ctx.author.id)
if enabled.lower() == "stop":
reminder.cancel()
elif enabled.lower() == "start":
mbed = discord.Embed(title = f'Reminding you to stop procrastinating every {interval / 60} minutes.', description = 'If you want to deactivate this, enter the command pp!remind stop')
mbed.set_author(name = 'Procrastination Police')
reminder.change_interval(seconds = float(interval))
reminder.start(member, mbed)
@tasks.loop(seconds = 600)
async def reminder(member, mbed):
await member.send(embed=mbed)