Bonjour,
j'ai crée un bot discord en python
voici son code:
import discord
from discord.ext import commands
TOKEN = 'Je vais quand même pas vous dire le Token de mon bot xD'
description = '''Bot Python'''
bot = commands.Bot(command_prefix='?', description=description)
@bot.event
async def on_ready():
print('Logged in as')
print(bot.user.name)
print(bot.user.id)
print('------')
@bot.command()
async def hello():
"""Says Hello World"""
await bot.say("Hellod")
bot.run(TOKEN)
quand je le lance tout va bien et sur mon serveur je peux faire ?help
mais quand je veux executer ?hello, ça me met :
Traceback (most recent call last): File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\client.py", line 270, in _run_event await coro(*args, **kwargs) File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 901, in on_message await self.process_commands(message) File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 898, in process_commands await self.invoke(ctx) File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 863, in invoke await ctx.command.invoke(ctx) File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\core.py", line 721, in invoke await self.prepare(ctx) File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\core.py", line 685, in prepare await self._parse_arguments(ctx) File "C:\Users\tomba\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\core.py", line 595, in _parse_arguments raise discord.ClientException(fmt.format(self)) discord.errors.ClientException: Callback for hello command is missing "ctx" parameter.
savez vous ce qui ne marche pas ?
Si oui merci d'avance.
Ta fonction doit recevoir un paramètre, or dans sa définition, tu n'as pas défini d'argument.
Puis on regarde la doc sur ce qui se dit avec ce qu'est ce paramètre ctx que l'on reçoit.
https://discordpy.readthedocs.io/en/latest/ext/commands/commands.html
30 oct. 2019 à 19:20
30 oct. 2019 à 19:23
Modifié le 30 oct. 2019 à 19:34
A command must always have at least one parameter, ctx, which is the Context as the first one.
C'est quand même de l'anglais assez simple à comprendre.
Et puis y a des exemples sur cette page.