首页 > 解决方案 > 如何在一段时间后删除不和谐机器人消息?

问题描述

由于某种原因,该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);

不在这里^^

标签: javascriptdiscord.js

解决方案


也许你可以这样做:

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);

但我的代码也有效


推荐阅读