Discord.js |拆分消息
Discord.js | split a message
我是开发界的新手,我想练习做 JS,我了解到 Discord 机器人可以用这种语言完成,我觉得练习很酷。
我的问题:我想将命令与消息的其余部分分开。我设法将命令与单词分开,但是当我输入几个单词时,它不起作用。这是它的作用:
(!Command HELLO" will send "Command + Hello", but "!command HELLO HI" will not work)
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]);
}
}
}
});
谢谢
splitMessage[1]
从拆分数组中取出第二个单词。因此 Command! Hello world
将是 Hello
。您可能希望从拆分消息的第一个元素之后获取所有内容,如下所示:
splitMessage.slice(1)
那个returns["Hello", "World"]
,所以你只需要将它连接回一个字符串
.join(" ")
我会怎么做:
const [command, ...args] = message.content.split(" ");
switch(command){
case "!Command":
message.channel.send('Command + ' + args.join(" "));
break;
//....
}
正如我在评论中所说:
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);
}
});
我是开发界的新手,我想练习做 JS,我了解到 Discord 机器人可以用这种语言完成,我觉得练习很酷。
我的问题:我想将命令与消息的其余部分分开。我设法将命令与单词分开,但是当我输入几个单词时,它不起作用。这是它的作用:
(!Command HELLO" will send "Command + Hello", but "!command HELLO HI" will not work)
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]);
}
}
}
});
谢谢
splitMessage[1]
从拆分数组中取出第二个单词。因此 Command! Hello world
将是 Hello
。您可能希望从拆分消息的第一个元素之后获取所有内容,如下所示:
splitMessage.slice(1)
那个returns["Hello", "World"]
,所以你只需要将它连接回一个字符串
.join(" ")
我会怎么做:
const [command, ...args] = message.content.split(" ");
switch(command){
case "!Command":
message.channel.send('Command + ' + args.join(" "));
break;
//....
}
正如我在评论中所说:
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);
}
});