Discord.js 命令处理对我不起作用

Posted

技术标签:

【中文标题】Discord.js 命令处理对我不起作用【英文标题】:Discord.js command handling isn't working for me 【发布时间】:2020-08-12 16:37:40 【问题描述】:

我创建了一个 Discord.js 机器人,我想用 fs 分隔每个命令,例如 ./commands/ping.js。 它起作用了,但不知道为什么,一个小时后它就崩溃了。我对机器人没有任何兴趣,而且没有人可以访问代码-当然-。 该机器人可以工作,并且没有错误消息。事件(例如准备就绪和消息)也可以正常工作,但是直接在文件中的命令不起作用。例如,它会提示“BOT 已启动”,但 ping.js 无法正常工作。

这里是index.js,但是如果你还需要调试什么,请评论!

const fs = require('fs');
const Discord = require('discord.js');
const  prefix, token  = require('./config.json');

const client = new Discord.Client();
client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));


for (const file of commandFiles) 
    const command = require(`./commands/$file`);
  client.commands.set(command.name, command);


fs.readdir('./events/', (err, files) => 
  files.forEach(file => 
    const eventHandler = require(`./events/$file`)
    const eventName = file.split('.')[0]
    client.on(eventName, (...args) => eventHandler(client, ...args))
  )
)

client.login(token);

谢谢大家! ~阿科斯

【问题讨论】:

你能显示 ping.js 吗?其他命令也有效吗? 能否也显示./events/message.js? 【参考方案1】:

Kian 在这里,

这应该适合你:)。我试图留下一些 cmets 以便您可以理解代码,如果您对此代码有任何问题,请发表评论并编辑代码以使其正常工作

const fs = require('fs');
const Discord = require('discord.js');
const  prefix, token  = require('./config.json');

const client = new Discord.Client();
client.commands = new Discord.Collection();

fs.readdir("./commands/", (err, files) => 

    // check for errors
    if (err) console.log(err);

    // get name of file
    let jsfile = files.filter(f => f.split(".").pop() === "js");

    // if it cannot find any commands
    if (jsfile.length <= 0) 
        console.log("Couldn't find commands.");
        return;
    

    // log the amount of files
    console.log(`Loading $jsfile.length commands!`);

    // load the command
    jsfile.forEach((f, i) => 
        // grab the module.exports from the file
        let props = require(`./commands/$f`);
        console.log(`$i+1: $f loaded!`);
        client.commands.set(props.name, props);
    );
);

// apparently this works so i'll leave it chief :)
fs.readdir('./events/', (err, files) => 
    files.forEach(file => 
        const eventHandler = require(`./events/$file`)
        const eventName = file.split('.')[0]
        client.on(eventName, (...args) => eventHandler(client, ...args))
    )
)

client.login(token);

祝你好运~不知道

【讨论】:

以上是关于Discord.js 命令处理对我不起作用的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 我的代码不起作用,在终端中显示 typeError 但我不知道出了啥问题

Discord.js 关于消息命令不起作用

Discord.js 机器人命令不起作用。怎么解决?

Discord.js 斜线命令权限系统不起作用

Discord.js:GuildMember 的 setMute 命令不起作用?

DiscordJS v12 userinfo 命令不起作用