Open ColibriXD opened 1 year ago
La première chose que je vois est que dans ta commande say tu utilises un mauvais Type Hinting, c'est commands.Context
et non commands.context
. Ensuite, je pense que le problème majeur vient de la version que tu utilises, le créateur de discord.py adore utiliser les dernières fonctionnalités du langage donc je pense que les commandes hybrides utilisent des fonctionnalités qui ne sont pas présentes en 3.8
Si tu as plus de détails sur ton erreur je pourrais peut-être mieux trouver mais sinon essaye de changer de version et regarde si ça fonctionne.
merci pour ta réponse aussi rapide, tu m'as enormement aider, continie t'es vidéo elle sont bien expliqués, complète et récente. et merci encore mile fois
me revoila avec un autre problème, voici mon code ( c'est une commande de ban )
@bot.hybrid_command(name="ban")
async def ban(ctx: commands.Context, member : discord.Member, * , reason : str = "" )-> discord.Message:
is_in_private_message = ctx.guild is None and isinstance(ctx.author, discord.User)
if is_in_private_message :
return await ctx.send("Cette commande ne fonctionne pas en mp")
has_permission = ctx.author.guild_permissions.ban_members
if not has_permission :
return await ctx.send("vous n'avez pas la permissions de bannir un utilisateur")
is_banned = ctx.author.top_role > member.top_role
if not is_banned:
return await ctx.send("vous ne pouvez pas bannir cette utilisateur car il suppérieure à votre role")
if reason == "":
reason = "aucune justification fournit par le moderateur"
banEmbed = discord.Embed (
title = "Modération",
description="{menber} à été banni par **{ctx.author}** pour la raison suivante : **{reason}**",
color=discord.Color.blue()
)
banUserEmbed = discord.Embed (
title = "Modération",
description="Vous avez été banni par **{ctx.author}** pour la raison suivante : **{reason}**.\n Vous pouvez contester la décision en remplissant ce formulaire : example.com ",
color=discord.Color.blue()
)
banEmbed.set.thumbnail(url=ctx.guild.icon.url)
await ctx.guild.ban(member, reason=reason)
await member.send (embed=banUserEmbed)
return await ctx.send(embed=banEmbed)
Désolé d'avoir mis autant de temps à répondre.
J'ai du mal à comprendre d'où pourrait venir ton erreur, est-ce possible que tu montre l'erreur aussi et que le code soit formaté en Markdown Python ?
salut, j'ai suivis tes vidéos mais en voulant créer mon hybrid command celle ci ne s'affiche pas et ne fonctionne pas, pourrais tu m'aider ?
import discord from discord.ext import commands
class Bot(commands.Bot): def init(self): super().init( command_prefix='!', intents=discord.Intents.all() )
async def on_ready(self): print('-------------') print(f'Logged in as {self.user}') print(f'Bot is ready.')
async def setup_hook(self): await self.tree.sync()
bot = Bot()
@bot.hybrid_command(name="say") async def say(ctx: commands.context, message : str)-> discord.Message: return await ctx.send(message)
bot.run("token")
pour information j'utilise python 3.8.6
merci par avance @AliiiBenn