You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人Bump Reminder功能故障排查与解决

问题解决方案

问题已解决说明

我已定位问题根源:因需求描述不准确导致误解。实际需求是监听用户向DISBOARD机器人发送的/bump指令,而非监听用户向自己开发的机器人发送该指令。通过插入以下代码即可解决:

if (message.interaction && message.interaction.commandName === "page" && message.author.id === "302050872383242240") {

原问题描述

我近一个月在开发Discord机器人,其中包含Bump Reminder功能:当用户成功执行/bump指令后,机器人发送感谢消息,并在2小时后@Bump Reminder角色提醒再次执行bump。

但遇到问题:执行/bump后,频道无任何反馈,控制台也无输出。我使用Discord.js v13,不确定是否v13不支持Interactions,但确认过该版本是支持的。

我尝试通过interactionCreate事件处理,但问题依旧,怀疑是事件写法有误,相关代码如下:

Bump Reminder功能代码

const config = require('../../config/config');
console.log('Bump Reminder Loaded!!');
const Discord = require('discord.js');

module.exports = async (client, interaction) => {
  try {
    const roleId = config.plugins.bumpreminder.roleID;
    console.log('Role ID:', roleId);
    const role = interaction.guild.roles.cache.get(roleId);
    console.log('Role:', role);
    const channel = interaction.guild.channels.cache.get(config.plugins.bumpreminder.channelID);
    console.log('Channel:', channel);

    if (!role) {
      console.log(`Error: Could not find role with ID ${roleId} in server ${interaction.guild.name}.`);
      return;
    }

    if (interaction.commandName === "bump" && interaction.user.id === "302050872383242240") {
      const reminderEmbed = new Discord.MessageEmbed()
        .setTitle('Thank You For Bumping!!')
        .setDescription(`Please Check Back in 2 Hours!!`)
        .setColor('BLUE')
        .setTimestamp();

      await interaction.reply({ embeds: [reminderEmbed] });
      setTimeout(() => {
        channel.send(`<@&${roleId}> Don't forget to bump the server to get more members!`);
      }, 2 * 60 * 60 * 1000);
    }
  } catch (error) {
    console.error(error);
  }
};

interactionCreate事件代码

const eventName = 'interactionCreate';

module.exports = async (Discord, client, interaction) => {
  const config = require('../../config/config');
  const bumpReminder = require('./bumpreminder.js');
  try {
    bumpReminder(Discord, client, interaction);
  } catch (error) {
    console.log(error);
  }
};

事件处理器代码

const path = require('path');
const fs = require('fs');
const client = require('../index');

console.log(`Event Handler Started at ${new Date().toLocaleString()}`);

module.exports = (Discord, client) => {
  try {
    const load_dir = (dir) => {
      const event_files = fs.readdirSync(path.join(__dirname, '..', dir)).filter(file => file.endsWith('.js'));

      for (const file of event_files) {
        const event = require(`../events/${file}`);
        let event_name;
        if (file === 'message.js') {
            event_name = 'messageCreate';
        } else if (file === 'guildCreate.js') {
            event_name = 'guildCreate';
        } else if (file === 'autorole.js') {
            event_name = 'guildMemberUpdate';
        } else if (file === 'greeter.js') {
            event_name = 'guildMemberAdd';
        } else if (file === 'leaver.js') {
            event_name = 'guildMemberRemove';
        } else if (file === 'ghostping.js') {
            event_name = 'messageDelete';
        } else if (file === 'interactions.js') {
            event_name = 'interactionCreate';
        } else {
          event_name = event.eventName || file.split('.')[0];
        }
        client.on(event_name, event.bind(null, Discord, client));
      }
    }

    load_dir('events');
  } catch (error) {
    console.error(error);
  }
};

内容的提问来源于stack exchange,提问作者TechXplore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:07:50