- Discord.py reaction
- Supprimer reaction story instagram ✓ - Forum Instagram
- Reaction story instagram - Accueil - Réseaux sociaux
- Voir réaction story facebook - Guide
- Discord.py (client.get_channel) ✓ - Forum Python
- Comment supprimer une réaction de quelqu'un sur facebook - Guide
1 réponse
1 janv. 2023 à 18:58
Pour obtenir une variable similaire à ctx.message.author
mais qui représente le rival plutôt que l'auteur du message, vous pouvez utiliser la méthode get_member
de la classe Guild
de Discord.
Voici comment vous pouvez obtenir un objet Member
représentant le rival dans votre code :
# Récupération de l'ID du rival à partir de la mention rivalID = user.split("@") rivalID = rivalID[1].split(">") rivalID = rivalID[0] # Récupération de l'objet Member correspondant au rival guild = ctx.guild rival = guild.get_member(int(rivalID))
Vous pouvez ensuite utiliser rival comme une variable similaire à ctx.message.author dans votre code. Par exemple, vous pouvez l'utiliser dans la fonction checkEmoji de la manière suivante :
def checkEmoji(reaction, rival): return rival == reaction.user and message.id == reaction.message.id and str(reaction.emoji) == "✅" or str(reaction.emoji) == "❌" reaction, rival = await bot.wait_for("reaction_add", timeout = 10, check = checkEmoji)
Voici comment vous pourriez procéder pour obtenir la réaction d'un utilisateur spécifique (ici, le "rival") :
Stockez l'objet Member du rival dans une variable, que vous pouvez obtenir en utilisant la méthode discord.utils.get et en passant en paramètres le serveur et l'ID du rival :
rival = discord.utils.get(ctx.guild.members, id=rivalID)
Modifiez la fonction de callback checkEmoji pour qu'elle prenne en paramètre l'objet Member du rival au lieu de rival :
def checkEmoji(reaction, member):
Modifiez la condition de la fonction pour vérifier si l'auteur de la réaction est le rival plutôt que l'auteur du message original :
return member == reaction.user and message.id == reaction.message.id and str(reaction.emoji) == "✅" or str(reaction.emoji) == "❌"
Modifiez la ligne où vous appelez bot.wait_for pour passer l'objet Member du rival en tant que deuxième paramètre de la fonction de callback :
reaction, member = await bot.wait_for("reaction_add", timeout = 10, check = checkEmoji)
Vous devriez maintenant être en mesure d'obtenir la réaction du rival et de la traiter correctement. N'oubliez pas de mettre à jour votre code en conséquence.