为前缀添加一个空格

时间:2021-05-15 10:25:52

标签: javascript node.js discord.js

我想添加例如作为前缀到我的机器人不和谐他的名字+,+一个空格和命令是这样的

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)

那么我怎样才能得到所有空间的命令呢?有没有办法添加它或/

1 个答案:

答案 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);