繁体   English   中英

如果斜线命令有效,我怎样才能让我的 discord.js v14 机器人停止说“应用程序没有响应”?

[英]How can i get my discord.js v14 bot to stop saying "The application did not respond" if the slash command works?

我有多个运行良好的命令,但我总是收到此消息作为回报。

在此处输入图像描述

这是该命令的代码。 它工作得很好我想它只是不响应交互即使我觉得它应该是?

我怎样才能让它忽略这条消息或正确回复?

const Discord = require('discord.js');
const { EmbedBuilder, SlashCommandBuilder } = require('discord.js');

module.exports = {
  data: new SlashCommandBuilder()
    // command name
    .setName('totalfrozencheckouts')
    // command description
    .setDescription('Add up every message in the frozen checkouts channel after a specific message ID')
    .addStringOption(option =>
      option.setName('messageid')
        .setDescription('The message ID')
        .setRequired(true)),
    async execute(interaction) {
        const channel = '<#' + process.env.FROZENCHECKOUTS + '>';
        const messageId = interaction.options.getString("messageid");
        
        // Check if the channel mention is valid
        if (!channel.startsWith('<#') || !channel.endsWith('>')) {
            return interaction.channel.send(`Invalid channel mention. Please use the format: ${this.usage}`);
        }
        
        // Extract the channel ID from the channel mention
        const channelId = channel.slice(2, -1);
        
        // Try to fetch the messages from the requested channel and message ID
        interaction.guild.channels.cache.get(channelId).messages.fetch({ after: messageId })
            .then(messages => {
            // Create an array of the message contents that are numbers
            const numbers = messages.map(message => message.content).filter(content => !isNaN(content));
        
            // Check if there are any messages
            if (numbers.length === 0) {
                return interaction.channel.send(`No messages were found in ${channel} after message ID https://discord.com/channels/1059607354678726666/1060019655663689770/${messageId}`);
            }
        
            // Adds up the messages
            const sum = numbers.reduce((accumulator) => accumulator + 1, 1);

            // Create an embed object
            const embed = new EmbedBuilder()
            .setColor(0x4bd8c1)
            .setTitle(`Total Checkouts in #frozen-checkouts for today is:`)
            .addFields(
                {name: 'Total Checkouts', value: sum.toString() , inline: true},
            )
            .setThumbnail('https://i.imgur.com/7cmn8uY.png')
            .setTimestamp()
            .setFooter({ text: 'Frozen ACO', iconURL: 'https://i.imgur.com/7cmn8uY.png' });


            // Send the embed object
            interaction.channel.send({embeds: [embed]});
            })

            .catch(error => {
            console.error(error);
            interaction.channel.send('An error occurred while trying to fetch the messages. Please try again later.');
            });
        }
    }

我真的不知道该尝试什么,因为它确实有效,我只是不知道如何让它忽略该消息或什么都不响应。 它不会破坏机器人,它只是看起来很烦人。

使用interaction.reply而不是interaction.channel.send来回复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM