首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建子命令而不使用触发器discord.ext.commands.errors.MissingRequiredArgument?

如何创建子命令而不使用触发器discord.ext.commands.errors.MissingRequiredArgument?
EN

Stack Overflow用户
提问于 2021-07-23 16:40:22
回答 1查看 44关注 0票数 0

(顺便说一下,这是我的第一篇文章<3)我正在制作一个discord.py机器人,我想要一个命令,它可以为用户列出警告(警告列表),清除用户的警告(清除警告),或者为命令提供帮助消息(任何不适合其他两个命令的命令)!代码如下:

代码语言:javascript
运行
复制
    @commands.command(name="warnings")
    async def warnings(self, ctx, usage, user):
        if usage == "clear":
            f = open(user + ".txt", "w")
            f.write("")
            f.close()
            embed = discord.Embed(title="Warnings removed", description=f"I have removed all warnings for <@!{user}>", colour=discord.Colour.green())
            await ctx.channel.send(embed=embed)
        elif usage == "list":
            try:
                f = open(user + ".txt", "r")
                readResult = f.read()
                if readResult.startswith("Reason: "):
                    embed = discord.Embed(title="Warnings for: <@!" + user + ">", description=readResult, colour=discord.Colour.red())
                    await ctx.channel.send(embed=embed)
                else:
                    embed = discord.Embed(title="This user has no warnings", colour=discord.Colour.green())
                    await ctx.channel.send(embed=embed)
            except:
                embed = discord.Embed(title="This user has no warnings", colour=discord.Colour.green())
                await ctx.channel.send(embed=embed)

我已经尝试了一个if语句并使用@warnings.error,但是它不起作用,我也用同样的错误消息搜索了前面的问题,但它们并不完全相同!:(顺便说一下,代码本身不是问题所在:)

我期望的是:

!警告

代码语言:javascript
运行
复制
>[Something help info.]

我得到的是:

代码语言:javascript
运行
复制
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: usage is a required argument that is missing.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-23 16:59:02

使用param=None做一个子命令,也许你可以搜索如何制作一个自定义的help,这会对你有帮助。

代码语言:javascript
运行
复制
@commands.command(name="warnings")
    async def warnings(self, ctx, usage=None, user=None):
        
    if usage is None:
        pass   # do something here
    elif usage == "clear":
            f = open(user + ".txt", "w")
    ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68496422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档