Warm tip: This article is reproduced from serverfault.com, please click

bots-如果成员没有角色,Discord.py将发送错误消息

(bots - Discord.py send error msg if member don't have role)

发布于 2020-12-02 12:19:48

嘿,我是discord.py的初学者,需要一些帮助。

我正在制作一个不和谐的bot,并且我有一个命令,只有具有“ Staff”角色的成员才能使用,但是如果你没有该角色,我想要一个发送嵌入信息的命令,该命令显示“ Staff角色是使用此命令的要求命令!”。但是我不知道该怎么做,我已经尝试了所有方法,但是没有任何效果= /

这就是我到目前为止

# Moderator Commands List
@commands.has_role('Staff')
@bot.command(name='help_mod')
async def help_mod(context):
    my_embed = discord.Embed(title="Moderator Plugin", color=0xFFC71C)
    my_embed.add_field(name="Ban a member from the server", value="``?ban [member] (optional reason)``", inline=False)
    my_embed.add_field(name="Temporarily ban a member from the server", value="``?tempban [member] [duration] (optional reason)``", inline=False)
    my_embed.add_field(name="Mute a member in the whole server", value="``?mute [member] (optional reason)``", inline=True)
    my_embed.add_field(name="Temporarily mute a member in the server", value="``?tempmute [member] [duration] (optional reason)``", inline=False)
    my_embed.add_field(name="Kick a member from the server", value="``?kick [member] (optional reason)``", inline=False)
    my_embed.add_field(name="Unban a member", value="``?unban [member]``", inline=False)
    my_embed.add_field(name="Unmute a member", value="``?unmute [member]``", inline=False)
    my_embed.set_thumbnail(url='https://cdn.discordapp.com/attachments/765665083082407976/767502481922981928/ModHammer.png')
    my_embed.set_footer(text="Work in progress, these commands are not in function yet.")

感谢你提供的所有帮助!

Questioner
Sally
Viewed
0
Łukasz Kwieciński 2020-12-02 20:27:04

你可以在错误处理程序中执行此操作:

@bot.command(name='help_mod')
@commands.has_role('Staff')
async def help_mod(ctx):
   # ...


@help_mod.error # <- name of the command + .error
async def help_mod_error(ctx, error):
    if isinstance(error, commands.MissingRole):
        await ctx.send("Staff role is a requirement to use this command!")

这是错误处理的介绍