Comment accepter une chaîne comme argument? (réécriture discord.py)

Dec 17 2020

Essayer de créer une commande discord.py qui accepte une chaîne comme argument. Comment puis-je accepter une chaîne d'un message Discord (bien que si vous pouviez dire comment faire des booléens et des entiers, ce serait utile) comme argument? J'ai essayé mon meilleur Duck-fu dessus en vain.

Importations

os
discord
json
requests
python-dotenv
pymediawiki

Exemple de code

#Existing bot

@bot.command()
async def combinestring(ctx):
#argument should be called arg

#process string
   

(Cela ne me dérange pas d'en ajouter plus si nécessaire.)

Réponses

1 ŁukaszKwieciński Dec 17 2020 at 16:28

C'est littéralement les premières choses qui apparaissent lors de la lecture de l'introduction aux commandes, voici le lien

Voici aussi un exemple

@bot.command()
async def foo(ctx, arg):
    await ctx.send(arg)

# To invoke
# !foo hello
# >>> hello
JoaquimEsteves Dec 17 2020 at 15:41

Avez-vous examiné d'autres questions concernant la réception de messages du bot Discord?

  • https://stackoverflow.com/a/61851683/6595024
  • https://stackoverflow.com/a/49127887/6595024

modifier: réponse mise à jour mise à jour à la question

iamthetrueyes Dec 20 2020 at 17:49

C'est assez simple Si vous voulez prendre un argument sans espaces,

@bot.command()
async def combinestring(ctx, arg: str):
    #your code

Si vous voulez prendre un argument avec des espaces,

@bot.command()
async def combinestring(ctx, *, arg):
    #your code

Fait.