发送到channel时接受参数



我试图创建一个不和谐的机器人,在2个参数格式与文本,然后发送到一个频道。使用这段代码,它的工作,但它不发送自定义的东西。它只能是预定义的我该怎么做呢?

if message.content == '!settrend':
async def args(arg1, arg2):
output = ''
output += f"Changed trend of {arg1} to {arg2}"
await message.channel.send(output)
await args("test", "test") # I want this to be able to have custom arguments by the command.

不是检查message.content == '!settrend',你需要先用空格分隔message.content,然后检查你得到的第一个令牌是'!settrend'

将第一行替换为:

arguments = message.content.split()
if arguments[0] == '!settrend':

然后,在结尾:

await args(arguments[1], arguments[2])

请注意,此解决方案要求两个参数不包含空格。如果您希望能够使用引号指定间隔参数(例如:!settrend "first argument" "second argument"),请使用shlex.split而不是标准的字符串分割方法:

import shlex
arguments = shlex.split(message.content)

最新更新