Hé, j'utilise pycharm pour créer un bot discord et j'ai ce problème: la commande de préfixe ne fonctionne pas, peu importe le nombre de fois où j'exécute mon code et je l'ai vérifié, je ne pense pas avoir commis d'erreur, aidez-moi s'il vous plaît. mon code:
import random from discord.ext import commands client = commands.Bot(command_prefix='&') @client.command() @commands.has_permissions(manage_messages=True) async def clear(ctx, amount=2): await ctx.channel.purge(limit=amount) client.run('token')
3 Réponses :
Essayez de lui donner un nom: @client.command(name="clear")
ne devrait pas faire de différence, si aucun nom n'est fourni, la bibliothèque utilisera le nom de la fonction comme nom de la commande
Je suppose que votre token est stocké en tant que variable. Et je suggère, bien que cela ne soit pas obligatoire, d'ajouter des sauts de ligne au lieu qu'il s'agisse d'un gros bloc.
Et, 1. Utilisez une impression ("Cela devrait fonctionner") à des fins de débogage. 2. Assurez-vous que votre bot dispose des autorisations, assurez-vous que lorsque vous l'avez ajouté, vous avez coché la case Manage Messages
ou Administrator
. Si vous ne vous souvenez pas si vous l'avez fait, pas de soucis, vous pouvez à nouveau ajouter le bot avec les autorisations appropriées via les paramètres de page OAuth2 de vos bots qui peuvent être trouvés ici .
faux, vous n'avez pas besoin de passer ctx en tant qu'arg au décorateur de command
, en effet cela lancera à la place une erreur NameError car ctx
n'est pas défini.
Je suis désolé de penser à un nom là-bas, il devrait être passé dans la définition de la commande, ce que l'auteur a fait. Mes excuses.
Pour ce faire, vous devez avoir Import discord
import discord
Ils semblent avoir déjà importé de discord
utilisant from discord.ext import commands
, donc cela ne ressemble pas au problème. Cependant, la question ne précise pas quel est réellement le problème ou l'erreur.
quelle est l'erreur / comment la déclenchez-vous? Je ne vois pas de commande nommée
prefix
, à quelle commande faites-vous référence?Votre bot dispose-
manage_messages
autorisationmanage_messages
? Vous devriez l'avoir activé dans le portail des développeurs lorsque vous générez le lien pour l'inviter. Vous pouvez vérifier son rôle pour voir les autorisations.