Levar mensagem de erro personalizada para
Portanto, o código abaixo bloqueia o ID do servidor e do usuário na lista quando eles usam?hello
, estou tentando gerar uma mensagem de erro personalizada. Se o ID do usuário estiver na lista, ele informaráUser Blacklisted
e se o ID do servidor estiver na lista, ele informará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))
Então, eu tentei abaixo do código, mas recebendo erro. Como sou iniciante, meu código não está correto, por isso preciso de uma ajuda para corrigir isso.
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")