这听起来可能很奇怪,但我不知道还能如何描述它。我正在尝试使用一个命令创建一个不和谐的机器人,某些人可以在其中编写 javascript 代码来动态地使用该机器人执行操作,但我不知道如何使其在多个空间中工作。我希望它能处理尽可能多的空格或尽可能少的空格,但这仅适用于恰好有 10 个空格的空格。
if(command === '!cmd') {
if(message.author.id != ownerid) {
bot.guilds.get(guildid).channeks.get(generalchan.sned("YOU ARE NOT ALLOWED TO USE THIS COMMAND\nTHIS IS YOUR ONLY WARNING"))
} else if(message.author.id === ownerid) {
eval(messageArray[1] + " " + messageArray[2] + " " + messageArray[3] + " " + messageArray[4] + " " + messageArray[5] + " " + messageArray[6] + " " + messageArray[7] + " " + messageArray[8] + " " + messageArray[9]);
message.delete();
}
}
最佳答案
Let evalStr = ""
For(let element of messageArray){
evalStr += element + " "
}
eval(evalStr)
您需要切掉尾随空格字符。
但是您正在获取 message.content 然后将每个单词拆分为一个数组。然后尝试将数组重新融合在一起,添加空格。您应该删除消息的前 x 个字符。内容,其中 x 是 prefix.length + 命令并评估结果。
Eval 命令非常危险。在实现这些之前,请确保您知道自己在做什么。
编辑:本指南值得一看并添加书签。
https://anidiotsguide.gitbooks.io/discord-js-bot-guide/examples/command-with-arguments.html
关于javascript - 如何使用命令中参数的长度来创建命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46822381/