javascript - 如何在一段时间后删除不和谐机器人消息?
问题描述
由于某种原因,该message.delete({timeout: 5000});
语句在 if 语句中不起作用。它确实在代码的早期工作。任何想法为什么?
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
client.on("ready", async () => {
console.log('--> Online');
status = client.users.cache.get(config.user).presence.status;
channel = client.channels.cache.get(config.channel);
embed = new Discord.MessageEmbed()
embed.setDescription('I am ONLINE');
embed.setColor('#00ccff');
message = await channel.send(embed);
message.delete({timeout: 5000});
它似乎在这里工作^^
setInterval(() => {
user = client.users.cache.get(config.user);
updated = client.users.cache.get(config.user).presence.status;
if(updated != status) {
status = updated;
if(updated == 'online') {
channel.send(embed);
message.delete({timeout: 5000});
}
} else {
return
}
}, 1250);
});
client.login(config.token);
不在这里^^
解决方案
也许你可以这样做:
channel.send(embed).then(m => m.delete({ timeout: 5000 }))
})
编辑:
您的命令不起作用,因为在您执行的第一个代码中
message = await channel.send(embed);
message.delete({timeout: 5000});
在您所做的第二个代码中:
channel.send(embed);
message.delete({timeout: 5000});
你忘了添加
message = await channel.send(embed);
但我的代码也有效
推荐阅读
- php - 在文件之间传递变量
- algorithm - 如何获取不在给定 IP 地址范围内的所有 IP 地址
- javascript - css链接如何为前端浏览器生成哈希码
- c - C中的设计原则DRY?
- cloud - 为 GOOGLE_APPLICATION_CREDENTIALS 设置环境变量后要做什么
- java - 验证 Jackon JsonAnySetter 被称为 Junit
- node.js - Node-red:node-function - if 条件中缺少“null”值
- php - 使用 PHP 在数据库中插入信息
- java - java日期解析错误行为
- laravel-5 - 具有多个参数的路由上缺少必需的参数错误