我有一个像这样的 Discord.js 命令:
'broadcast': (msg) => {
let message2broadcast = msg.content.substr(prefix + "broadcast ".length);
if (!msg.channel.permissionsFor(msg.member).hasPermission("ADMINISTRATOR")) {
msg.channel.sendMessage(msg.author + " | No permissions! :x:");
return;
} else {
if (!message2broadcast) {
msg.channel.sendMessage(msg.author + " | No message entered. :x:");
} else {
let tosend2 = ["`Sender:`", msg.author, "`Server:`", msg.guild.name, "`Message:`", message2broadcast];
msg.channel.guild.members.forEach(user => {
user.send(tosend2.join('\n'));
});
msg.channel.sendMessage(msg.author + " | Successfully broadcasted. :white_check_mark:");
}
}
}
我希望它通过键入来运行
#broadcast 嗨,你好吗?
所以它会发送“嗨,你好吗?”致所有公会成员。
但是它目前将整个命令作为消息发送...因此它将以下内容发送给所有公会的成员:#broadcast 嗨,你好吗?
我知道问题出在这一行:
let message2broadcast = msg.content.substr(prefix + "broadcast ".length);
<小时/>
编辑:我尝试这样做:
let message2broadcast = msg.content.split(' ')[1];
但这只会从输入的消息中得到“Hi”。
<小时/>我想获取包含空格的参数。
如有任何帮助,我们将不胜感激。
谢谢!
最佳答案
let message2broadcast = msg.content.split(' ').splice(1).join(' ')
它将消息分割成一个数组,删除第一个值,然后加入剩余的值。
关于javascript - 获取包含空格的命令参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51499406/