UNPKG

rbxjs-plus

Version:

A system allowing access to roblox functions.

54 lines (49 loc) 1.32 kB
// Dependencies var entities = require('entities'); var Promise = require('bluebird'); // Includes var getRoles = require('./getRoles.js').func; // Args exports.required = [['group', 'roles'], ['rank', 'name', 'id']]; // Define function getRole (args) { var roles = args.roles; var rank = args.rank; var name = args.name; var id = args.id; var search = rank || name || id; var found = {}; var result = []; var isObject = search instanceof Object; for (var i = 0; i < roles.length; i++) { var role = roles[i]; var find; if (rank) { find = role.Rank; } else if (name) { find = entities.decodeHTML(role.Name); } else if (id) { find = role.ID; } if (found[find]) { throw new Error('There are two or more roles with the rank ' + rank + '. You must specify the role name.'); } var index = isObject ? search.indexOf(find) : 0; if (isObject ? index > -1 : search === find) { found[find] = true; result[index] = role; } } return isObject ? result : (result[0] || false); } exports.func = function (args) { if (args.roles) { return Promise.resolve(getRole(args)); } else { return getRoles({group: args.group}) .then(function (roles) { args.roles = roles; return getRole(args); }); } };