(This is my first post by the way <3) I am making a discord.py bot and I want a command that will either list warnings (warnings list ) for a user, clear warnings for a user (warnings clear ) or give a help message for the command (anything that does not fit the other two commands)! Here is the code:
@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)
I have tried an if statement and using @warnings.error but it has not worked, I have also searched the previous questions with this same error message but they are not quite the same! :( By the way the code itself isnt the problem :)
What I expect:
!warnings
>[Something help info.]
What I get:
raise MissingRequiredArgument(param) discord.ext.commands.errors.MissingRequiredArgument: usage is a required argument that is missing.
Advertisement
Answer
use param=None
to do a sub command, maybe you can search how to make a custom help
, that’ll help you.
@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") ...