Discord.JS 机器人不回复命令,也不在控制台中返回有关它的错误

Discord.JS bot not replying to commands nor returning a error in console regarding it

我一直在努力让我的新 Discord 机器人的命令处理程序工作,虽然它正在查看命令文件(如启动时的日志条目所示,说明它已加载的命令数量)它要么是'没有发送消息,或者甚至没有执行消息。

这是我的代码:

const { Client, Intents, Collection } = require('discord.js');
const { token, ownerid, statuses, embedColors, prefix } = require('./cfg/config.json');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
const fs = require('fs');
const { config } = require('process');
client.commands = new Collection();
const commands = [];
const cmdfiles = fs.readdirSync('./cmds').filter(file => file.endsWith('.js'));
client.once('ready', () => {
    console.clear
    console.log(`Ready to go, Found ${cmdfiles.length} commands and ${statuses.length} statuses!`)
    setInterval(() => {
        var status = Math.floor(Math.random() * (statuses.length -1) +1)
        client.user.setActivity(statuses[status]);
}, 20000)
}),
client.on("error", (e) => console.log(error(e)));
client.on("warn", (e) => console.log(warn(e)));
// Command Handler
    for (const file of cmdfiles) {
        const command = require(`./cmds/${file}`);
        commands.push(command.data);
    }
client.on('messageCreate', message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;
    const args = message.content.slice(prefix.length).trim().split(/ +/);
    const command = args.shift().toLowerCase();

    if (!client.commands.has(command)) {
        embeds: [{
            title: ":x: Oopsie!",
            color: config.embedColors.red,
            description: `Command ${args.[0]} doesn't exist! Run ${config.prefix}help to see the avaliable commands!`,
            footer: app.config.footer + " Something went wrong! :("
        }];
    } else {
        try {
            client.commands.get(command).execute(message, args);
        } catch (error) {
            console.error(error);
            embeds: [{
                title: ":x: Oopsie!",
                description: "Command execution failed",
                fields: [
                { name: "Error Message", value: `${e.message}` }
                ],
                footer: app.config.footer + " Something went wrong :("
            }];
        }
        message.channel.send
    }});
client.login(token);

测试命令是

module.exports = {
    name: "test",
    description: "does as it implies, dingusA",
    async execute(client, message, args) {
        message.channel.send("This is a message!");
    }
}

您需要 GUILD_MESSAGES 意图才能在公会中接收消息。
在您的代码中添加以下意图

const client = new Client({ intents: [
    Intents.FLAGS.GUILDS, 
    Intents.FLAGS.GUILD_MESSAGES ] 
})

这也适用于其他事物,例如。 DIRECT_MESSAGES 用于 DM 等