2017-12-18 14 views
0

나는 discord.js로 불량 봇을 만들었고 사용자에게 사용 가능한 모든 명령을 표시하는 help 명령을 시도했습니다.discord.js 내 모든 봇 명령을 나열합니다.

명령 예 : 내가 좋아하는 명령의 목록이 포함 된 메시지를 보내려고이어서

module.exports.run = async(bot, message, args) => { 
    let msg = await message.channel.send("doing some magic ..."); 
    let target = message.mentions.users.first() || message.author; 

    await message.channel.send({files: [ 
     { 
      attachment: target.displayAvatarURL, 
      name: "avatar.png" 
     } 
    ]}); 

    msg.delete(); 
} 

module.exports.help = { 
    name: "avatar", 
    description: "show the avatar of a user", 
    usage: "[@user]" 
} 

avatar.js :

  • 명령 1
  • 설명
  • 사용법
  • 명령이
  • 설명
  • 사용
  • ...

help.js

const fs = require("fs"); 
const Discord = require("discord.js"); 

module.exports.run = async(bot, message, args, con) => { 
    fs.readdir("./cmds/", (err, files) => { 
     if(err) console.error(err); 

     let jsfiles = files.filter(f => f.split(".").pop() === "js"); 
     if(jsfiles.length <= 0) { 
      console.log("No commands to load!"); 
      return; 
     } 

     var namelist = ""; 
     var desclist = ""; 
     var usage = ""; 

     let result = jsfiles.forEach((f, i) => { 
      let props = require(`./${f}`); 
      namelist = props.help.name; 
      desclist = props.help.description; 
      usage = props.help.usage; 
     }); 

     message.author.send(`**${namelist}** \n${desclist} \n${usage}`); 
    }); 
} 

module.exports.help = { 
    name: "help", 
    description: "show all commands", 
    usage: "" 
} 

내 코드가 좀 노력하고 있지만 첫 번째 명령을 보냅니다.

메신저 꽤 자바 스크립트에 새 나는 이것에 대한 해결책을 찾을 수 없습니다. 나는 google에 foreach지도에 모든 것을 불화 수집 및 재료 시도했다 그러나 나는 결과가 함께 결합되는보기를 발견하지 않는다.

아무도 나를 도울 수 없거나 나에게 이런 식으로 검색 할 수있는 힌트를 줄 수 있다면. 굉장 할 것입니다.

답변

1

코드가 하나의 명령 만 전송하는 이유는 코드가 message.author.send('...'이므로 한 번만 호출하기 때문입니다. 변수 namelist, desclistusage을 모든 파일의 데이터와 함께 성공적으로 설정했지만 .forEach(... 루프는 다음 파일로 이동할 때 모든 데이터를 덮어 씁니다.

var namelist = ""; 
var desclist = ""; 
var usage = ""; 

let result = jsfiles.forEach((f, i) => { 
    let props = require(`./${f}`); 
    namelist = props.help.name; 
    desclist = props.help.description; 
    usage = props.help.usage; 

    // send help text 
    message.author.send(`**${namelist}** \n${desclist} \n${usage}`); 
}); 
:

시도는이 같은 .forEach(... 루프의 각 반복 내에서 데이터를 전송하기