¿Cómo acepto una cadena como argumento? (discord.py reescribir)

Dec 17 2020

Intentando crear un comando discord.py que acepte una cadena como argumento. ¿Cómo acepto una cadena de un mensaje de Discord (aunque si pudiera decir cómo hacer booleanos y enteros, sería útil) como argumento? Hice mi mejor pato-fu en vano.

Importaciones

os
discord
json
requests
python-dotenv
pymediawiki

Código de ejemplo

#Existing bot

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

#process string
   

(No me importa agregar más si es necesario).

Respuestas

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

Es literalmente lo primero que aparece al leer la introducción a los comandos, aquí está el enlace

También aquí hay un ejemplo

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

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

¿Ha mirado otras preguntas sobre la recepción de mensajes del bot de discordia?

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

editar: Respuesta actualizada dada actualización a la pregunta

iamthetrueyes Dec 20 2020 at 17:49

Es bastante simple. Si quieres tener un argumento sin espacios,

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

Si quieres tomar un argumento con espacios,

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

Hecho.