update/verify user has role

This commit is contained in:
SowinskiBraeden committed 2022-03-17 15:30:49 -07:00
1 parent e1c599d3c6
commit 8d5584d097
10 files changed
+74 -849

No files matched your search

+3 -4
View File
@@ -2,13 +2,12 @@
node_modules/* node_modules/*
# test file # test file
default.js
test.js test.js
# Dev Launch # Dev
dev.js
# Dev config
config/dev-config.js config/dev-config.js
dev.js
# Logs # Logs
logs/* logs/*
-603
View File
@@ -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};
+7 -1
View File
@@ -16,7 +16,10 @@ module.exports = {
* @param {string[]} args * @param {string[]} args
* @param {*} param3 * @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); 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) 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.`); if (user.user.activeCommunity == null) return message.channel.send(`You must join a community to use this command.`);
@@ -57,6 +60,9 @@ module.exports = {
return interaction.send(`You are not allowed to use the bot in this channel.`); 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); 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.`); if (!user) return interaction.send(`You are not logged in.`);
if (user.user.activeCommunity == null) return interaction.send(`You must join a community to use this command.`); if (user.user.activeCommunity == null) return interaction.send(`You must join a community to use this command.`);
+6
View File
@@ -18,6 +18,9 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, message, args) => { 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); 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) return message.channel.send(`You are not logged in.`);
if (args.length==0) return message.channel.send(`You are missing a \`Serial Number\`.`); 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.`); 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); 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.`); if (!user) return interaction.send(`You are not logged in.`);
let data = { let data = {
+7
View File
@@ -18,6 +18,9 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, message, args, { GuildDB }) => { 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) { if (GuildDB.customRoleStatus) {
let userRoles = []; // TODO: get user roles let userRoles = []; // TODO: get user roles
let hasRole = await client.hasRole(userRoles, GuildDB.serverID); let hasRole = await client.hasRole(userRoles, GuildDB.serverID);
@@ -144,6 +147,10 @@ module.exports = {
if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) {
return interaction.send(`You are not allowed to use the bot in this channel.`); 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); 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.`); if (!user) return interaction.send(`You are not logged in.`);
let data; let data;
+6
View File
@@ -17,6 +17,9 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, message) => { 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); 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) 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.`); if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command.`);
@@ -73,6 +76,9 @@ module.exports = {
return interaction.send(`You are not allowed to use the bot in this channel.`); 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); 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.`); if (!user) return interaction.send(`You are not logged in.`);
if (user.user.activeCommunity==null) return interaction.send(`You must join a community to use this command.`); if (user.user.activeCommunity==null) return interaction.send(`You must join a community to use this command.`);
+6
View File
@@ -18,6 +18,9 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, message, args) => { 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); 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) return message.channel.send(`You are not logged in.`);
if (args.length==0) return message.channel.send(`You are missing a \`Plate #\`.`); if (args.length==0) return message.channel.send(`You are missing a \`Plate #\`.`);
@@ -89,6 +92,9 @@ module.exports = {
return interaction.send(`You are not allowed to use the bot in this channel.`); 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); 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.`); if (!user) return interaction.send(`You are not logged in.`);
let data = { let data = {
+6
View File
@@ -18,6 +18,9 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, message, args) => { 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); 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) 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).`); if (args.length==0) return message.channel.send(`You must provide a \`First Name\`, \`Last Name\`, \`DOB\`(yyyy-mm-dd).`);
@@ -150,6 +153,9 @@ module.exports = {
return interaction.send(`You are not allowed to use the bot in this channel.`); 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); 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.`); if (!user) return interaction.send(`You are not logged in.`);
+6
View File
@@ -18,6 +18,9 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, message, args) => { 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 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); 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}`); 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.`); 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); 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) 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.`); if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command.`);
+27 -241
View File
@@ -1,5 +1,4 @@
const { Collection, Client, MessageEmbed } = require('discord.js'); const { Collection, Client, MessageEmbed } = require('discord.js');
const CommandHandler = require('../commands').Commands;
const MongoClient = require('mongodb').MongoClient; const MongoClient = require('mongodb').MongoClient;
const Logger = require("../util/Logger"); const Logger = require("../util/Logger");
const io = require('socket.io-client'); 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 hasRole = false;
let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":serverID}).then(guild => guild); 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 // 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++) { for (let i = 0; i < guild.server.allowedRoles.length; i++) {
if (roles.includes(guild.server.allowedRoles[i])) { if (!isList) {
hasRole = true if (rolesCache.some(role => role.id == guild.server.allowedRoles[i])) {
break hasRole = true
break
}
} else {
if (rolesCache.includes(guild.server.allowedRoles[i])) {
hasRole = true
break
}
} }
} }
return hasRole; return hasRole;
@@ -207,6 +213,22 @@ class LinesPoliceCadBot extends Client {
return guildData; 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) { log(Text) {
this.logger.log(Text); this.logger.log(Text);
} }
@@ -227,242 +249,6 @@ class LinesPoliceCadBot extends Client {
build() { build() {
this.login(this.config.Token); 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** <user> - \`Check your own or other status\`
// **${prefix}updateStatus** <status> - \`Updates your status\`
// **${prefix}account** - \`returns logged in account\`
// **${prefix}penalCodes** - \`Provides Link to penal codes\`
// **${prefix}namedb** <firstName> <lastName> <dob> - \`Searches for Civilian by Name\`
// **${prefix}platedb** <licence plate #> - \`Searches for Vehicle by Licence Plate #\`
// **${prefix}firearmdb** <Serial #> - \`Searches for Firearms by Serial #\`
// **${prefix}panic** - \`Enables/Disables your panic button\`
// **${prefix}license** <revoke|reinstate> <firstName> <lastName> <dob> - \`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** <community code> - \`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** <new prefix> - \`Sets new prefix\`
// **${prefix}setChannel** <channel> - \`Adds channel to list of allowed channels\`
// **${prefix}removeChannel** <channel> - \`Removes channel from list of allowed channels\`
// **${prefix}setRole** <role> - \`Adds role to list of allowed roles\`
// **${prefix}removeRole** <role> - \`Removes role from list of allowed roles\`
// **${prefix}togglePingOnPanic** <true|false> <role> - \`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; module.exports = LinesPoliceCadBot;