我试图创建一个不和谐的机器人,在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)