好的,这很可能是一个非常简单的答案,但是我在网上找不到同样的东西,也无法根据自己的想法解决。
所以在用于响应前缀的参数中,我有这个:
case 'say':
const usermsg = message.content
message.channel.send(usermsg)
break;
因为它是全部内容,所以它也会发出c!say响应,然后触发自身。但是触发不是问题,我希望消息中不包含c!say。 (我知道我不需要const,我只是想在单独的一行中尝试不同组合的东西)
更新:
因此,我找到了使用参数部分的第二种方法,如下所示:
case 'say':
message.channel.send(args[1])
message.delete(1)
break;
所以这符合我的要求,但仅适用于第二个参数,这意味着它不能使用超过1个单词。因此,我目前的想法是从message.content中减去args [0](c!say短语)。
答案 0 :(得分:0)
找到了解决该问题的方法,而不是发送参数或减去文本,而是使用了replace命令。
case 'say':
let saymsg = message.content
message.channel.send(saymsg.replace("c!say",""))
message.delete(1)
break;
我不敢相信我不记得这个世界会早日取代,但这就是它,它起作用了。
答案 1 :(得分:0)
case 'say':
const usermsg = message.content.split(' ');
message.channel.send(usermsg.slice(0).join(' '));
break;
此代码将吸收完整的用户字符串,切出第一个参数(命令和前缀),然后加入其余消息并通过聊天发送。
答案 2 :(得分:0)
bot.on('message', message => {
var sender = message.author;
var msg = message.content.toUpperCase();
var prefix = '>';
var cont = message.content.slice(prefix.length).split(" ");
var args = cont.slice(1);
for (x = 0; x < profanities.length; x++) {
if (message.content.toUpperCase == profanities[x].toUpperCase()) {
message.channel.send('Hey! Don\'t say that');
message.delete();
return;
}
if (msg.startsWith(prefix + 'SAY')) {
message.delete();
var saymsg = message.content;
message.channel.send(saymsg.replace(prefix + 'say', ''))
}
}
}