UNPKG

@silver-3/r6-info

Version:

This package allows you to access information about any R6 operator and maps, and more. Currently updated to Y11S1.2

71 lines (55 loc) 1.58 kB
const path = require('path'); const fs = require('fs'); const R6Info = require('../index.js'); const gadgets = {}; /** * @typedef {Object} gadgetObject * @property {string} name * @property {string} image */ fs.readdirSync(__dirname).forEach(gadget => { const gadgetDir = path.join(__dirname, gadget); if (fs.statSync(gadgetDir).isDirectory()) { const gadgetData = require(gadgetDir + '/index.js'); gadgets[gadget] = gadgetData; } }); /** * * @param {String} operator * @returns {gadgetObject} */ function randomGadget(operator) { if (!operator) throw new Error("Operator is required"); operator = operator.toLowerCase(); if (!R6Info.getOperator(operator)) throw new Error(`Opeartor (${operator}) not found.`); const keys = Object.keys(gadgets); return gadgets[keys[Math.floor(Math.random() * keys.length)]]; } /** * * @param {String} gadgetName * @returns {gadgetObject} */ function getGadget(gadgetName) { if (!gadgetName) throw new Error("Gadget name is required"); gadgetName = gadgetName.toLowerCase().replace(' ', '_') if (gadgets[gadgetName]) return gadgets[gadgetName] throw new Error(`Gadget (${gadgetName}) not found.`); } /** * * @returns {Array<gadgetObject>} */ function getAllGadgets() { let gadgetArray = []; for (let gadget in gadgets) { gadgetArray.push(gadgets[gadget]); } return gadgetArray; } module.exports = { getGadget, randomGadget, getAllGadgets };