【发布时间】:2021-02-02 14:26:07
【问题描述】:
所以,我想为我和我的朋友创建自己的不和谐服务器,并且我希望它具有一些机器人功能......所以我开始编码......长话短说我搞砸了,经过几个小时的尝试找到我放弃的解决方案。
第一个是一个词过滤器,工作得很好,我无法标记任何人.. 它应该删除所说的消息并发出一条消息,就像“@example,不要这么说!”
client.on('message', async(msg) => {
if(msg.author.bot) return;
if(!msg.guild) return;
var array = ['example1, 'example2'];
if(!msg.member.hasPermission('MANAGE_MESSAGES')){
if(array.some(w => ` ${msg.content.toLowerCase()} `.includes(` ${w}`))){
msg.delete();
msg.channel.send(`${client.user.tag}`)
return;
}
}
});
我的第二个问题:
我尝试创建一个命令,每次您在 Discord 上输入 (prefix)say + "text" 时,机器人都会说出该消息。最好的办法是您可以在一个文本通道中输入所有命令,并且能够选择我希望机器人也输入该消息的通道。简单的变体对我来说也很好。这是我的代码:
const isValidCommand = (message, cmdName) => message.content.toLowerCase().startsWith(prefix + cmdName);
require('dotenv').config();
client.on('message', function(message) {
if(message.author.bot) return;
else if(isValidCommand(message, "say")) {
let marketing = message.content.substring(5);
let marketingchannel = client.channels.cache.get('766732225185054740');
let logsChannel = client.channels.cache.find(channel => channel.name.toLowerCase() === 'logs');
if(logsChannel)
logsChannel.send(marketing);
}
});
我真的希望我能让它工作..
提前致谢!
【问题讨论】:
-
嘿,您在第一个代码块中缺少一个结束 '。就在 example1 之后和 , 之前在您的 array 变量中。它应该看起来像: var array = ['example1', 'example2'];
标签: javascript discord.js bots