Discord.py机器人清除

Discord.py机器人清除,discord,discord.py-rewrite,python-3.8,Discord,Discord.py Rewrite,Python 3.8,好了,伙计们,我需要帮助。基本上我是在制造一个不和谐机器人。清除(清除)命令有问题。这是我到目前为止的代码: @client.command(aliases= ['purge','delete']) @commands.has_permissions(manage_messages=True) async def clear(ctx, amount : int): if amount == None: await ctx.channel.purge(limit=1000000

好了,伙计们,我需要帮助。基本上我是在制造一个不和谐机器人。清除(清除)命令有问题。这是我到目前为止的代码:

@client.command(aliases= ['purge','delete'])
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount : int):
   if amount == None:
       await ctx.channel.purge(limit=1000000)
   else:
       await ctx.channel.purge(limit=amount)
我这里的问题是,如果金额==无。 请帮帮我!
我收到一个错误,我缺少所需的参数…

这是因为您没有给
金额
默认值
None
。以下是定义函数的方式:

@client.command(aliases= ['purge','delete'])
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount=None): # Set default value as None
    if amount == None:
        await ctx.channel.purge(limit=1000000)
    else:
        try:
            int(amount)
        except: # Error handler
            await ctx.send('Please enter a valid integer as amount.')
        else:
            await ctx.channel.purge(limit=amount)

这是因为您没有给出默认值
amount
。以下是定义函数的方式:

@client.command(aliases= ['purge','delete'])
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount=None): # Set default value as None
    if amount == None:
        await ctx.channel.purge(limit=1000000)
    else:
        try:
            int(amount)
        except: # Error handler
            await ctx.send('Please enter a valid integer as amount.')
        else:
            await ctx.channel.purge(limit=amount)
您可以这样做:

@client.command(aliases= ['purge','delete'])
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount :int = -1):
   if amount == -1:
       await ctx.channel.purge(limit=1000000)
   else:
       await ctx.channel.purge(limit=amount)
我认为应该可以,如果客户不提供参数,金额将设置为“-1”

您可以这样做:

@client.command(aliases= ['purge','delete'])
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount :int = -1):
   if amount == -1:
       await ctx.channel.purge(limit=1000000)
   else:
       await ctx.channel.purge(limit=amount)
我认为应该可以,如果客户机不提供参数,金额将设置为“-1”

尝试以下方法:

@client.command(别名=['purge','delete'])
@commands.has_权限(manage_messages=True)
异步def清除(ctx,金额:int=1000000):
等待ctx.channel.purge(限制=数量)
这应该是可行的,因为我有一个清晰的命令,看起来几乎完全像这样。
amount
参数正在转换为int,如果客户端不提供参数,则amount将设置为
1000000

尝试以下操作:

@client.command(别名=['purge','delete'])
@commands.has_权限(manage_messages=True)
异步def清除(ctx,金额:int=1000000):
等待ctx.channel.purge(限制=数量)
这应该是可行的,因为我有一个清晰的命令,看起来几乎完全像这样。
amount
参数正在转换为int,如果客户端不提供参数,该金额将设置为
1000000

此参数对我有效

@client.command()
@has_permissions(manage_messages = True)
async def clear(ctx , amount=5):
  await ctx.channel.purge(limit=amount + 1)
我是从youtuber频道得到的,你可以在clear命令后输入你想清除的消息数,例如:
-清除10

这一个对我有用

@client.command()
@has_permissions(manage_messages = True)
async def clear(ctx , amount=5):
  await ctx.channel.purge(limit=amount + 1)
我是从youtuber频道得到的,你可以在clear命令后输入你想清除的消息数,例如:
-clear 10

您能否在问题中包含整个错误消息以及如何在discord中调用命令?您能否在问题中包含整个错误消息以及如何在discord中调用命令?