我对开发世界很陌生,我想练习JS,我了解到Discord机器人可以用这种语言完成,我发现练习很酷。 我的问题:我想将命令与消息的其余部分分开。我设法将命令与单词分开,但是当我输入几个单词时,它不起作用(“!命令HELLO”将发送“Command + Hello”,但“!command HELLO HI”将不起作用)
const PREFIX = "!";
bot.on('message', function(message) {
if(message.content[0] === PREFIX) {
let splitMessage = message.content.split(" ");
if(splitMessage[0] === '!command') {
if(splitMessage.length === 2) {
message.channel.send('Command + ' + splitMessage[1]);
}
}
}
});
由于
答案 0 :(得分:0)
splitMessage[1]
从分割数组中获取第二个单词。因此,对于Command! Hello world
,它将是Hello
。您可能希望从分割消息中的第一个元素之后获取所有内容,如下所示:
splitMessage.slice(1)
返回["Hello", "World"]
,因此您只需将其连接回字符串
.join(" ")
我将如何做到这一点:
const [command, ...args] = message.content.split(" ");
switch(command){
case "!Command":
message.channel.send('Command + ' + args.join(" "));
break;
//....
}
答案 1 :(得分:0)
正如我在评论中所述:
const PREFIX = "!";
bot.on('message', function(message) {
if(message.content[0] === PREFIX) {
let command = message.content.substring(message.content.indexOf(" ") + 1, message.content.length);
message.channel.send('Command + ' + command);
}
});