diff --git a/.gitignore b/.gitignore index ab4a373..617e27c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,13 +2,12 @@ node_modules/* # test file +default.js test.js -# Dev Launch -dev.js - -# Dev config +# Dev config/dev-config.js +dev.js # Logs logs/* diff --git a/commands.js b/commands.js deleted file mode 100644 index 9e5d2de..0000000 --- a/commands.js +++ /dev/null @@ -1,603 +0,0 @@ -/* -HEY YOU! YEAH YOU! -If you are looking at this file, -that means I am not done, and this is -all the old code for commands that I need -to refactor to be up to date with modern -discord.js bot structure utilizing the -slash command support. So just ignore this -file for now, its just all the old command -logic. -*/ - - -const MongoClient = require('mongodb').MongoClient; -const { MessageEmbed } = require("discord.js"); -const ObjectId = require('mongodb').ObjectID -const randomstring = require('randomstring'); -const io = require('socket.io-client'); - -class Commands { - - constructor(config, mongoURI, dbo) { - this.config = config; - this.connectMongo(mongoURI, dbo); - } - - async connectMongo(mongoURI, dbo) { - this.db = await MongoClient.connect(mongoURI,{useUnifiedTopology:true}); - this.dbo = this.db.db(dbo); - } - - // Updates Prefix - async newPrefix(message, n) { - if (n[0]==undefined) return message.channel.send(`You must provide a \`new prefix\` ${message.author}`); - if (n[0].length<1) return message.channel.send('Your new prefix must be \`1\` character!') - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$set:{"server.prefix":n[0]}},function(err, res) { - if (err) throw err; - message.channel.send(`The new prefix is now **\`${n}\`**`); - }); - } - - // Remote Login - async remoteLogin(message, args) { - return message.channel.send('Login from Lines Police CAD account management https://www.linespolice-cad.com/'); - } - - async remoteLogout(message) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You cannot logout if your not logged in ${message.author}`); - this.dbo.collection("users").updateOne({"user.discord.id":message.author.id},{$unset:{"user.discord":""}, $set:{"user.discordConnected":false}},function(err,res) { - if (err) throw err; - message.channel.send(`Succesfully disconnected you Discord account ${message.author}`); - }); - } - - async account(message) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (user==null) return message.channel.send(`You are not logged in ${message.author}`); - message.author.send(`${message.author} Logged in as **${user.user.username}** | **${user.user.email}**`); - } - - async nameSearch(message, args) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - let data; - if (user.user.activeCommunity=='' || user.user.activeCommunity==null) { - if (args.length==0) return message.channel.send(`You must provide a \`First Name\`, \`Last Name\` and \`DOB\`(yyyy-mm-dd) ${message.author}`); - if (args.length==1) return message.channel.send(`You're missing a \`Last Name\` and \`DOB\`(yyyy-mm-dd) ${message.author}`); - if (args.length==2) return message.channel.send(`You're missing a \`DOB\`(yyyy-mm-dd) ${message.author}`); - } - if (args.length==0) return message.channel.send(`You must provide a \`First Name\` and \`Last Name\` ${message.author}`); - if (args.length==1) return message.channel.send(`You're missing a \`Last Name\` ${message.author}`); - - if (user.user.activeCommunity=='' || user.user.activeCommunity==null) { - data = { - user: user, - query: { - firstName: args[0], - lastName: args[1], - dateOfBirth: args[2], - activeCommunityID: user.user.activeCommunity - } - } - } else { - data = { - user: user, - query: { - firstName: args[0], - lastName: args[1], - activeCommunityID: user.user.activeCommunity - } - } - } - - const socket = io.connect(this.config.socket); - socket.emit("bot_name_search", data); - socket.on("bot_name_search_results", results => { - - if (results.user._id==user._id) { - if (results.civilians.length == 0) { - return message.channel.send(`Name \`${args[0]} ${args[1]}\` not found ${message.author}`); - } - - for (let i = 0; i < results.civilians.length; i++) { - // Get Drivers Licence Status - let licenceStatus; - if (results.civilians[i].civilian.licenseStatus == 1) licenceStatus = 'Valid'; - if (results.civilians[i].civilian.licenceStatus == 2) licenceStatus = 'Revoked'; - if (results.civilians[i].civilian.licenceStatus == 3) licenceStatus = 'None'; - // Get Firearm Licence Status - let firearmLicence = results.civilians[i].civilian.firearmLicense; - if (firearmLicence == undefined || firearmLicence == null) firearmLicence = 'None'; - if (firearmLicence == '2') firearmLicence = 'Valid'; - if (firearmLicence == '3') firearmLicence = 'Revoked'; - let nameResult = new MessageEmbed() - .setColor('#0099ff') - .setTitle(`**${results.civilians[i].civilian.firstName} ${results.civilians[i].civilian.lastName} | ${results.civilians[i]._id}**`) - .setURL('https://discord.gg/jgUW656v2t') - .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') - .setDescription('Name Search Results') - .addFields( - { name: `**First Name**`, value: `\`${results.civilians[i].civilian.firstName}\``, inline: true }, - { name: `**Last Name**`, value: `\`${results.civilians[i].civilian.lastName}\``, inline: true }, - { name: `**DOB**`, value: `\`${results.civilians[i].civilian.birthday}\``, inline: true }, - { name: `**Drivers License**`, value: `\`${licenceStatus}\``, inline: true }, - { name: `**Firearm Licence**`, value: `\`${firearmLicence}\``, inline: true }, - { name: `**Gender**`, value: `\`${results.civilians[i].civilian.gender}\``, inline: true } - ) - // Check Other details - let address = results.civilians[i].civilian.address; - let occupation = results.civilians[i].civilian.occupation; - let height = results.civilians[i].civilian.height; - let weight = results.civilians[i].civilian.weight; - let eyeColor = results.civilians[i].civilian.eyeColor; - let hairColor = results.civilians[i].civilian.hairColor; - if (address != null && address != undefined && address != '') nameResult.addFields({ name: `**Address**`, value: `\`${address}\``, inline: true }); - if (occupation != null && occupation != undefined && occupation != '') nameResult.addFields({ name: `**Occupation**`, value: `\`${occupation}\``, inline: true }); - if (height!=null&&height!=undefined&&height!="NaN"&&height!='') { - if (results.civilians[i].civilian.heightClassification=='imperial') { - let ft = Math.floor(height/12); - let inch = height%12; - nameResult.addFields({ name: '**Height**', value: `\`${ft}'${inch}"\``, inline: true }); - } else { - nameResult.addFields({ name: '**Height**', value: `\`${height}cm\``, inline: true }); - } - } - if (weight!=null&&weight!=undefined&&weight!='') { - if (results.civilians[i].civilian.weightClassification=='imperial') { - nameResult.addFields({ name: '**Weight**', value: `\`${weight}lbs.\``, inline: true }); - } else { - nameResult.addFields({ name: '**Weight**', value: `\`${weight}kgs.\``, inline: true }); - } - } - if (eyeColor!=null&&eyeColor!=undefined&&eyeColor!='') nameResult.addFields({name:'**Eye Color**',value:`\`${eyeColor}\``,inline:true}); - if (hairColor!=null&&hairColor!=undefined&&hairColor!='') nameResult.addFields({name:'**Hair Color**',value:`\`${hairColor}\``,inline:true}); - nameResult.addFields({name:'**Organ Donor**',value:`\`${results.civilians[i].civilian.organDonor}\``,inline:true}); - nameResult.addFields({name:'**Veteran**',value:`\`${results.civilians[i].civilian.veteran}\``,inline:true}); - message.channel.send(nameResult); - } - } - socket.disconnect(); - }); - } - - async plateSearch(message, args) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (args.length==0) return message.channel.send(`You are missing a \`Plate #\` ${message.author}`); - let data = { - user: user, - query: { - plateNumber: args[0], - activeCommunityID: user.user.activeCommunity - } - } - const socket = io.connect(this.config.socket); - socket.emit('bot_plate_search', data); - socket.on('bot_plate_search_results', results => { - - if (results.user._id==user._id) { - if (results.vehicles.length == 0) { - return message.channel.send(`Plate Number \`${args[0]}\` not found ${message.author}`); - } - - for (let i = 0; i < results.vehicles.length; i++) { - let plateResult = new MessageEmbed() - .setColor('#0099ff') - .setTitle(`**${results.vehicles[i].vehicle.plate} | ${results.vehicles[i]._id}**`) - .setURL('https://discord.gg/jgUW656v2t') - .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') - .setDescription('Plate Search Results') - .addFields( - { name: `**Plate #**`, value: `\`${results.vehicles[i].vehicle.plate}\``, inline: true }, - { name: `**Vin #**`, value: `\`${results.vehicles[i].vehicle.vin}\``, inline: true }, - { name: `**Model**`, value: `\`${results.vehicles[i].vehicle.model}\``, inline: true }, - { name: `**Color**`, value: `\`${results.vehicles[i].vehicle.color}\``, inline: true }, - { name: `**Owner**`, value: `\`${results.vehicles[i].vehicle.registeredOwner}\``, inline: true }, - ) - // Other details - let validRegistration = results.vehicles[i].vehicle.validRegistration; - let validInsurance = results.vehicles[i].vehicle.validInsurance; - let stolen = results.vehicles[i].vehicle.isStolen; - if (validRegistration=='1') plateResult.addFields({ name: `**Registration**`, value: `\`Valid\``, inline: true }); - if (validRegistration=='2') plateResult.addFields({ name: `**Registration**`, value: `\`InValid\``, inline: true }); - if (validInsurance=='1') plateResult.addFields({ name: `**Insurance**`, value: `\`Valid\``, inline: true }); - if (validInsurance=='2') plateResult.addFields({ name: `**Insurance**`, value: `\`InValid\``, inline: true }); - if (stolen=='1') plateResult.addFields({ name: `**Stolen**`, value: `\`No\``, inline: true }); - if (stolen=='2') plateResult.addFields({ name: `**Stolen**`, value: `\`Yes\``, inline: true }); - message.channel.send(plateResult); - } - } - socket.disconnect(); - }); - } - - async firearmSearch(message, args) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (args.length==0) return message.channel.send(`You are missing a \`Serial Number\` ${message.author}`); - let data = { - user: user, - query: { - serialNumber: args[0], - activeCommunityID: user.user.activeCommunity - } - } - const socket = io.connect(this.config.socket); - socket.emit('bot_firearm_search', data); - socket.on('bot_firearm_search_results', results => { - if (results.user._id==user._id) { - if (results.firearms.length==0) { - return message.channel.send(`No Firearms found ${message.author}`); - } - - for (let i = 0; i < results.firearms.length; i++) { - let firearmResult = new MessageEmbed() - .setColor('#0099ff') - .setTitle(`**${results.firearms[i].firearm.serialNumber} | ${results.firearms[i]._id}**`) - .setURL('https://discord.gg/jgUW656v2t') - .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') - .setDescription('Firearm Search Results') - .addFields( - { name: `**Serial Number**`, value: `\`${results.firearms[i].firearm.serialNumber}\``, inline: true }, - { name: `**Type**`, value: `\`${results.firearms[i].firearm.weaponType}\``, inline: true }, - { name: `**Owner**`, value: `\`${results.firearms[i].firearm.registeredOwner}\``, inline: true }, - ) - // Other details - let isStolen = results.firearms[i].firearm.isStolen; - if (isStolen=="false"||isStolen==false) firearmResult.addFields({name:`**Stolen**`,value:'\`No\`',inline: true}); - if (isStolen=="true"||isStolen==true) firearmResult.addFields({name:`**Stolen**`,value:'\`Yes\`',inline: true}); - message.channel.send(firearmResult); - } - } - socket.disconnect(); - }); - } - - async checkStatus(message, args) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (user.user.activeCommunity == null) return message.channel.send(`You must join a community to use this command ${message.author}`); - if (args.length == 0) { - message.channel.send(`${message.author}'s status: \`${user.user.dispatchStatus}\` | Set by: \`${user.user.dispatchStatusSetBy}\``); - } else { - let targetUserID = args[0].replace('<@!', '').replace('>', ''); - let targetUser = await this.dbo.collection("users").findOne({"user.discord.id":targetUserID}).then(user => user); - // This lame line of code to get username without ping on discord - const User = client.users.cache.get(args[0].replace('<@!', '').replace('>', '')); - if (!targetUser) return message.channel.send(`Cannot find **${args[0]}** ${message.author}`); - if (targetUser.user.activeCommunity!=user.user.activeCommunity) { - return message.channel.send(`You are not in the same community as \`${User.tag}\` ${message.author}`); - } - return message.channel.send(`${message.author}, \`${User.tag}'s\` status: \`${targetUser.user.dispatchStatus}\` | Set by: \`${targetUser.user.dispatchStatusSetBy}\``); - } - } - - async updateStatus(message, args, prefix) { - let validStatus=['10-8','10-7','10-6','10-11','10-23','10-97','10-15','10-70','10-80', 'Panic', '10-41', '10-42']; - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command ${message.author}`); - if (args.length==0) return message.channel.send(`You must provide a new status ${message.author} | To see a list of valid statuses, use command \`${prefix}validStatus\`.`); - if (!validStatus.includes(args[0])) return message.channel.send(`\`${args[0]}\` is a Invalid Status ${message.author}! To see a list of valid statuses, use command \`${prefix}validStatus\`.`); - let onDuty=null; - let updateDuty=false; - let status = args[0] - if (args[0]=='10-41') { - onDuty=true; - updateDuty=true; - status='Online'; - } - if (args[0]=='10-42') { - onDuty=false; - updateDuty=true; - status='Offline'; - } - let req={ - userID: user._id, - status: status, - setBy: 'Self', - onDuty: onDuty, - updateDuty: updateDuty - }; - const socket = io.connect(this.config.socket); - socket.emit('bot_update_status', req); - socket.on('bot_updated_status', (res) => { - message.channel.send(`Succesfully updated status to \`${args[0]}\` ${message.author}`); - socket.disconnect(); - }); - } - - async enablePanic(message) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command ${message.author}`); - const socket = io.connect(this.config.socket); - // If panic is enabled, disable panic - if (user.user.dispatchStatus=='Panic') { - let myReq = { - userID: user._id, - communityID: user.user.activeCommunity - }; - socket.emit('clear_panic', myReq); - - let myUpdateReq = { - userID: user._id, - status: '10-8', - setBy: 'System', - onDuty: null, - updateDuty: false - }; - socket.emit('bot_update_status', myUpdateReq); - socket.on('bot_updated_status', (res) => { - message.channel.send(`Disabled Panic ${message.author} and set status to \`10-8\`.`); - socket.disconnect(); - }); - return; - // If panic is disabled, enable panic - } else { - this.updateStatus(message, ['Panic'], null); - let myReq = { - userID: user._id, - userUsername: user.user.username, - activeCommunity: user.user.activeCommunity - } - socket.emit('panic_button_update', myReq); - socket.disconnect(); - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.pingOnPanic) return message.channel.send(`Attention <@&${guild.server.pingRole}>! \`${user.user.username}\` has activated panic`); - return; - } - } - - async updateLicense(message, args) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - let data; - if (user.user.activeCommunity=='' || user.user.activeCommunity==null) { - if (args.length==0) return message.channel.send(`You must provide a \`License Status\`, \`First Name\`, \`Last Name\`, \`DOB\`(yyyy-mm-dd) ${message.author}`); - if (args.length==1) return message.channel.send(`You're missing a \`First Name\`, \`Last Name\` and \`DOB\`(yyyy-mm-dd) ${message.author}`); - if (args.length==2) return message.channel.send(`You're missing a \`Last Name\` and \`DOB\`(yyyy-mm-dd) ${message.author}`); - if (args.length==3) return message.channel.send(`You're missing a \`DOB\`(yyyy-mm-dd) ${message.author}`); - if (args[0].toLowerCase()!='revoke'&&args[0].toLowerCase()!='reinstate') return message.channel.send(`Invalid License Status, choose \`revoke\` or \`reinstate\` ${message.author}`); - } - if (args.length==0) return message.channel.send(`You must provide a \`License Status\`, \`First Name\` and \`Last Name\` ${message.author}`); - if (args.length==1) return message.channel.send(`You're missing a \`First Name\` and \`Last Name\` ${message.author}`); - if (args.length==2) return message.channel.send(`You're missing a \`Last Name\` ${message.author}`); - if (args[0].toLowerCase()!='revoke'&&args[0].toLowerCase()!='reinstate') return message.channel.send(`Invalid License Status, choose \`revoke\` or \`reinstate\` ${message.author}`); - - if (user.user.activeCommunity=='' || user.user.activeCommunity==null) { - data = { - user: user, - query: { - firstName: args[1], - lastName: args[2], - dateOfBirth: args[3], - activeCommunityID: user.user.activeCommunity - } - } - } else { - data = { - user: user, - query: { - firstName: args[1], - lastName: args[2], - activeCommunityID: user.user.activeCommunity - } - } - } - - const socket = io.connect(this.config.socket); - socket.emit("bot_name_search", data); - socket.on("bot_name_search_results", (results) => { - if (results.user._id==user._id) { - if (results.civilians.length == 0) { - return message.channel.send(`Name \`${args[1]} ${args[2]}\` not found ${message.author}`); - } - } - - let query = { - _id: results.civilians[0]._id, - status: null, - bot_request: true - }; - if (args[0]=='revoke') query.status = 2; - if (args[0]=='reinstate') query.status = 1; - socket.emit("update_drivers_license_status", query); - socket.on("bot_updated_drivers_license_status", (res) => { - if (!res.success) return message.channel.send(`Failed to update license of \`${args[1]} ${args[2]}\` ${message.author}`); - message.channel.send(`Successfully updated license of \`${args[1]} ${args[2]}\` ${message.author}`); - socket.disconnect(); - return; - }); - }); - } - - async joinCommunity(message, args) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (args.length==0) return message.channel.send(`You must provide a \`Community Code\` ${message.author}`); - let myReq = { - userID: user._id, - communityCode: args[0] - }; - const socket = io.connect(this.config.socket); - socket.emit('bot_join_community', myReq); - socket.on('bot_joined_community', (data) => { - socket.disconnect() - if (data.error) { - return message.channel.send(`${data.error} ${message.author}`); - } - return message.channel.send(`Successfully joined the community \` ${data.commName} \` ${message.author}`) - }); - } - - async leaveCommunity(message) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - let myReq = { - userID: user._id - }; - const socket = io.connect(this.config.socket); - socket.emit('bot_leave_community', myReq); - socket.on('bot_left_community', (data) => { - socket.disconnect() - if (data.error) { - return message.channel.send(`${data.error} ${message.author}`); - } - return message.channel.send(`${data.message} ${message.author}`) - }); - } - - async community(message) { - let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); - if (!user) return message.channel.send(`You are not logged in ${message.author}`); - if (user.user.activeCommunity==null) return message.channel.send(`You are not in a community ${message.author}`); - let community = await this.dbo.collection("communities").findOne({_id:ObjectId(user.user.activeCommunity)}).then(community => community); - if (!community) return message.channel.send(`Community not found ${message.author}`); - return message.channel.send(`You are in the community \`${community.community.name}\` ${message.author}`); - } - - async setRole(message, args) { - if (args.length==0) return message.channel.send(`You must provide a role ${message.author}`); - let roleid = args[0].replace('<@&', '').replace('>', ''); - let role = message.guild.roles.cache.find(x => x.id == roleid); - if (role == undefined) { - return message.channel.send(`Uh Oh! The role ${args[0]} connot be found.`); - } else { - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.allowedRole!=undefined&&guild.server.allowedRoles.includes(roleid)) return message.channel.send(`The role ${args[0]} has already been added ${message.author}`); - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$push:{"server.allowedRoles":roleid},$set:{"server.hasCustomRoles":true}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully added ${args[0]} to allowed roles ${message.author}`); - }); - } - } - - async removeRole(message, args) { - if (args.length==0) return message.channel.send(`You must provide a role ${message.author}`); - let roleid = args[0].replace('<@&', '').replace('>', ''); - let role = message.guild.roles.cache.find(x => x.id == roleid); - if (role == undefined) { - return message.channel.send(`Uh Oh! The role ${args[0]} connot be found.`); - } else { - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.hasCustomRoles==false) return message.channel.send(`There are no roles to be removed ${message.author}`); - if (!guild.server.allowedRoles.includes(roleid)) return message.channel.send(`The role ${args[0]} is not added to your roles ${message.author}`); - for (let i = 0; i < guild.server.allowedRoles.length; i++) { - if (guild.server.allowedRoles[i]==roleid) { - if ((guild.server.allowedRoles.length-1)==0) { - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$pull:{"server.allowedRoles":roleid},$set:{"server.hasCustomRoles":false}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully removed ${args[0]} from allowed roles ${message.author}! There are no more allowed roles.`); - }); - } else if ((guild.server.allowedRoles.length-1)>0) { - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$pull:{"server.allowedRoles":roleid}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully removed ${args[0]} from allowed roles ${message.author}`); - }); - } - } - } - } - } - - async roles(message) { - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.hasCustomRoles==false) { - return message.channel.send('There are no roles set for the bot.'); - } - - let roles = "Allowed Roles:"; - for (let i = 0; i < guild.server.allowedRoles.length; i++) { - if (guild.server.allowedRoles[i] == undefined) break; - roles += `\n<@&${guild.server.allowedRoles[i]}>`; - } - return message.channel.send(roles); - } - - async setChannel(message, args) { - if (args.length==0) return message.channel.send(`You must provide a channel ${message.author}`); - let channelid = args[0].replace('<#', '').replace('>', ''); - let channel = client.channels.cache.get(channelid); - if (!channel) return message.channel.send(`Cannot find that channel ${message.author}`); - if (channel.type=="voice") return message.channel.send(`Connot set voice channel to preferred channel ${message.author}`); - if (channel.deleted) return message.channel.send(`Connot set deleted channel to preferred channel ${message.author}`); - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.allowedChannels!=undefined&&guild.server.allowedChannels.includes(channelid)) return message.channel.send(`The channel ${args[0]} has already been added ${message.author}`); - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$push:{"server.allowedChannels":channelid},$set:{"server.hasCustomChannels":true}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully added ${args[0]} to allowed channels ${message.author}`); - }); - } - - async removeChannel(message, args) { - if (args.length==0) return message.channel.send(`You must provide a channel ${message.author}`); - let channelid = args[0].replace('<#', '').replace('>', ''); - let channel = client.channels.cache.get(channelid); - if (!channel) return message.channel.send(`Uh Oh! The channel ${args[0]} connot be found.`); - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.hasCustomChannels==false) return message.channel.send(`There are no channels to be removed ${message.author}`); - if (!guild.server.allowedChannels.includes(channelid)) return message.channel.send(`The channel ${args[0]} is not added to your roles ${message.author}`); - for (let i = 0; i < guild.server.allowedChannels.length; i++) { - if (guild.server.allowedChannels[i]==channelid) { - if ((guild.server.allowedChannels.length-1)==0) { - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$pull:{"server.allowedChannels":channelid},$set:{"server.hasCustomChannels":false}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully removed ${args[0]} from allowed channels ${message.author}! There are no more allowed channels.`); - }); - } else if ((guild.server.allowedChannels.length-1)>0) { - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$pull:{"server.allowedChannels":channelid}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully removed ${args[0]} from allowed channels ${message.author}`); - }); - } - } - } - } - - async channels(message) { - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - if (guild.server.hasCustomChannels==false) { - return message.channel.send('There are no channels set for the bot.'); - } - - let channels = "Allowed Channels:"; - for (let i = 0; i < guild.server.allowedChannels.length; i++) { - if (guild.server.allowedChannels[i] == undefined) break; - channels += `\n<#${guild.server.allowedChannels[i]}>`; - } - return message.channel.send(channels); - } - - async togglePingOnPanic(message, args) { - if (args.length==0) return message.channel.send(`You must provide a \`Ping On Role Status\` and a \`role\` to ping ${message.author}`); - if (args[0]=="false") { - // disable ping on panic and remove ping role - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$set:{"server.pingOnPanic":false,"server.pingRole":null}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully disabled ping role on panic ${message.author}`); - }); - } else if (args[0]=="true") { - if (!args[1]) return message.channel.send(`You must provide a \`role\` to ping ${message.author}`); - let roleid = args[1].replace('<@&', '').replace('>', ''); - let role = message.guild.roles.cache.find(x => x.id == roleid); - if (role == undefined) { - return message.channel.send(`Uh Oh! The role ${args[1]} connot be found.`); - } else { - this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$set:{"server.pingRole":roleid,"server.pingOnPanic":true}},function(err, res) { - if (err) throw err; - return message.channel.send(`Successfully set ${args[1]} to be pinged on panic ${message.author}`); - }); - } - } else return message.channel.send(`\`${args[0]}\` is an invalid status, use \`true\` or \`false\` ${message.author}`); - } - - async getPingOnPanicStatus(message) { - let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild); - return message.channel.send(`Current Ping on Panic Status: ${guild.server.pingOnPanic} ${message.author}`); - } -} - -module.exports = {Commands}; \ No newline at end of file diff --git a/commands/checkStatus.js b/commands/checkStatus.js index 68dc1a6..d4a81e2 100644 --- a/commands/checkStatus.js +++ b/commands/checkStatus.js @@ -16,7 +16,10 @@ module.exports = { * @param {string[]} args * @param {*} param3 */ - run: async (client, message, args) => { + run: async (client, message, args, { GuildDB }) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); if (!user) return message.channel.send(`You are not logged in.`); if (user.user.activeCommunity == null) return message.channel.send(`You must join a community to use this command.`); @@ -56,6 +59,9 @@ module.exports = { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { return interaction.send(`You are not allowed to use the bot in this channel.`); } + + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in.`); diff --git a/commands/firearmSearch.js b/commands/firearmSearch.js index df5a5bf..c763eee 100644 --- a/commands/firearmSearch.js +++ b/commands/firearmSearch.js @@ -18,6 +18,9 @@ module.exports = { * @param {*} param3 */ run: async (client, message, args) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); if (!user) return message.channel.send(`You are not logged in.`); if (args.length==0) return message.channel.send(`You are missing a \`Serial Number\`.`); @@ -80,6 +83,9 @@ module.exports = { return interaction.send(`You are not allowed to use the bot in this channel.`); } + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in.`); let data = { diff --git a/commands/nameSearch.js b/commands/nameSearch.js index 565950b..f897ed0 100644 --- a/commands/nameSearch.js +++ b/commands/nameSearch.js @@ -18,6 +18,9 @@ module.exports = { * @param {*} param3 */ run: async (client, message, args, { GuildDB }) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + if (GuildDB.customRoleStatus) { let userRoles = []; // TODO: get user roles let hasRole = await client.hasRole(userRoles, GuildDB.serverID); @@ -144,6 +147,10 @@ module.exports = { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { return interaction.send(`You are not allowed to use the bot in this channel.`); } + + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in.`); let data; diff --git a/commands/panic.js b/commands/panic.js index a269811..142cfa9 100644 --- a/commands/panic.js +++ b/commands/panic.js @@ -17,6 +17,9 @@ module.exports = { * @param {*} param3 */ run: async (client, message) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); if (!user) return message.channel.send(`You are not logged in.`); if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command.`); @@ -72,6 +75,9 @@ module.exports = { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { return interaction.send(`You are not allowed to use the bot in this channel.`); } + + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in.`); diff --git a/commands/plateSearch.js b/commands/plateSearch.js index 129f478..f7dcfb4 100644 --- a/commands/plateSearch.js +++ b/commands/plateSearch.js @@ -18,6 +18,9 @@ module.exports = { * @param {*} param3 */ run: async (client, message, args) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); if (!user) return message.channel.send(`You are not logged in.`); if (args.length==0) return message.channel.send(`You are missing a \`Plate #\`.`); @@ -88,6 +91,9 @@ module.exports = { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { return interaction.send(`You are not allowed to use the bot in this channel.`); } + + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in.`); diff --git a/commands/updateLicense.js b/commands/updateLicense.js index 7bc683b..2a7d251 100644 --- a/commands/updateLicense.js +++ b/commands/updateLicense.js @@ -18,6 +18,9 @@ module.exports = { * @param {*} param3 */ run: async (client, message, args) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); if (!user) return message.channel.send(`You are not logged in.`); if (args.length==0) return message.channel.send(`You must provide a \`First Name\`, \`Last Name\`, \`DOB\`(yyyy-mm-dd).`); @@ -149,6 +152,9 @@ module.exports = { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { return interaction.send(`You are not allowed to use the bot in this channel.`); } + + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in.`); diff --git a/commands/updateStatus.js b/commands/updateStatus.js index 0b0f253..47ce51b 100644 --- a/commands/updateStatus.js +++ b/commands/updateStatus.js @@ -18,6 +18,9 @@ module.exports = { * @param {*} param3 */ run: async (client, message, args) => { + let useCommand = await client.verifyUseCommand(GuildDB.serverID, message.member.roles.cache, false); + if (!useCommand) return message.channel.send("You don't have permission to use this command"); + let validStatus=['10-8','10-7','10-6','10-11','10-23','10-97','10-15','10-70','10-80', '10-41', '10-42']; let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); if (!user) return message.channel.send(`You are not logged in ${message.author}`); @@ -79,6 +82,9 @@ module.exports = { return interaction.send(`You are not allowed to use the bot in this channel.`); } + let useCommand = await client.verifyUseCommand(GuildDB.serverID, interaction.member.roles, true); + if (!useCommand) return interaction.send("You don't have permission to use this command"); + let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); if (!user) return interaction.send(`You are not logged in ${message.author}`); if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command.`); diff --git a/structures/LinesPoliceCadBot.js b/structures/LinesPoliceCadBot.js index b365d6f..42a1307 100644 --- a/structures/LinesPoliceCadBot.js +++ b/structures/LinesPoliceCadBot.js @@ -1,5 +1,4 @@ const { Collection, Client, MessageEmbed } = require('discord.js'); -const CommandHandler = require('../commands').Commands; const MongoClient = require('mongodb').MongoClient; const Logger = require("../util/Logger"); const io = require('socket.io-client'); @@ -152,14 +151,21 @@ class LinesPoliceCadBot extends Client { }); } - async checkRoleStatus(roles, serverID) { + async checkRoleStatus(rolesCache, serverID, isList) { let hasRole = false; let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":serverID}).then(guild => guild); // If user has one of any in the list of allowed roles, hasRole is true for (let i = 0; i < guild.server.allowedRoles.length; i++) { - if (roles.includes(guild.server.allowedRoles[i])) { - hasRole = true - break + if (!isList) { + if (rolesCache.some(role => role.id == guild.server.allowedRoles[i])) { + hasRole = true + break + } + } else { + if (rolesCache.includes(guild.server.allowedRoles[i])) { + hasRole = true + break + } } } return hasRole; @@ -207,6 +213,22 @@ class LinesPoliceCadBot extends Client { return guildData; } + /* + This command is to verify a user + has the correct role to use a + command ie. has cop role to use + name-search + */ + async verifyUseCommand(serverID, rolesCache, isList) { + let { customRoleStatus } = await this.GetGuild(serverID) + if (customRoleStatus) { + let hasRole = await this.checkRoleStatus(rolesCache, serverID, isList); + if (hasRole) { + return true // User has role, can use command + } else return false // User does not have role, can't use command + } else return true // There is no role limits + } + log(Text) { this.logger.log(Text); } @@ -227,242 +249,6 @@ class LinesPoliceCadBot extends Client { build() { this.login(this.config.Token); } - - // main() { - // client.on('ready', () => { - // console.log(`Logged in as ${client.user.tag}`); - // }); - - // // Basic Commands - // client.on('message', async (message) => { - // let { prefix, channelId, customRoleStatus, customChannelStatus, allowedChannels } = await this.getGuildPresets(message); - // if (!message.content.startsWith(prefix) || message.author.bot) return; - - // if (customChannelStatus==true&&!allowedChannels.includes(message.channel.id)) { - // return message.channel.send(`This is not the preferred channel, please one of the allowed channels. Use \`${prefix}channels\` to see a list of allowed channels ${message.author}`); - // } - // const args = message.content.slice(prefix.length).trim().split(' '); - // const command = args.shift().toLowerCase(); - - // // Valid Statuses Embed - // const validStatus = new MessageEmbed() - // .setColor('#0099ff') - // .setTitle('Lines Police CAD') - // .setURL('https://www.linespolice-cad.com/') - // .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') - // .setDescription('Valid Statuses') - // .addFields( - // { name: 'Statuses:', value: ` - // 10-8 | \`On Duty\` - // 10-7 | \`Off Duty\` - // 10-6 | \`Busy\` - // 10-11 | \`Traffic Stop\` - // 10-23 | \`Arrive on Scene\` - // 10-97 | \`In Route\` - // 10-15 | \`Subject in Custody\` - // 10-70 | \`Foot Pursuit\` - // 10-80 | \`Vehicle Pursiut\` - // ` - // } - // ) - - // // Help Embed - // const help = new MessageEmbed() - // .setColor('#0099ff') - // .setTitle('**Commands:**') - // .setURL(client.config.SupportServer) - // .setAuthor('LPS Website & Bot Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') - // .setDescription('Lines Police CAD Bot Commands') - // .addFields({ - // name: `**__Bot Commands:__**`, - // value: ` - // **${prefix}help** - \`Displays this help page\` - // **${prefix}stats** - \`Displays current Bot statistics\` - // **${prefix}ping** - \`Responds with Pong to check Bot responce\` - // `, - // inline: false - // }, - // { - // name: `**__LPC Commands (1/2):__**`, - // value: ` - // **${prefix}login** - \`Redirects you to connect your discord to LPC(DM only)\` - // **${prefix}logout** - \`Logs out of your current logged in account\` - // **${prefix}validStatus** - \`Shows list of valid statuses to updade to\` - // **${prefix}checkStatus** - \`Check your own or other status\` - // **${prefix}updateStatus** - \`Updates your status\` - // **${prefix}account** - \`returns logged in account\` - // **${prefix}penalCodes** - \`Provides Link to penal codes\` - // **${prefix}namedb** - \`Searches for Civilian by Name\` - // **${prefix}platedb** - \`Searches for Vehicle by Licence Plate #\` - // **${prefix}firearmdb** - \`Searches for Firearms by Serial #\` - // **${prefix}panic** - \`Enables/Disables your panic button\` - // **${prefix}license** - \`Revoke/Reinstate License\` - // `, - // inline: true - // }, - // { - // name: `**__LPC Command (2/2):__**`, - // value: ` - // **${prefix}roles** - \`Shows a list of allowed roles\` - // **${prefix}channels** - \`Shows a list of allowed channels\` - // **${prefix}joincommunity** - \`Joins a community with the given code\` - // **${prefix}leavecommunity** - \`Leaves your current active community\` - // **${prefix}community** - \`Returns the name of the Community your currenty in\` - // `, - // inline: false - // }, - // { - // name: `**__Admin Commands:__**`, - // value: ` - // **${prefix}setPrefix** - \`Sets new prefix\` - // **${prefix}setChannel** - \`Adds channel to list of allowed channels\` - // **${prefix}removeChannel** - \`Removes channel from list of allowed channels\` - // **${prefix}setRole** - \`Adds role to list of allowed roles\` - // **${prefix}removeRole** - \`Removes role from list of allowed roles\` - // **${prefix}togglePingOnPanic** - \`Enable/disable ping role on panic\` - // `, - // inline: false - // }) - - // const stats = new MessageEmbed() - // .setColor('#0099ff') - // .setTitle("Current LPC-Bot Statistics") - // .setURL(client.config.SupportServer) - // .addField(" \u200B ", "**Channels** : ` " + `${client.channels.cache.size}` + " `") - // .addField(" \u200B ", "**Servers** : ` " + `${client.guilds.cache.size}` + " `") - // .addField(" \u200B ", "**Users** : ` " + `${client.users.cache.size}` + " `") - - // if (command == 'ping') return message.channel.send('Pong!'); - // if (command == 'help') return message.channel.send(help); - // if (command == 'stats') return message.channel.send(stats); - // if (command == 'setprefix') { - // if (message.channel.type=="dm") return message.author.send(`You cannot set a prefix in a dm ${message.author}`); - // if(!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`); - // this.commandHandler.newPrefix(message, args); - // } - // if (command == 'setchannel') { - // if (message.channel.type=="dm") return message.author.send(`You cannot set a channel in a dm ${message.author}`); - // if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`); - // this.commandHandler.setChannel(message, args); - // } - // if (command == 'removechannel') { - // if (message.channel.type=="dm") return message.author.send(`You cannot remove a channel in a dm ${message.author}`); - // if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`); - // this.commandHandler.removeChannel(message, args); - // } - // if (command == 'setrole') { - // if (message.channel.type=="dm") return message.author.send(`You cannot set a role in a dm ${message.author}`); - // if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`); - // this.commandHandler.setRole(message, args); - // } - // if (command == 'removerole') { - // if (message.channel.type=="dm") return message.author.send(`You cannot remove a role in a dm ${message.author}`); - // if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`); - // this.commandHandler.removeRole(message, args); - // } - // if (command == 'togglepingonpanic') { - // if (message.channel.type=="dm") return message.author.send(`You cannot remove a role in a dm ${message.author}`); - // if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`); - // this.commandHandler.togglePingOnPanic(message, args); - // } - // if (command == 'roles') { - // if (message.channel.type=="dm") return message.author.send(`You cannot see allowed roles in a dm ${message.author}`); - // this.commandHandler.roles(message); - // } - // if (command == 'channels') { - // if (message.channel.type=="dm") return message.channel.send(`You cannot see allowed channels in a dm ${message.author}`); - // this.commandHandler.channels(message); - // } - // if (command == 'pingonpanic') { - // if (message.channel.type=="dm") return message.channel.send(`You cannot see allowed channels in a dm ${message.author}`); - // this.commandHandler.getPingOnPanicStatus(message); - // } - - // // Login - // if (command == 'login') { - // if (message.channel.type=="text") return message.channel.send(`You must direct message me to use this command ${message.author}`); - // this.commandHandler.remoteLogin(message, args); - // } - // if (command == 'logout') this.commandHandler.remoteLogout(message); - // if (command == 'validstatus') return message.channel.send(validStatus); - // if (command == 'checkstatus') { - // if (customRoleStatus) { - // let hasRole = await this.commandHandler.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.checkStatus(message, args); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}`); - // } else this.commandHandler.checkStatus(message, args); - // } - // if (command == 'updatestatus') { - // if (customRoleStatus) { - // let hasRole = await this.commandHandler.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.updateStatus(message, args, prefix); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}`); - // } else this.commandHandler.updateStatus(message, args, prefix); - // } - // if (command == 'account') this.commandHandler.account(message); - // if (command == 'penalcodes') return message.channel.send('https://www.linespolice-cad.com/penal-code'); - // if (command == 'namedb') { - // if (customRoleStatus) { - // let hasRole = await this.commandHandler.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.nameSearch(message, args); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}`); - // } else this.commandHandler.nameSearch(message, args); - // } - // if (command == 'platedb') { - // if (customRoleStatus) { - // let hasRole = await this.commandHandler.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.plateSearch(message, args); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}`); - // } else this.commandHandler.plateSearch(message, args); - // } - // if (command == 'firearmdb') { - // if (customRoleStatus) { - // let hasRole = await this.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.firearmSearch(message, args); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}`); - // } else this.commandHandler.firearmSearch(message, args); - // } - // if (command == 'panic') { - // if (customRoleStatus) { - // let hasRole = await this.commandHandler.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.enablePanic(message); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}`); - // } else this.commandHandler.enablePanic(message); - // } - // if (command == 'license') { - // if (customRoleStatus) { - // let hasRole = await this.commandHandler.checkRoleStatus(message); - // if (hasRole) { - // this.commandHandler.updateLicense(message, args); - // } else return message.channel.send(`You don't have permission to use this command ${message.author}! `); - // } else this.commandHandler.updateLicense(message, args); - // } - // if (command == 'joincommunity') this.commandHandler.joinCommunity(message, args); - // if (command == 'leavecommunity') this.commandHandler.leaveCommunity(message); - // if (command == 'community') this.commandHandler.community(message); - - // // Dev Commands (not visible in help) && easter egg commands - // if (command == 'version') message.channel.send(`**LPS-BOT Version : ${this.dev}-${this.config.version}**`) - // if (command == 'whatisthemeaningoflife') message.channel.send('42'); - // if (command == 'whatareyou' || command == 'whoareyou') message.channel.send('Im your friendly neighborhood Lines Police CAD Bot'); - // if (command == 'whocreatedyou') message.channel.send('Lines Police CAD Developer McDazzzled | https://github.com/SowinskiBraeden'); - // if (command == 'pingserver') { - // const socket = io.connect(this.config.socket); - // socket.emit('botping', {message:'hello there'}); - // socket.on('botpong', (data) => { - // console.log(data); - // message.channel.send(`Debug: Server responded`) - // socket.disconnect(); - // }); - // } - // }); - // } } module.exports = LinesPoliceCadBot; \ No newline at end of file