我想添加例如作为前缀到我的机器人不和谐他的名字+,+一个空格和命令是这样的
bot, weather Dubai
与
bot,weather Dubai
它有效,但没有空间。 这是我的命令运行文件
if(message.author.bot || message.channel.type === "dm") return;
let prefix = 'bot, ';//botconfig.prefix;
let messageArray = message.content.split(" ")
let cmd = messageArray[0].toLowerCase();
console.log(messageArray);
//let args = messageArray.slice(1);
let args = messageArray.slice(1);
if(!message.content.startsWith(prefix)) return;
let commandfile = bot.commands.get(cmd.slice(prefix.length)) || bot.commands.get(bot.aliases.get(cmd.slice(prefix.length)))
if(commandfile) commandfile.run(bot, message, args);
console.log(commandfile)
那么我怎样才能得到所有空间的命令呢?有没有办法添加它或/
答案 0 :(得分:1)
您只需要先删除前缀,然后将剩余的字符串拆分为数组。第一个元素是命令,其余的是参数。
尝试运行以下代码段:
let message = {
content: 'bot, weather Dubai'
}
let prefix = 'bot, '
// create an args variable that slices off the prefix and splits it into an array
let args = message.content.slice(prefix.length).split(/ +/);
// create a command variable by taking the first element in the array
// and removing it from args
let command = args.shift().toLowerCase();
console.log({
args,
command
})
您的代码将如下所示:
let prefix = 'bot, ';
if (
message.author.bot ||
message.channel.type === 'dm' ||
!message.content.startsWith(prefix)
)
return;
let args = message.content.slice(prefix.length).split(/ +/);
let command = args.shift().toLowerCase();
let commandfile =
bot.commands.get(command) || bot.commands.get(bot.aliases.get(command));
if (commandfile) commandfile.run(bot, message, args);
console.log(commandfile);