Попытка иметь несколько командных файлов для бота Discord - PullRequest
0 голосов
/ 11 июня 2018

Вопрос: есть ли способ иметь несколько командных файлов для бота-раздора?

Что я подразумеваю под «командным файлом», это файл, который содержит операторы if / else и команды для пользователей, которые на самом делевзаимодействовать с.

Под «несколькими файлами» я подразумеваю создание более одного из этих «командных файлов», которые могут отвечать на команды.

Я пытаюсь разделить мои забавные и административные команды на 2 отдельных файла, но в настоящее время работает только один.Я знаю, что одна из проблем лежит в файле package.json, где написано: "main": "index.js",

{
  "name": "n00bly783",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "discord.js": "^11.2.1",
    "discord.js-commando": "^0.9.0"
  }
}

Есть ли способ подключить один файл package.json кнесколько других файлов .js?И если это так, это все, что мне нужно сделать, чтобы заставить работать несколько дисков .js бот-дисков?

1 Ответ

0 голосов
/ 13 июня 2018

Вам не обязательно редактировать пакет .json.

Чтобы использовать несколько файлов, вы можете просто сделать следующее:

(commandfile1.js)

module.exports = {
  commandName: {
    variableToCallToRunFunction: (arguments) => { //usually called run
      //the command
    }
  }
}

(mainfile.js)

commandfile1 = require('./commandfile1.js') //if commandfile1 is in the same folder as this file
yourBot.on('message', msg => {
  if (msg.content.startsWith(yourPrefix){
    cmdmsg = msg.content.replace(yourprefix, '')
    for (command in commandfile1){
      if (cmdmsg.startsWith(commandfile1[command])){
        commandfile1[command].variableToCallToRunFunction(arguements) //usually just .run()
      } 
    }
  }
}

Это один из способов сделать это, все, что вам нужно сделать, это экспортировать отдельный командный файл как объект и сделать каждую команду отдельной записью вобъект.Затем каждый раз, когда сообщение отправляется с префиксом ваших ботов перед ним, циклически перебирайте все команды и запускайте ту, которую указал пользователь.

...