我正在寻找帮助/指导/建议...我在这里有不和谐的机器人说命令,花了我一段时间才能使它走到现在并能正常工作。我正在寻找的是适应当前代码,以便我可以检查“ .say”之后的单词是否为“ #channel”,如果是,则在此处发送消息。即“ .say #feedback your welcome” .......将导致漫游器在反馈频道 ELSE 中说“您的欢迎”,而只是在同一频道中发送消息。我希望我已经正确地解释了自己,但这已经超出了我的头脑,iv试图进行尽可能多的研究。预先感谢您的时间
case 'say':
if (!message.member.roles.cache.find(r => r.name === 'Moderator') && !message.member.roles.cache.find(r => r.name === 'Staff')) return message.channel.send('You dont not have the required permissions').then(msg => {
msg.delete({ timeout: 5000 })
})
else if (message.content.startsWith(".say")) {
if (message.deletable) {
message.delete();
}
if (!args[1]) return message.channel.send("Nothing to say").then(msg => {
msg.delete({ timeout: 5000 })
})
message.channel.send(`${(args.slice(1).join(" "))}`)
答案 0 :(得分:1)
要检查传入消息中是否提到了频道,可以使用Message.mentions属性,该属性返回一个MessageMentions对象。
MessageMentions.channels返回消息中提到的Collection中的GuildChannel。
因此要检查消息中是否至少提及一个频道:
if (message.mentions.channels.size > 0) {
// There is at least 1 channel mention in the message.
} else {
// No channel mention in the message.
}
要将消息发送到第一个频道提及:
message.mentions.channels.first().send("message");