有没有办法阻止discord.py中已经执行的命令完成?

时间:2019-12-30 13:12:18

标签: python discord.py

如果用户沿.stoprepeat行执行命令,则我想在完成之前取消的命令是重复命令。

import discord
from discord.ext import commands, tasks
import asyncio
import string
import time
import random
import datetime
from datetime import datetime
import os

class Botting(commands.Cog):
    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_ready(self):
        print("Botting Cog is online and connected to Discord")

    @commands.command()
    async def repeat(self, ctx, times: int, *, content):
        """Repeats a message multiple times."""
        for i in range(times):
            await ctx.send(content)
            await asyncio.sleep(0.75)

def setup(client):
    client.add_cog(Botting(client))

1 个答案:

答案 0 :(得分:0)

您可以使用asyncio.Task来运行单独定义的协程。
您必须将Task分配给齿轮的属性,并在另一个命令中使用它来取消它。

如果您希望该命令同时运行多次,则可以存储Task的列表,并在另一个命令中取消每个命令。