quelque chose comme ça.
@client.event async def on_reaction_add(reaction, user): a = await client.say("React to see help") if reaction.emoji == "ð": await client.edit_message(a, "Moderator commands")
3 Réponses :
Vous devez envoyer un message lorsque le bot est disponible en ligne, puis surveiller ce message pour de nouvelles réactions. Le moyen le plus simple de faire est avec une boucle de fond à l'aide de Client.wait_for code>
, au lieu de la On_reaction_Add code> événement. La fonction
réaction_check code> est de faciliter la recherche des bonnes réactions.
from collections.abc import Sequence
from discord import Client
grin = "\N{GRINNING FACE}"
def make_sequence(seq):
if seq is None:
return ()
if isinstance(seq, Sequence) and not isinstance(seq, str):
return seq
else:
return (seq,)
def reaction_check(message=None, emoji=None, author=None, ignore_bot=True):
message = make_sequence(message)
message = tuple(m.id for m in message)
emoji = make_sequence(emoji)
author = make_sequence(author)
def check(reaction, user):
if ignore_bot and user.bot:
return False
if message and reaction.message.id not in message:
return False
if emoji and reaction.emoji not in emoji:
return False
if author and user not in author:
return False
return True
return check
client = Client()
async def background_loop():
await client.wait_until_ready()
channel = client.get_channel(int(*SOME CHANNEL ID*))
msg = await channel.send("React to see help")
await msg.add_reaction(grin)
while not client.is_closed:
res = await client.wait_for('reaction_add', check=reaction_check(message=msg, emoji=grin))
if res: # not None
await msg.edit(content="Moderator commands")
client.loop.create_task(background_loop())
client.run("TOKEN")
ou vous pouvez utiliser l'emballage Disclaimer: je suis l'auteur de discord_interactive_help code>
, qui vous permet de Affichez une bande de pages et laissez votre utilisateur interagir avec ce manuel à travers des réactions forte>. p>
discord_interactive_help code>. em> p>
Vous devriez être capable de détecter la réaction avec votre code actuel, votre problème serait votre modification.
channel = a.channel msg_id = a.id if reaction.emoji == "ð": msg = await channel.fetch_message(msg_id) await msg.edit(content = content)
Veuillez éditer votre question afin que nous comprenions que vous utilisez discord.py pour créer un bot de discorde. En outre, fournissez un exemple de code de travail