簡體   English   中英

Discord.js:無法讀取未定義的屬性“ set”

[英]Discord.js: Cannot read property 'set' of undefined

我正在用discord.js創建機器人。 這是我的代碼:

var Discord = require('discord.js');
const swarmConfig = require('./swarmConfig.json');

var swarmbot = new Discord.Client();
swarmbot.login('myToken');

fs.readdir('./commands/', (err, files) =>{
  if(err) console.log(err);
  var jsFiles = files.filter(f => f.split('.').pop() === 'js');

  if(jsFiles.length <=0){
    console.log('Cant find commands');
    return;
  }

  jsFiles.forEach((f, i) =>{
    let fileGet = require(`./commands/${f}`);
    console.log(`${f} loaded!`);
    swarmbot.commands.set(fileGet.help.name, fileGet);
  });
});

swarmbot.on("message", async message =>{
  if (message.author.swarmbot) 
    return;
  var prefix = swarmConfig.prefix;
  var command = messageArray[0];
  var arguments = messageArray.slice(1);

  var commands = swarmbot.commands.get(command.slice(prefix.length));
  if(commands) 
    commands.run(swarmbot, message, arguments);
});

但是,如果我嘗試啟動它,則會收到此錯誤:

C:\Users\purul\Desktop\swarm-dsbot\swarm.js:25
swarmbot.commands.set(fileGet.help.name, fileGet);
                  ^
TypeError: Cannot read property 'set' of undefined
at jsFiles.forEach (C:\Users\purul\Desktop\swarm-dsbot\swarm.js:25:23)
at Array.forEach (<anonymous>)
at fs.readdir (C:\Users\purul\Desktop\swarm-dsbot\swarm.js:22:11)
at FSReqWrap.oncomplete (fs.js:141:20)

我仍在學習JavaScript,感謝所有對此提供幫助的人。

如果我們在Discord.js的文檔中查找,則沒有稱為“命令”的對象。 鏈接: https : //discord.js.org/#/docs/main/stable/search? q =commands我猜您是從文件中加載它們,因此您應該創建一個包含以下內容的js文件:命令,並將它們加載到您的主文件中。

可能的解決方案的參考: https : //stackoverflow.com/a/51333277/7363404 (您還應該檢查問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM