v2.5.2
Giriş yap

npm discord.js modülü için fs ile command handler yapmak

mrturk
914 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Sorunum

discord.js için yaptığım handlerdaki hatayı bulamadım, herşeyi eksiksiz yaptığımı biliyorum ama bir türlü cevap vermiyor bot

Modüller
Handler

const folders = fs.readdirSync("./commands/")

for (const files of folders) {
const folder = fs.readdirSync(`./commands/${files}/`).filter(file => file.endsWith(".js"))

for (const commands of folder) {
  const command = require(`./commands/${files}/${commands}`)
  console.log(`./commands/${files}/${commands}`)
    bot.on('message',message => {
        const args = message.content.slice(config.prefix.length).trim().split(/ +/);
        if(message.content !== `${config.prefix}${command.name}` || `${config.prefix}${command.aliases.join(' || ')}`) return;
        require(`./commands/${files}/${commands}`)(bot,message,args)
        if(message.author.bot) return;
        command.code
    })
  }
}
JavaScript
Örnek kullanım

Dosya yolu

./commands/user/ping.js
module.exports = {
    name: "ping",
    aliases: [],
    code: async (bot, message, args) => {
      message.channel.send('pong')
    }
  }
JavaScript

Önemli not

Cevap olarak hazır handler yazmayın , 'bot' tanımlanmıştır
Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (3)
fatihozpolat
1363 gün önce

Şu kod parçacığı yanlış yerde bulunuyor:


bot.on('message',message => {
    const args = message.content.slice(config.prefix.length).trim().split(/ +/);
    if(message.content !== `${config.prefix}${command.name}` || `${config.prefix}${command.aliases.join(' || ')}`) return;
    require(`./commands/${files}/${commands}`)(bot,message,args)
    if(message.author.bot) return;
    command.code
})
    
JavaScript

döngü içinde tekrar tekrar event handler yaratılmış oluyor.

https://discordjs.guide/command-handling/#reading-command-files
şu linkteki kısımda dikkat edersen client.command şeklinde bir collection yaratılıyor.

bu kısımda tabi direk commands folderını tarıyor ama anlatımın biraz ilerisinde commands altında klasörlere bölmeyide anlatıyor.

komutlar bunun içine ekleniyor ve ardından event handler kullanılarak komutlara erişiliyor.

Bu dökümantasyonun başından başlar gidersen rahatça düzenlersin.

mrdark
1280 gün önce
const folders = fs.readdirSync("./commands/");
const commands = new Map();
for (const files of folders) {
const folder = fs.readdirSync(`./commands/${files}/`).filter(file => file.endsWith(".js");

for (const commands of folder) {
  const command = require(`./commands/${files}/${commands}`);
  
   commands.set(commands.name, commands)
  };
};

 bot.on("message", message => {
            if (message.author.bot) return;
            if (message.content.indexOf(prefix) !== 0) return;
            const args = message.content.slice(prefix.length).trim().split(/ +/g);
            const command = args.shift().toLowerCase();
            const cmd = commands.get(command);
            if (!cmd) return;
            cmd.code(bot, message, args);
        })
JavaScript

hizlicevap
1365 gün önce

code property'sini function olarak çalıştırman gerekiyor.