猿问

提出以下的自定义错误消息

因此,下面的代码在使用时会阻止列表中的服务器和用户ID ?hello,因此我试图提出自定义错误消息。如果用户ID在列表中,它将告诉您User Blacklisted,如果服务器ID在列表中,则表明Server has been Blacklisted。


LIST_OF_USER_IDS = ['34534545546', '34534545546']

LIST_OF_SERVER_IDS = ['34534545546', '34534545546']


def blacklists(users, servers):

    def predicate(ctx):

        return ctx.message.author.id not in users and ctx.message.server.id not in servers

    return commands.check(predicate)


@bot.command(pass_context=True)

@blacklists(LIST_OF_USER_IDS, LIST_OF_SERVER_IDS)

async def hello(ctx):

     await bot.say("Hello {}".format(ctx.message.author.mention))

所以我尝试下面的代码,但出现错误。我只是一个初学者,所以我的代码不正确,因此我需要帮助来解决此问题。


def blacklists(users, servers):

    def predicate(ctx):

        return ctx.message.author.id not in users and ctx.message.server.id not in servers

    return commands.check(predicate)

try:

       if ctx.message.author.id in LIST_OF_USER_IDS:

           raise UserBlacklisted

       elif ctx.message.server.id in LIST_OF_SERVER_IDS:

           raise ServerBlacklisted

       break

   except UserBlacklisted:

       await bot.send_message(ctx.message.channel, "User Blacklisted")

   except ServerBlacklisted:

       await bot.send_message(ctx.message.channel, "Server has been Blacklisted")


吃鸡游戏
浏览 160回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答