Составьте словарь смайликов для ответов, затем сравните их реакцию с этим словарем.Ниже я использую Client.wait_for_reaction
только для обработки реакций, о которых мы знаем от человека, который вызвал команду.
responses = {'?': 'General Commands',
'?': 'Fun Commands'
'✏': 'Math Commands',
'?': 'Anime Commands'}
@commands.command(pass_context=True)
async def testhelp(self, ctx):
Help = discord.Embed(title="Commands and Usage", description="Choose a catagory by adding a reaction", color=0x0072ff)
for emoji, name in responses.items():
Help.add_field(name=name, value=emoji)
message = await self.client.say(embed=Help)
for emoji in responses:
await self.client.add_reaction(message, emoji=emoji)
res = await self.client.wait_for_reaction(list(responses), user=ctx.message.author)
await self.client.say("{} you chose {}".format(res.user.mention, responses[res.reaction.emoji]))
Если вы хотите, чтобы более значимое сообщение было отправлено в ответ,Вы можете написать сопрограммы, которые принимают контексты и отправлять сообщения.
responses = {'?': 'General Commands',
'?': 'Fun Commands'
'✏': 'Math Commands',
'?': 'Anime Commands'}
async def general_commands(self, ctx):
embed = ...
await self.client.send_message(ctx.message.channel, embed=embed)
@commands.command(pass_context=True)
async def testhelp(self, ctx):
Help = discord.Embed(title="Commands and Usage", description="Choose a catagory by adding a reaction", color=0x0072ff)
for emoji, name in responses.items():
Help.add_field(name=name, value=emoji)
message = await self.client.say(embed=Help)
for emoji in responses:
await self.client.add_reaction(message, emoji=emoji)
res = await self.client.wait_for_reaction(list(responses), user=ctx.message.author)
coro = getattr(self, responses[res.reaction.emoji].lower().replace(' ', '_'))
await coro(ctx)