首页 > 解决方案 > 对自己的消息做出反应的 Discord 机器人

问题描述

我当前的 discord.js 代码有问题。我正在尝试制作一个机器人,它会每小时提醒我做某事,但如果我不这样做,我希望它增加 1 小时(所以基本上如果我 4 小时不做,我希望消息说:自上次缓冲区检查以来已经 4 小时,等等)。此外,当我想添加反应时,机器人开始对特定频道中的每条消息做出反应,但我希望它对自己的消息做出反应,这样我就可以添加更多内容。当我启动它时,它工作但垃圾邮件。代码可能丑陋而复杂,对此我很抱歉。

const Discord = require('discord.js');
const { prefix, token } = require('./config.json');
const client = new Discord.Client();
const Buffer = new Discord.MessageEmbed()
    .setColor('#FF4C26')
    .setTitle("**It's time to check buffers!**")
    .setDescription("**It's been **" + "`" + lastbuffer + " Hour" + "`" + "** since last buffercheck, <@&675688526460878848>**." + " **Check now!**")
    .setThumbnail('https://art.pixilart.com/88534e2f28b65a4.png')
    .setFooter('WEEEEEWOOOOO')
    .setTimestamp();
client.once('ready', () => {
    console.log('Ready!');
});

client.on('message', message => {
    if (message.content.startsWith(`${prefix}bstart`));
    let role2 = message.guild.roles.cache.get("675688526460878848")
    client.channels.cache.get("<700296799482675230>")
})
client.on('message', message => {
    message.channel.send(Buffer)
    message.react('✅')
    message.react('')
})

client.login(token);

感谢帮助!

标签: javascriptbotsdiscord.js

解决方案


setInterval(function(){
    client.channels.cache.get("CHANNEL_ID").send(Buffer).then(msg => {
        msg.react('✅');
        msg.react('');
    });
}, 3600000); // waits for 1 hour

您也可以使用client.users.cache.get("USER_ID").send()通过 DM 发送。当用户点击反应时,这也可能有助于响应用户。


推荐阅读