client.on('message', function(message) { // COMMAND CLEAR [+]
if (message.content.startsWith('/dm ') && message.mentions.users.size){
message.send("ERROR")
}
if (message.content == ".c") {
if (message.member.hasPermission("MANAGE_MESSAGES")) {
message.channel.fetchMessages(1000)
.then(function(list){
message.channel.bulkDelete(list);
}, function(err){message.channel.send()})
}
}
}); // COMMAND CLEAR [-]
我只希望机器人仅在Discord服务器通道上对此命令做出反应,而不在直接消息中做出反应。
答案 0 :(得分:0)
根据discord.js文档,属性.channel
存在于Message
上,类型为TextChannel | DMChannel | GroupDMChannel
。
因此检查消息来源的最好方法是检查instanceof
通道属性:
client.on("message", message => {
if (message instanceof TextChannel) {
// Was posted in a text channel, and not a DM
}
})
注意:您将需要从模块中导入TextChannel
。假设您正在使用TypeScript(我只用discord.js和typescript),它看起来像这样:
import { TextChannel } from "discord.js"
答案 1 :(得分:0)
您可以告诉漫游器忽略一条消息,如果它是dm
i
如果您想回复一条消息,可以执行以下操作:
client.on("message", msg => {
if (msg.type == "dm") {
return;
}