javascript - discord.js message.channel 不是函数
问题描述
我试图让我的机器人删除特定频道中不是图像的消息。
client.on("message", (message) => {
let channel = client.channels.get(`642417479708049418`);
if(!message.channel(channel)) {
return
} else {
if(message.embeds.length > 0) {
return
} else {
message.delete();
message.channel.send("images only");
}
}
});
错误表明 message.channel 不是函数。
解决方案
错误在!message.channel(channel)
,要验证通道是否是您想要的通道,因为您已经有了通道变量,只需比较两个 id,您还应该添加一个检查以查看消息是否来自机器人或不是,这样机器人就不会陷入删除自己的消息的循环中:
client.on("message", (message) => {
if (message.author.bot) return;
let channel = client.channels.get(`642417479708049418`);
if (message.channel.id != channel.id) {
return
} else {
if (message.embeds.length > 0) {
return
} else {
message.channel.send("images only");
message.delete();
}
}
});
此外,当您删除消息时,请message.delete();
务必先发送您要发送的响应,请按以下顺序执行:
message.channel.send("images only");
message.delete();
推荐阅读
- spring - 使用 Spring Boot API 进行文件上传的 Tomcat 性能
- haskell - 不明白这个错误:无法将类型“[Char]”与“Char”匹配
- javascript - 是否可以在循环中连续添加?
- excel - 如何将多个字符串提取到一个逗号分隔的字符串中?
- python - 如何在熊猫数据框中获得 CatBoost 的特征重要性?
- mysql - 从链接到数据库的组合框中删除 id 时出错
- python-3.x - 未找到气流 task_id
- asynchronous - 如何通过 clojure 的 core.async 中的通道进行通信?
- r - 如何编写 R 代码以通过特定单元格直接从 excel 中读取?
- java - 表格行字符替换为“?” mvn包后