【发布时间】:2021-03-09 04:41:23
【问题描述】:
所以,我想为我的 python 机器人的所有子命令编写一个函数,但我不确定它们在 discord.py 中是如何工作的。例如,我这里有这个静音代码。
@bot.command()
async def mute(ctx,member : discord.Member, *, reason=None):
with open("role.json", "r") as f:
roles = json.load(f)
muted_role = discord.utils.get(ctx.guild.roles, id=roles[f"{ctx.guild.id}"]["role_id"])
embed = discord.Embed(color=discord.Color(0xFF0000), title=f"{member} has been muted.")
#sent to DM
embedC=discord.Embed(title=f"{member} has been muted.",color=discord.Color(0xff0000))
embedC.add_field(name=f"Member",value=f"{member}",inline=False)
embedC.add_field(name=f"Moderator",value=f"{ctx.author}",inline=False)
embedC.add_field(name=f"Reason",value=f"{reason}",inline=False)
embedC.set_footer(text=f"Mute was successfully invoked. Expiration is indefinite.")
await member.add_roles(muted_role)
await ctx.send(embed=embed)
await member.send(embed=embedC)
在上面的代码中是我的mute 命令。我知道这与我的问题有点无关,但我想为 bot 创建一个自定义子命令。您可以通过执行 bot bot.remove_command("help") 删除内置命令 help 但如何删除自定义帮助子命令?现在这引出了问题的第二部分,这也是主要问题。如何为自定义子命令编写函数,这样我就不必为每个子命令编写和重复相同的过程?
我尝试做def subcommand(command, error),其中命令是帮助所需的命令,错误是我要输入的错误消息。因此,如果我的静音命令失败,它将要求用户使用我的子命令,而我的子命令将为他们提供有关此命令如何工作的信息。谢谢!
【问题讨论】:
标签: python command bots discord.py