[commands] Make when_mentioned always have both mention formats.

This will allow it to work in mobile clients which don't respect the
<@!id> format in case of nicknames.
This commit is contained in:
Rapptz 2017-04-24 00:13:27 -04:00
parent e445fa9335
commit c005ef5d44

View File

@ -41,10 +41,7 @@ from .formatter import HelpFormatter
def when_mentioned(bot, msg):
"""A callable that implements a command prefix equivalent
to being mentioned, e.g. ``@bot ``."""
guild = msg.guild
if guild is not None:
return '{0.me.mention} '.format(guild)
return '{0.user.mention} '.format(bot)
return [bot.user.mention, '<@!%s>' % bot.user.id]
def when_mentioned_or(*prefixes):
"""A callable that implements when mentioned or other prefixes provided.
@ -62,7 +59,7 @@ def when_mentioned_or(*prefixes):
"""
def inner(bot, msg):
r = list(prefixes)
r.append(when_mentioned(bot, msg))
r.extend(when_mentioned(bot, msg))
return r
return inner