Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80c065c408 | ||
|
|
d3d5f94df2 | ||
|
|
e8bb22b69f | ||
|
|
57522a03ad | ||
|
|
1a4d130ad9 | ||
|
|
c37133211c | ||
|
|
1da3f590e2 | ||
|
|
a78e1cdd77 | ||
|
|
2ff1aa5153 | ||
|
|
dd1db5c9c9 | ||
|
|
7838cf3fbb | ||
|
|
9f75974b7e | ||
|
|
7c8a339e27 | ||
|
|
0b312947f1 | ||
|
|
c09484f617 | ||
|
|
13e830e439 | ||
|
|
7bab3836f7 | ||
|
|
c4644ce44d | ||
|
|
4f4de80ed7 | ||
|
|
02c0e0c554 | ||
|
|
d745ec29ad | ||
|
|
d0b8c802d1 | ||
|
|
f54dd72317 | ||
|
|
65c5f88e94 | ||
|
|
60630c77e6 | ||
|
|
79db375eba | ||
|
|
dc55d3876c | ||
|
|
7119d01096 | ||
|
|
6a1d1bf167 | ||
|
|
ad7bd3e8b7 | ||
|
|
44fae74f40 | ||
|
|
3872a5d242 | ||
|
|
1b56608d07 | ||
|
|
f174e603a3 | ||
|
|
2a300a2bb6 | ||
|
|
a15a598459 | ||
|
|
5960153618 | ||
|
|
267eab304d | ||
|
|
9aa714a7c7 | ||
|
|
3df5e4d617 | ||
|
|
1c3a5ae83a | ||
|
|
8dac1d4262 |
No files matched your search
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Use command.....
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
+5
-2
@@ -4,5 +4,8 @@ node_modules/*
|
|||||||
# test file
|
# test file
|
||||||
test.js
|
test.js
|
||||||
|
|
||||||
# Dev version
|
# Dev Launch
|
||||||
dev.js
|
dev.js
|
||||||
|
|
||||||
|
# Dev config
|
||||||
|
dev-config.json
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
const MongoClient = require('mongodb').MongoClient;
|
const MongoClient = require('mongodb').MongoClient;
|
||||||
|
const ObjectId = require('mongodb').ObjectID
|
||||||
const randomstring = require('randomstring');
|
const randomstring = require('randomstring');
|
||||||
const io = require('socket.io-client');
|
const io = require('socket.io-client');
|
||||||
const Discord = require('discord.js');
|
const Discord = require('discord.js');
|
||||||
@@ -6,21 +7,21 @@ const client = new Discord.Client();
|
|||||||
|
|
||||||
class Bot {
|
class Bot {
|
||||||
|
|
||||||
constructor(dev, token, config) {
|
constructor(dev, token, config, mongoURI, dbo) {
|
||||||
this.dev = dev;
|
this.dev = dev;
|
||||||
this.token = token;
|
this.token = token;
|
||||||
this.config = require(config);
|
this.config = require(config);
|
||||||
this.connectMongo();
|
this.connectMongo(mongoURI, dbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
async connectMongo() {
|
async connectMongo(mongoURI, dbo) {
|
||||||
this.db = await MongoClient.connect(this.config.mongoURI,{useUnifiedTopology:true});
|
this.db = await MongoClient.connect(mongoURI,{useUnifiedTopology:true});
|
||||||
this.dbo = this.db.db(this.config.dbo);
|
this.dbo = this.db.db(dbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Updates Prefix
|
// Updates Prefix
|
||||||
async newPrefix(message, n) {
|
async newPrefix(message, n) {
|
||||||
if (n[0]==undefined) return message.channel.send(`You must provide a **new prefix** ${message.author}!`);
|
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!')
|
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) {
|
this.dbo.collection("prefixes").updateOne({"server.serverID":message.guild.id},{$set:{"server.prefix":n[0]}},function(err, res) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
@@ -30,67 +31,35 @@ class Bot {
|
|||||||
|
|
||||||
// Remote Login
|
// Remote Login
|
||||||
async remoteLogin(message, args) {
|
async remoteLogin(message, args) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
return message.channel.send('Login from Lines Police CAD account management https://www.linespolice-cad.com/');
|
||||||
if (user) return message.author.send(`You are already logged in ${message.author}! Use \`?logout\` to logout or \`?account\` to see your logged in account.`);
|
|
||||||
if (args.length==0) return message.author.send(`You must provide a **email** and **login token** ${message.author}!`);
|
|
||||||
if (!args[0]==null||!args[0]==undefined&&args[1]==null||args[1]==undefined) return message.author.send(`You must provide a **login token** ${message.author}!`);
|
|
||||||
user = await this.dbo.collection("users").findOne({"user.email":args[0]}).then(user => user);
|
|
||||||
if (user==null||user==undefined) return message.author.send(`Cannot find the email **${args[0]}** ${message.author}!`);
|
|
||||||
|
|
||||||
// Check discord Login Token
|
|
||||||
if (args[1]==user.user.discordLoginToken) {
|
|
||||||
// Modify user to include user.user.discord
|
|
||||||
let discord = {
|
|
||||||
id: message.author.id,
|
|
||||||
username: message.author.username,
|
|
||||||
discriminator: message.author.discriminator
|
|
||||||
}
|
|
||||||
let newToken = randomstring.generate(12);
|
|
||||||
this.dbo.collection("users").updateOne(
|
|
||||||
{
|
|
||||||
"user.email": args[0]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
$set: {
|
|
||||||
"user.discord": discord,
|
|
||||||
"user.discordLoginToken": newToken
|
|
||||||
}
|
|
||||||
}, function(err,res) {
|
|
||||||
if (err) throw err;
|
|
||||||
return message.author.send(`Logged in as **${user.user.username}** ${message.author}!`);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return message.author.send(`Incorrect login token ${message.author}! Try again or Regenerate your Discord Login Token.`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async remoteLogout(message) {
|
async remoteLogout(message) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
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}!`);
|
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":""}},function(err,res) {
|
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;
|
if (err) throw err;
|
||||||
message.channel.send(`Succesfully logged out ${message.author}!`);
|
message.channel.send(`Succesfully disconnected you Discord account ${message.author}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async account(message) {
|
async account(message) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
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}!`);
|
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}**`);
|
message.author.send(`${message.author} Logged in as **${user.user.username}** | **${user.user.email}**`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async nameSearch(message, args) {
|
async nameSearch(message, args) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
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) return message.channel.send(`You are not logged in ${message.author}`);
|
||||||
let data;
|
let data;
|
||||||
if (user.user.activeCommunity=='' || user.user.activeCommunity==null) {
|
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**(mm/dd/yyyy) ${message.author}!`);
|
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**(mm/dd/yyyy) ${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**(mm/dd/yyyy) ${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==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 (args.length==1) return message.channel.send(`You're missing a \`Last Name\` ${message.author}`);
|
||||||
|
|
||||||
if (user.user.activeCommunity=='' || user.user.activeCommunity==null) {
|
if (user.user.activeCommunity=='' || user.user.activeCommunity==null) {
|
||||||
data = {
|
data = {
|
||||||
@@ -119,7 +88,7 @@ class Bot {
|
|||||||
|
|
||||||
if (results.user._id==user._id) {
|
if (results.user._id==user._id) {
|
||||||
if (results.civilians.length == 0) {
|
if (results.civilians.length == 0) {
|
||||||
return message.channel.send(`Name **${args[0]} ${args[1]}** not found ${message.author}`);
|
return message.channel.send(`Name \`${args[0]} ${args[1]}\` not found ${message.author}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < results.civilians.length; i++) {
|
for (let i = 0; i < results.civilians.length; i++) {
|
||||||
@@ -140,12 +109,12 @@ class Bot {
|
|||||||
.setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', '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')
|
.setDescription('Name Search Results')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: `**First Name**`, value: `**${results.civilians[i].civilian.firstName}**`, inline: true },
|
{ name: `**First Name**`, value: `\`${results.civilians[i].civilian.firstName}\``, inline: true },
|
||||||
{ name: `**Last Name**`, value: `**${results.civilians[i].civilian.lastName}**`, inline: true },
|
{ name: `**Last Name**`, value: `\`${results.civilians[i].civilian.lastName}\``, inline: true },
|
||||||
{ name: `**DOB**`, value: `**${results.civilians[i].civilian.birthday}**`, inline: true },
|
{ name: `**DOB**`, value: `\`${results.civilians[i].civilian.birthday}\``, inline: true },
|
||||||
{ name: `**Drivers License**`, value: `**${licenceStatus}**`, inline: true },
|
{ name: `**Drivers License**`, value: `\`${licenceStatus}\``, inline: true },
|
||||||
{ name: `**Firearm Licence**`, value: `**${firearmLicence}**`, inline: true },
|
{ name: `**Firearm Licence**`, value: `\`${firearmLicence}\``, inline: true },
|
||||||
{ name: `**Gender**`, value: `**${results.civilians[i].civilian.gender}**`, inline: true }
|
{ name: `**Gender**`, value: `\`${results.civilians[i].civilian.gender}\``, inline: true }
|
||||||
)
|
)
|
||||||
// Check Other details
|
// Check Other details
|
||||||
let address = results.civilians[i].civilian.address;
|
let address = results.civilians[i].civilian.address;
|
||||||
@@ -154,28 +123,28 @@ class Bot {
|
|||||||
let weight = results.civilians[i].civilian.weight;
|
let weight = results.civilians[i].civilian.weight;
|
||||||
let eyeColor = results.civilians[i].civilian.eyeColor;
|
let eyeColor = results.civilians[i].civilian.eyeColor;
|
||||||
let hairColor = results.civilians[i].civilian.hairColor;
|
let hairColor = results.civilians[i].civilian.hairColor;
|
||||||
if (address != null && address != undefined && address != '') nameResult.addFields({ name: `**Address**`, value: `**${address}**`, inline: true });
|
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 (occupation != null && occupation != undefined && occupation != '') nameResult.addFields({ name: `**Occupation**`, value: `\`${occupation}\``, inline: true });
|
||||||
if (height!=null&&height!=undefined&&height!="NaN"&&height!='') {
|
if (height!=null&&height!=undefined&&height!="NaN"&&height!='') {
|
||||||
if (results.civilians[i].civilian.heightClassification=='imperial') {
|
if (results.civilians[i].civilian.heightClassification=='imperial') {
|
||||||
let ft = Math.floor(height/12);
|
let ft = Math.floor(height/12);
|
||||||
let inch = height%12;
|
let inch = height%12;
|
||||||
nameResult.addFields({ name: '**Height**', value: `**${ft}'${inch}"**`, inline: true });
|
nameResult.addFields({ name: '**Height**', value: `\`${ft}'${inch}"\``, inline: true });
|
||||||
} else {
|
} else {
|
||||||
nameResult.addFields({ name: '**Height**', value: `**${height}cm**`, inline: true });
|
nameResult.addFields({ name: '**Height**', value: `\`${height}cm\``, inline: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (weight!=null&&weight!=undefined&&weight!='') {
|
if (weight!=null&&weight!=undefined&&weight!='') {
|
||||||
if (results.civilians[i].civilian.weightClassification=='imperial') {
|
if (results.civilians[i].civilian.weightClassification=='imperial') {
|
||||||
nameResult.addFields({ name: '**Weight**', value: `**${weight}lbs.**`, inline: true });
|
nameResult.addFields({ name: '**Weight**', value: `\`${weight}lbs.\``, inline: true });
|
||||||
} else {
|
} else {
|
||||||
nameResult.addFields({ name: '**Weight**', value: `**${weight}kgs.**`, inline: true });
|
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 (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});
|
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:'**Organ Donor**',value:`\`${results.civilians[i].civilian.organDonor}\``,inline:true});
|
||||||
nameResult.addFields({name:'**Veteran**',value:`**${results.civilians[i].civilian.veteran}**`,inline:true});
|
nameResult.addFields({name:'**Veteran**',value:`\`${results.civilians[i].civilian.veteran}\``,inline:true});
|
||||||
message.channel.send(nameResult);
|
message.channel.send(nameResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -185,8 +154,8 @@ class Bot {
|
|||||||
|
|
||||||
async plateSearch(message, args) {
|
async plateSearch(message, args) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
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) 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}`);
|
if (args.length==0) return message.channel.send(`You are missing a \`Plate #\` ${message.author}`);
|
||||||
let data = {
|
let data = {
|
||||||
user: user,
|
user: user,
|
||||||
query: {
|
query: {
|
||||||
@@ -200,7 +169,7 @@ class Bot {
|
|||||||
|
|
||||||
if (results.user._id==user._id) {
|
if (results.user._id==user._id) {
|
||||||
if (results.vehicles.length == 0) {
|
if (results.vehicles.length == 0) {
|
||||||
return message.channel.send(`Plate Number **${args[0]}** not found ${message.author}`);
|
return message.channel.send(`Plate Number \`${args[0]}\` not found ${message.author}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < results.vehicles.length; i++) {
|
for (let i = 0; i < results.vehicles.length; i++) {
|
||||||
@@ -211,22 +180,22 @@ class Bot {
|
|||||||
.setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', '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')
|
.setDescription('Plate Search Results')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: `**Plate #**`, value: `**${results.vehicles[i].vehicle.plate}**`, inline: true },
|
{ name: `**Plate #**`, value: `\`${results.vehicles[i].vehicle.plate}\``, inline: true },
|
||||||
{ name: `**Vin #**`, value: `**${results.vehicles[i].vehicle.vin}**`, inline: true },
|
{ name: `**Vin #**`, value: `\`${results.vehicles[i].vehicle.vin}\``, inline: true },
|
||||||
{ name: `**Model**`, value: `**${results.vehicles[i].vehicle.model}**`, inline: true },
|
{ name: `**Model**`, value: `\`${results.vehicles[i].vehicle.model}\``, inline: true },
|
||||||
{ name: `**Color**`, value: `**${results.vehicles[i].vehicle.color}**`, inline: true },
|
{ name: `**Color**`, value: `\`${results.vehicles[i].vehicle.color}\``, inline: true },
|
||||||
{ name: `**Owner**`, value: `**${results.vehicles[i].vehicle.registeredOwner}**`, inline: true },
|
{ name: `**Owner**`, value: `\`${results.vehicles[i].vehicle.registeredOwner}\``, inline: true },
|
||||||
)
|
)
|
||||||
// Other details
|
// Other details
|
||||||
let validRegistration = results.vehicles[i].vehicle.validRegistration;
|
let validRegistration = results.vehicles[i].vehicle.validRegistration;
|
||||||
let validInsurance = results.vehicles[i].vehicle.validInsurance;
|
let validInsurance = results.vehicles[i].vehicle.validInsurance;
|
||||||
let stolen = results.vehicles[i].vehicle.isStolen;
|
let stolen = results.vehicles[i].vehicle.isStolen;
|
||||||
if (validRegistration=='1') plateResult.addFields({ name: `**Registration**`, value: `**Valid**`, inline: true });
|
if (validRegistration=='1') plateResult.addFields({ name: `**Registration**`, value: `\`Valid\``, inline: true });
|
||||||
if (validRegistration=='2') plateResult.addFields({ name: `**Registration**`, value: `**InValid**`, 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=='1') plateResult.addFields({ name: `**Insurance**`, value: `\`Valid\``, inline: true });
|
||||||
if (validInsurance=='2') plateResult.addFields({ name: `**Insurance**`, value: `**InValid**`, 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=='1') plateResult.addFields({ name: `**Stolen**`, value: `\`No\``, inline: true });
|
||||||
if (stolen=='2') plateResult.addFields({ name: `**Stolen**`, value: `**Yes**`, inline: true });
|
if (stolen=='2') plateResult.addFields({ name: `**Stolen**`, value: `\`Yes\``, inline: true });
|
||||||
message.channel.send(plateResult);
|
message.channel.send(plateResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -236,8 +205,8 @@ class Bot {
|
|||||||
|
|
||||||
async firearmSearch(message, args) {
|
async firearmSearch(message, args) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
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) 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}`);
|
if (args.length==0) return message.channel.send(`You are missing a \`Serial Number\` ${message.author}`);
|
||||||
let data = {
|
let data = {
|
||||||
user: user,
|
user: user,
|
||||||
query: {
|
query: {
|
||||||
@@ -261,14 +230,14 @@ class Bot {
|
|||||||
.setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', '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')
|
.setDescription('Firearm Search Results')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: `**Serial Number**`, value: `**${results.firearms[i].firearm.serialNumber}**`, inline: true },
|
{ name: `**Serial Number**`, value: `\`${results.firearms[i].firearm.serialNumber}\``, inline: true },
|
||||||
{ name: `**Type**`, value: `**${results.firearms[i].firearm.weaponType}**`, inline: true },
|
{ name: `**Type**`, value: `\`${results.firearms[i].firearm.weaponType}\``, inline: true },
|
||||||
{ name: `**Owner**`, value: `**${results.firearms[i].firearm.registeredOwner}**`, inline: true },
|
{ name: `**Owner**`, value: `\`${results.firearms[i].firearm.registeredOwner}\``, inline: true },
|
||||||
)
|
)
|
||||||
// Other details
|
// Other details
|
||||||
let isStolen = results.firearms[i].firearm.isStolen;
|
let isStolen = results.firearms[i].firearm.isStolen;
|
||||||
if (isStolen=="false"||isStolen==false) firearmResult.addFields({name:`**Stolen**`,value:'**No**',inline: true});
|
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});
|
if (isStolen=="true"||isStolen==true) firearmResult.addFields({name:`**Stolen**`,value:'\`Yes\`',inline: true});
|
||||||
message.channel.send(firearmResult);
|
message.channel.send(firearmResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -277,25 +246,31 @@ class Bot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async checkStatus(message, args) {
|
async checkStatus(message, args) {
|
||||||
if (args.length==0) {
|
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
||||||
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) 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}`);
|
||||||
message.channel.send(`${message.author}'s status: ${user.user.dispatchStatus} | Set by: ${user.user.dispatchStatusSetBy}`);
|
if (args.length == 0) {
|
||||||
|
message.channel.send(`${message.author}'s status: \`${user.user.dispatchStatus}\` | Set by: \`${user.user.dispatchStatusSetBy}\``);
|
||||||
} else {
|
} else {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
let targetUserID = args[0].replace('<@!', '').replace('>', '');
|
||||||
if (!user) return message.channel.send(`Cannot find **${args[0]}** ${message.author}!`);
|
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
|
// This lame line of code to get username without ping on discord
|
||||||
const User = client.users.cache.get(args[0].replace('<@!', '').replace('>', ''));
|
const User = client.users.cache.get(args[0].replace('<@!', '').replace('>', ''));
|
||||||
message.channel.send(`${message.author}, **${User.tag}'s** status: ${user.user.dispatchStatus} | Set by: ${user.user.dispatchStatusSetBy}`);
|
if (!targetUser) return message.channel.send(`Cannot find **${User.tag}** ${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) {
|
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 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);
|
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) 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 (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\`.`);
|
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 onDuty=null;
|
||||||
let updateDuty=false;
|
let updateDuty=false;
|
||||||
let status = args[0]
|
let status = args[0]
|
||||||
@@ -319,33 +294,22 @@ class Bot {
|
|||||||
const socket = io.connect(this.config.socket);
|
const socket = io.connect(this.config.socket);
|
||||||
socket.emit('bot_update_status', req);
|
socket.emit('bot_update_status', req);
|
||||||
socket.on('bot_updated_status', (res) => {
|
socket.on('bot_updated_status', (res) => {
|
||||||
message.channel.send(`Succesfully updated status to **${args[0]}** ${message.author}!`);
|
message.channel.send(`Succesfully updated status to \`${args[0]}\` ${message.author}`);
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async enablePanic(message) {
|
async enablePanic(message) {
|
||||||
let user = await this.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user);
|
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) return message.channel.send(`You are not logged in ${message.author}`);
|
||||||
// If panic isn't enabled, enable panic
|
if (user.user.activeCommunity==null) return message.channel.send(`You must join a community to use this command ${message.author}`);
|
||||||
if (user.user.dispatchStatus!='Panic') {
|
const socket = io.connect(this.config.socket);
|
||||||
this.updateStatus(message, ['Panic'], null);
|
// If panic is enabled, disable panic
|
||||||
let myReq = {
|
if (user.user.dispatchStatus=='Panic') {
|
||||||
userID: user._id,
|
|
||||||
userUsername: user.user.username,
|
|
||||||
activeCommunity: user.user.activeCommunity
|
|
||||||
}
|
|
||||||
const socket = io.connect(this.config.socket);
|
|
||||||
socket.emit('botping');
|
|
||||||
socket.emit('panic_button_update', myReq);
|
|
||||||
message.channel.send(`Enabled Panic ${message.author}!`);
|
|
||||||
// If panic is enabled, set status to Online (panic off)
|
|
||||||
} else if (user.user.dispatchStatus=='Panic') {
|
|
||||||
let myReq = {
|
let myReq = {
|
||||||
userID: user._id,
|
userID: user._id,
|
||||||
communityID: user.user.activeCommunity
|
communityID: user.user.activeCommunity
|
||||||
};
|
};
|
||||||
const socket = io.connect(this.config.socket);
|
|
||||||
socket.emit('clear_panic', myReq);
|
socket.emit('clear_panic', myReq);
|
||||||
|
|
||||||
let myUpdateReq = {
|
let myUpdateReq = {
|
||||||
@@ -355,31 +319,326 @@ class Bot {
|
|||||||
onDuty: null,
|
onDuty: null,
|
||||||
updateDuty: false
|
updateDuty: false
|
||||||
};
|
};
|
||||||
socket.emit('update_status', myUpdateReq);
|
socket.emit('bot_update_status', myUpdateReq);
|
||||||
message.channel.send(`Disabled Panic ${message.author} and set status to 10-8.`);
|
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 getPrefix(message) {
|
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 getGuildPresets(message) {
|
||||||
let prefix;
|
let prefix;
|
||||||
|
let channelId;
|
||||||
|
let customRoleStatus;
|
||||||
|
let customChannelStatus;
|
||||||
|
let allowedChannels;
|
||||||
if (message.channel.type!="dm") {
|
if (message.channel.type!="dm") {
|
||||||
let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild);
|
let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).then(guild => guild);
|
||||||
|
|
||||||
// If not prefix, generate server default
|
// If guild not found, generate guild default
|
||||||
if (!guild) {
|
if (!guild) {
|
||||||
let newGuild = {
|
let newGuild = {
|
||||||
server: {
|
server: {
|
||||||
serverID: message.guild.id,
|
serverID: message.guild.id,
|
||||||
prefix: this.config.defaultPrefix
|
prefix: this.config.defaultPrefix,
|
||||||
|
hasCustomRoles: false,
|
||||||
|
hasCustomChannels: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.dbo.collection("prefixes").insertOne(newGuild, function(err, res) {
|
this.dbo.collection("prefixes").insertOne(newGuild, function(err, res) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
});
|
});
|
||||||
prefix = newGuild.server.serverID;
|
prefix = newGuild.server.prefix;
|
||||||
} else prefix = guild.server.prefix;
|
customRoleStatus = newGuild.server.hasCustomRoles;
|
||||||
} else prefix = this.config.defaultPrefix;
|
customChannelStatus = newGuild.server.hasCustomChannels;
|
||||||
return prefix
|
allowedChannels = null;
|
||||||
|
} else {
|
||||||
|
prefix = guild.server.prefix;
|
||||||
|
customRoleStatus = guild.server.hasCustomRoles;
|
||||||
|
customChannelStatus = guild.server.hasCustomChannels;
|
||||||
|
if (guild.server.allowedChannels!=undefined||guild.server.allowedChannels!=null&&guild.server.allowedChannels.length>0) {
|
||||||
|
allowedChannels = guild.server.allowedChannels;
|
||||||
|
} else allowedChannels = null;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
prefix = this.config.defaultPrefix;
|
||||||
|
customRoleStatus = false;
|
||||||
|
customChannelStatus = false;
|
||||||
|
allowedChannels = null;
|
||||||
|
}
|
||||||
|
return {prefix, channelId, customRoleStatus, customChannelStatus, allowedChannels};
|
||||||
|
}
|
||||||
|
|
||||||
|
async checkRoleStatus(message) {
|
||||||
|
let hasRole = false;
|
||||||
|
let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":message.guild.id}).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 (message.member.roles.cache.some(role => role.id == guild.server.allowedRoles[i])) hasRole = true;
|
||||||
|
}
|
||||||
|
return hasRole;
|
||||||
|
}
|
||||||
|
|
||||||
|
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") {
|
||||||
|
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}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
@@ -388,101 +647,233 @@ class Bot {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Basic Commands
|
// Basic Commands
|
||||||
client.on('message', (message) => {
|
client.on('message', async (message) => {
|
||||||
this.getPrefix(message).then(prefix => {
|
let { prefix, channelId, customRoleStatus, customChannelStatus, allowedChannels } = await this.getGuildPresets(message);
|
||||||
if (!message.content.startsWith(prefix) || message.author.bot) return;
|
if (!message.content.startsWith(prefix) || message.author.bot) return;
|
||||||
|
|
||||||
const args = message.content.slice(prefix.length).trim().split(' ');
|
if (customChannelStatus==true&&!allowedChannels.includes(message.channel.id)) {
|
||||||
const command = args.shift().toLowerCase();
|
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
|
// Valid Statuses Embed
|
||||||
let validStatus = new Discord.MessageEmbed()
|
const validStatus = new Discord.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 Discord.MessageEmbed()
|
||||||
|
.setColor('#0099ff')
|
||||||
|
.setTitle('**Commands:**')
|
||||||
|
.setURL('https://discord.gg/w2g2FFmHbF')
|
||||||
|
.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** <email> <login token> - \`Login to LPS account (DM only command)\`
|
||||||
|
**${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 Discord.MessageEmbed()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Lines Police CAD')
|
.setTitle("Current LPC-Bot Statistics")
|
||||||
.setURL('https://www.linespolice-cad.com/')
|
.setURL('https://discord.gg/w2g2FFmHbF')
|
||||||
.setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t')
|
.addField(" \u200B ", "**Channels** : ` " + `${client.channels.cache.size}` + " `")
|
||||||
.setDescription('Valid Statuses')
|
.addField(" \u200B ", "**Servers** : ` " + `${client.guilds.cache.size}` + " `")
|
||||||
.addFields(
|
.addField(" \u200B ", "**Users** : ` " + `${client.users.cache.size}` + " `")
|
||||||
{ 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
|
if (command == 'ping') message.channel.send('Pong!');
|
||||||
let help = new Discord.MessageEmbed()
|
if (command == 'help') message.channel.send(help);
|
||||||
.setColor('#0099ff')
|
if (command == 'stats') message.channel.send(stats);
|
||||||
.setTitle('**Commands:**')
|
if (command == 'setprefix') {
|
||||||
.setURL('https://discord.gg/jgUW656v2t')
|
if (message.channel.type=="dm") return message.author.send(`You cannot set a prefix in a dm ${message.author}`);
|
||||||
.setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t')
|
if(!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`);
|
||||||
.setDescription('Lines Police CAD Bot Commands')
|
this.newPrefix(message, args);
|
||||||
.addFields(
|
}
|
||||||
{ name: `**${prefix}help**`, value: 'Displays this help page', inline: true },
|
if (command == 'setchannel') {
|
||||||
{ name: `**${prefix}ping**`, value: 'Responds with Pong to check Bot responce', inline: true },
|
if (message.channel.type=="dm") return message.author.send(`You cannot set a channel in a dm ${message.author}`);
|
||||||
{ name: `**${prefix}setPrefix** <new prefix>`, value: 'Sets new prefix (Admin only command)', inline: true },
|
if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`);
|
||||||
{ name: `**${prefix}login** <email> <login token>`, value: 'Login to LPS account (DM only command)', inline: true },
|
this.setChannel(message, args);
|
||||||
{ name: `**${prefix}logout**`, value: 'Logs out of your current logged in account', inline: true },
|
}
|
||||||
{ name: `**${prefix}validStatus**`, value: 'Shows list of valid statuses to updade to', inline: true },
|
if (command == 'removechannel') {
|
||||||
{ name: `**${prefix}checkStatus** <user>`, value: 'Leave user blank to check own status', inline: true },
|
if (message.channel.type=="dm") return message.author.send(`You cannot remove a channel in a dm ${message.author}`);
|
||||||
{ name: `**${prefix}updateStatus** <status>`, value: 'Updates your status', inline: true },
|
if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`);
|
||||||
{ name: `**${prefix}account**`, value: 'returns logged in account', inline: true },
|
this.removeChannel(message, args);
|
||||||
{ name: `**${prefix}penalCodes**`, value: 'Provides Link to penal codes', inline: true },
|
}
|
||||||
{ name: `**${prefix}namedb <firstName> <lastName> <dob>**`, value: 'Searches in your community for name (dob only required if not in a community)', inline: true },
|
if (command == 'setrole') {
|
||||||
{ name: `**${prefix}platedb <licence plate #>**`, value: 'Searches in your community for Vehicles with the given Licence plate #', inline: true },
|
if (message.channel.type=="dm") return message.author.send(`You cannot set a role in a dm ${message.author}`);
|
||||||
{ name: `**${prefix}firearmdb <Serial #>**`, value: 'Searches for Firearms with the given Serial #', inline: true },
|
if (!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`);
|
||||||
{ name: `**${prefix}panic**`, value: 'Enables or disables your panic button', inline: true }
|
this.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.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.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.roles(message);
|
||||||
|
}
|
||||||
|
if (command == 'channels') {
|
||||||
|
if (message.channel.tpye=="dm") return message.channel.send(`You cannot see allowed channels in a dm ${message.author}`);
|
||||||
|
this.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.getPingOnPanicStatus(message);
|
||||||
|
}
|
||||||
|
|
||||||
if (command == 'ping') message.channel.send('Pong!');
|
// Login
|
||||||
if (command == 'help') message.channel.send(help);
|
if (command == 'login') {
|
||||||
if (command == 'setprefix') {
|
if (message.channel.type=="text") return message.channel.send(`You must direct message me to use this command ${message.author}`);
|
||||||
if (message.channel.type=="dm") return message.author.send(`You cannot set a prefix in a dm ${message.author}!`);
|
this.remoteLogin(message, args);
|
||||||
if(!message.member.hasPermission(["ADMINISTRATOR","MANAGE_GUILD"])) return message.channel.send(`You don't have permission to used this command ${message.author}`);
|
}
|
||||||
this.newPrefix(message, args);
|
if (command == 'logout') this.remoteLogout(message);
|
||||||
}
|
if (command == 'validstatus') message.channel.send(validStatus);
|
||||||
// Login
|
if (command == 'checkstatus') {
|
||||||
if (command == 'login') {
|
if (customRoleStatus) {
|
||||||
if (message.channel.type=="text") return message.channel.send(`You must direct message me to use this command ${message.author}!`);
|
let hasRole = await this.checkRoleStatus(message);
|
||||||
this.remoteLogin(message, args);
|
if (hasRole) {
|
||||||
}
|
this.checkStatus(message, args);
|
||||||
if (command == 'logout') this.remoteLogout(message);
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}`);
|
||||||
if (command == 'validstatus') message.channel.send(validStatus);
|
} else this.checkStatus(message, args);
|
||||||
if (command == 'checkstatus') this.checkStatus(message, args);
|
}
|
||||||
if (command == 'updatestatus') this.updateStatus(message, args, prefix);
|
if (command == 'updatestatus') {
|
||||||
if (command == 'account') this.account(message);
|
if (customRoleStatus) {
|
||||||
if (command == 'penalcodes') return message.channel.send('https://www.linespolice-cad.com/penal-code');
|
let hasRole = await this.checkRoleStatus(message);
|
||||||
if (command == 'namedb') this.nameSearch(message, args);
|
if (hasRole) {
|
||||||
if (command == 'platedb') this.plateSearch(message, args);
|
this.updateStatus(message, args, prefix);
|
||||||
if (command == 'firearmdb') this.firearmSearch(message, args);
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}`);
|
||||||
if (command == 'panic') this.enablePanic(message);
|
} else this.updateStatus(message, args, prefix);
|
||||||
|
}
|
||||||
|
if (command == 'account') this.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.checkRoleStatus(message);
|
||||||
|
if (hasRole) {
|
||||||
|
this.nameSearch(message, args);
|
||||||
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}`);
|
||||||
|
} else this.nameSearch(message, args);
|
||||||
|
}
|
||||||
|
if (command == 'platedb') {
|
||||||
|
if (customRoleStatus) {
|
||||||
|
let hasRole = await this.checkRoleStatus(message);
|
||||||
|
if (hasRole) {
|
||||||
|
this.plateSearch(message, args);
|
||||||
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}`);
|
||||||
|
} else this.plateSearch(message, args);
|
||||||
|
}
|
||||||
|
if (command == 'firearmdb') {
|
||||||
|
if (customRoleStatus) {
|
||||||
|
let hasRole = await this.checkRoleStatus(message);
|
||||||
|
if (hasRole) {
|
||||||
|
this.firearmSearch(message, args);
|
||||||
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}`);
|
||||||
|
} else this.firearmSearch(message, args);
|
||||||
|
}
|
||||||
|
if (command == 'panic') {
|
||||||
|
if (customRoleStatus) {
|
||||||
|
let hasRole = await this.checkRoleStatus(message);
|
||||||
|
if (hasRole) {
|
||||||
|
this.enablePanic(message);
|
||||||
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}`);
|
||||||
|
} else this.enablePanic(message);
|
||||||
|
}
|
||||||
|
if (command == 'license') {
|
||||||
|
if (customRoleStatus) {
|
||||||
|
let hasRole = await this.checkRoleStatus(message);
|
||||||
|
if (hasRole) {
|
||||||
|
this.updateLicense(message, args);
|
||||||
|
} else return message.channel.send(`You don't have permission to use this command ${message.author}! `);
|
||||||
|
} else this.updateLicense(message, args);
|
||||||
|
}
|
||||||
|
if (command == 'joincommunity') this.joinCommunity(message, args);
|
||||||
|
if (command == 'leavecommunity') this.leaveCommunity(message);
|
||||||
|
if (command == 'community') this.community(message);
|
||||||
|
|
||||||
// Disabled for dev
|
// Dev Commands (not visible in help) && easter egg commands
|
||||||
// if (command == 'createbolo') this.createBolo(message, args);
|
if (command == 'version') message.channel.send(`**LPS-BOT Version : ${this.dev}-${this.config.version}**`)
|
||||||
|
if (command == 'whatisthemeaningoflife') message.channel.send('42');
|
||||||
// Dev Commands (not visible in help) && easter egg commands
|
if (command == 'whatareyou' || command == 'whoareyou') message.channel.send('Im your friendly neighborhood Lines Police CAD Bot');
|
||||||
if (command == 'version') message.channel.send(`**LPS-BOT Version : ${this.dev}-${this.config.version}**`)
|
if (command == 'whocreatedyou') message.channel.send('Lines Police CAD Developer McDazzzled | https://github.com/SowinskiBraeden');
|
||||||
if (command == 'whatisthemeaningoflife') message.channel.send('42');
|
if (command == 'pingserver') {
|
||||||
if (command == 'whatareyou' || command == 'whoareyou') message.channel.send('Im your friendly neighborhood Lines Police CAD Bot');
|
const socket = io.connect(this.config.socket);
|
||||||
if (command == 'whocreatedyou') message.channel.send('Lines Police CAD Developer McDazzzled | https://github.com/SowinskiBraeden');
|
socket.emit('botping', {message:'hello there'});
|
||||||
if (command == 'pingserver') {
|
socket.on('botpong', (data) => {
|
||||||
const socket = io.connect(this.config.socket);
|
console.log(data);
|
||||||
socket.emit('botping', {message:'hello there'});
|
socket.disconnect();
|
||||||
socket.on('botpong', (data) => {
|
});
|
||||||
console.log(data);
|
}
|
||||||
socket.disconnect();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
client.login(this.token);
|
client.login(this.token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
Worker: node index.js
|
Worker: node index.js
|
||||||
|
BetaWorker: node beta.js
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
### Lines Police CAD Discord Bot
|
||||||
|

|
||||||
|
|
||||||
|
This is the official Lines Police CAD bot for discord integration. It allows you to use Lines Police CAD website features right in your discord channel!
|
||||||
|
|
||||||
|
### Requirements :
|
||||||
|
1. [Node.js](https://nodejs.org/en/)
|
||||||
|
1. [MongoDB](https://docs.mongodb.com/manual/administration/install-community/)
|
||||||
|
|
||||||
|
### Getting Started with Code :
|
||||||
|
1. [Set Up MongoDB](#setting-up-mongodb) and start mongodb
|
||||||
|
2. Clone repo from https://github.com/SowinskiBraeden/LPC-Bot.git
|
||||||
|
3. Run `npm install` to install dependencies.
|
||||||
|
4. Edit the `index.js` file to have the your correct parameters to run the bot.
|
||||||
|
The parameters are as follows:
|
||||||
|
1. Version
|
||||||
|
2. Bot Token
|
||||||
|
3. path to config
|
||||||
|
4. mongoURI
|
||||||
|
5. mongoDBO
|
||||||
|
1. Run `npm start` to run the `index.js` file and start the bot.
|
||||||
|
1. The bot is now ready to use.
|
||||||
|
|
||||||
|
### Setting up MongoDB
|
||||||
|
1. Install mongodb via brew [Step by step instructions](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/)
|
||||||
|
1. Start mongodb via brew [Step by step instructions](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/#run-mongodb-community-edition)
|
||||||
|
|
||||||
|
### Accessing the Database
|
||||||
|
1. Locally this will use the knoldus db (or whatever you specify manually)
|
||||||
|
1. launch mongo via your command-line: `mongo`
|
||||||
|
1. Use `show dbs` to see all that are available. You should see `knoldus` in the list.
|
||||||
|
1. Lets use that db: `use knoldus`.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"defaultPrefix": "?",
|
||||||
|
"version": "Beta 2.0.0",
|
||||||
|
"socket": "https://police-cad-dev.herokuapp.com/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
const Bot = require('./LPS').Bot;
|
||||||
|
|
||||||
|
let client = new Bot('DEVELOPMENT', process.env.token, './beta-config', process.env.mongoURI, process.env.dbo);
|
||||||
|
client.main()
|
||||||
+3
-6
@@ -1,8 +1,5 @@
|
|||||||
{
|
{
|
||||||
"defaultPrefix": "?",
|
"defaultPrefix": "?",
|
||||||
"botID": "860298681047056434",
|
"version": "2.0.0",
|
||||||
"mongoURI": "mongodb+srv://lps_bot:ktSkHml2BU9EIQ0a@heroku-police-cad-dev.j7aom.mongodb.net/heroku_8pc4g86l?retryWrites=true&w=majority",
|
"socket": "https://www.linespolice-cad.com/"
|
||||||
"version": "Beta 1.7.0",
|
}
|
||||||
"socket": "https://police-cad-dev.herokuapp.com/",
|
|
||||||
"dbo": "heroku_8pc4g86l"
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"defaultPrefix": "?",
|
|
||||||
"botID": "860298681047056434",
|
|
||||||
"mongoURI": "mongodb+srv://lps_bot:ktSkHml2BU9EIQ0a@heroku-police-cad-dev.j7aom.mongodb.net/heroku_8pc4g86l?retryWrites=true&w=majority",
|
|
||||||
"version": "Beta 1.7.0",
|
|
||||||
"socket": "http://localhost:8080",
|
|
||||||
"dbo": "heroku_8pc4g86l"
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
const Bot = require('./LPS').Bot;
|
const Bot = require('./LPS').Bot;
|
||||||
|
|
||||||
client = new Bot('PRODUCTION', process.env.token, './config');
|
let client = new Bot('PRODUCTION', process.env.token, './config', process.env.mongoURI, process.env.dbo);
|
||||||
client.main()
|
client.main()
|
||||||
Generated
+102
-465
@@ -19,40 +19,6 @@
|
|||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@mapbox/node-pre-gyp": {
|
|
||||||
"version": "1.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz",
|
|
||||||
"integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==",
|
|
||||||
"requires": {
|
|
||||||
"detect-libc": "^1.0.3",
|
|
||||||
"https-proxy-agent": "^5.0.0",
|
|
||||||
"make-dir": "^3.1.0",
|
|
||||||
"node-fetch": "^2.6.1",
|
|
||||||
"nopt": "^5.0.0",
|
|
||||||
"npmlog": "^4.1.2",
|
|
||||||
"rimraf": "^3.0.2",
|
|
||||||
"semver": "^7.3.4",
|
|
||||||
"tar": "^6.1.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"nopt": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
|
|
||||||
"integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
|
|
||||||
"requires": {
|
|
||||||
"abbrev": "1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"semver": {
|
|
||||||
"version": "7.3.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
|
||||||
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
|
||||||
"requires": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@sindresorhus/is": {
|
"@sindresorhus/is": {
|
||||||
"version": "0.14.0",
|
"version": "0.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
|
||||||
@@ -93,76 +59,18 @@
|
|||||||
"negotiator": "0.6.2"
|
"negotiator": "0.6.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"agent-base": {
|
|
||||||
"version": "6.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
|
||||||
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
|
||||||
"requires": {
|
|
||||||
"debug": "4"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"debug": {
|
|
||||||
"version": "4.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
|
|
||||||
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
|
|
||||||
"requires": {
|
|
||||||
"ms": "2.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ms": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ansi-align": {
|
"ansi-align": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
|
||||||
"integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
|
"integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "^3.0.0"
|
"string-width": "^4.1.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"ansi-regex": {
|
|
||||||
"version": "4.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
|
||||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
|
|
||||||
},
|
|
||||||
"emoji-regex": {
|
|
||||||
"version": "7.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
|
||||||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
|
|
||||||
},
|
|
||||||
"is-fullwidth-code-point": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
|
||||||
},
|
|
||||||
"string-width": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
|
||||||
"requires": {
|
|
||||||
"emoji-regex": "^7.0.1",
|
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
|
||||||
"strip-ansi": "^5.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"strip-ansi": {
|
|
||||||
"version": "5.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
|
||||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
|
||||||
"requires": {
|
|
||||||
"ansi-regex": "^4.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
|
||||||
},
|
},
|
||||||
"ansi-styles": {
|
"ansi-styles": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
@@ -181,20 +89,6 @@
|
|||||||
"picomatch": "^2.0.4"
|
"picomatch": "^2.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"aproba": {
|
|
||||||
"version": "1.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
|
||||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
|
||||||
},
|
|
||||||
"are-we-there-yet": {
|
|
||||||
"version": "1.1.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
|
|
||||||
"integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
|
|
||||||
"requires": {
|
|
||||||
"delegates": "^1.0.0",
|
|
||||||
"readable-stream": "^2.0.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"array-flatten": {
|
"array-flatten": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||||
@@ -225,15 +119,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
|
||||||
"integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
|
"integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
|
||||||
},
|
},
|
||||||
"bcrypt": {
|
|
||||||
"version": "5.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz",
|
|
||||||
"integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==",
|
|
||||||
"requires": {
|
|
||||||
"@mapbox/node-pre-gyp": "^1.0.0",
|
|
||||||
"node-addon-api": "^3.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"binary-extensions": {
|
"binary-extensions": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
||||||
@@ -281,18 +166,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"boxen": {
|
"boxen": {
|
||||||
"version": "4.2.0",
|
"version": "5.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
|
||||||
"integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
|
"integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-align": "^3.0.0",
|
"ansi-align": "^3.0.0",
|
||||||
"camelcase": "^5.3.1",
|
"camelcase": "^6.2.0",
|
||||||
"chalk": "^3.0.0",
|
"chalk": "^4.1.0",
|
||||||
"cli-boxes": "^2.2.0",
|
"cli-boxes": "^2.2.1",
|
||||||
"string-width": "^4.1.0",
|
"string-width": "^4.2.2",
|
||||||
"term-size": "^2.1.0",
|
"type-fest": "^0.20.2",
|
||||||
"type-fest": "^0.8.1",
|
"widest-line": "^3.1.0",
|
||||||
"widest-line": "^3.1.0"
|
"wrap-ansi": "^7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
@@ -352,14 +237,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"camelcase": {
|
"camelcase": {
|
||||||
"version": "5.3.1",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
|
||||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
|
"integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg=="
|
||||||
},
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "3.0.0",
|
"version": "4.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||||
"integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
|
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-styles": "^4.1.0",
|
"ansi-styles": "^4.1.0",
|
||||||
"supports-color": "^7.1.0"
|
"supports-color": "^7.1.0"
|
||||||
@@ -395,11 +280,6 @@
|
|||||||
"readdirp": "~3.6.0"
|
"readdirp": "~3.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chownr": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
|
|
||||||
},
|
|
||||||
"ci-info": {
|
"ci-info": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
|
||||||
@@ -418,11 +298,6 @@
|
|||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"code-point-at": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
|
||||||
},
|
|
||||||
"color-convert": {
|
"color-convert": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||||
@@ -467,11 +342,6 @@
|
|||||||
"xdg-basedir": "^4.0.0"
|
"xdg-basedir": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"console-control-strings": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
|
|
||||||
},
|
|
||||||
"content-disposition": {
|
"content-disposition": {
|
||||||
"version": "0.5.3",
|
"version": "0.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
|
||||||
@@ -538,11 +408,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||||
},
|
},
|
||||||
"delegates": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
|
||||||
},
|
|
||||||
"denque": {
|
"denque": {
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
|
||||||
@@ -558,11 +423,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||||
},
|
},
|
||||||
"detect-libc": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
|
||||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
|
||||||
},
|
|
||||||
"discord.js": {
|
"discord.js": {
|
||||||
"version": "12.5.3",
|
"version": "12.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
|
||||||
@@ -787,73 +647,12 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||||
},
|
},
|
||||||
"fs-minipass": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
|
|
||||||
"requires": {
|
|
||||||
"minipass": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fs.realpath": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
|
||||||
},
|
|
||||||
"fsevents": {
|
"fsevents": {
|
||||||
"version": "2.3.2",
|
"version": "2.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"gauge": {
|
|
||||||
"version": "2.7.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
|
||||||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
|
||||||
"requires": {
|
|
||||||
"aproba": "^1.0.3",
|
|
||||||
"console-control-strings": "^1.0.0",
|
|
||||||
"has-unicode": "^2.0.0",
|
|
||||||
"object-assign": "^4.1.0",
|
|
||||||
"signal-exit": "^3.0.0",
|
|
||||||
"string-width": "^1.0.1",
|
|
||||||
"strip-ansi": "^3.0.1",
|
|
||||||
"wide-align": "^1.1.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"ansi-regex": {
|
|
||||||
"version": "2.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
|
||||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
|
||||||
},
|
|
||||||
"is-fullwidth-code-point": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
|
||||||
"requires": {
|
|
||||||
"number-is-nan": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"string-width": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
|
||||||
"requires": {
|
|
||||||
"code-point-at": "^1.0.0",
|
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
|
||||||
"strip-ansi": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"strip-ansi": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
|
||||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
|
||||||
"requires": {
|
|
||||||
"ansi-regex": "^2.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"get-stream": {
|
"get-stream": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
||||||
@@ -862,19 +661,6 @@
|
|||||||
"pump": "^3.0.0"
|
"pump": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glob": {
|
|
||||||
"version": "7.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
|
||||||
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
|
||||||
"requires": {
|
|
||||||
"fs.realpath": "^1.0.0",
|
|
||||||
"inflight": "^1.0.4",
|
|
||||||
"inherits": "2",
|
|
||||||
"minimatch": "^3.0.4",
|
|
||||||
"once": "^1.3.0",
|
|
||||||
"path-is-absolute": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"glob-parent": {
|
"glob-parent": {
|
||||||
"version": "5.1.2",
|
"version": "5.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||||
@@ -884,11 +670,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"global-dirs": {
|
"global-dirs": {
|
||||||
"version": "2.1.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
|
||||||
"integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==",
|
"integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ini": "1.3.7"
|
"ini": "2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"got": {
|
"got": {
|
||||||
@@ -910,9 +696,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
"version": "4.2.6",
|
"version": "4.2.8",
|
||||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||||
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
|
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
|
||||||
},
|
},
|
||||||
"has-cors": {
|
"has-cors": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
@@ -924,11 +710,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||||
},
|
},
|
||||||
"has-unicode": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
|
||||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
|
||||||
},
|
|
||||||
"has-yarn": {
|
"has-yarn": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
|
||||||
@@ -958,30 +739,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"https-proxy-agent": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
|
|
||||||
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
|
|
||||||
"requires": {
|
|
||||||
"agent-base": "6",
|
|
||||||
"debug": "4"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"debug": {
|
|
||||||
"version": "4.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
|
|
||||||
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
|
|
||||||
"requires": {
|
|
||||||
"ms": "2.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ms": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
"version": "0.4.24",
|
"version": "0.4.24",
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||||
@@ -1005,24 +762,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||||
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
|
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
|
||||||
},
|
},
|
||||||
"inflight": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
|
||||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
|
||||||
"requires": {
|
|
||||||
"once": "^1.3.0",
|
|
||||||
"wrappy": "1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.7",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
|
||||||
"integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
|
"integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
|
||||||
},
|
},
|
||||||
"ipaddr.js": {
|
"ipaddr.js": {
|
||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
@@ -1056,26 +804,26 @@
|
|||||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
|
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
|
||||||
},
|
},
|
||||||
"is-glob": {
|
"is-glob": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||||
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-extglob": "^2.1.1"
|
"is-extglob": "^2.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-installed-globally": {
|
"is-installed-globally": {
|
||||||
"version": "0.3.2",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
|
||||||
"integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
|
"integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"global-dirs": "^2.0.1",
|
"global-dirs": "^3.0.0",
|
||||||
"is-path-inside": "^3.0.1"
|
"is-path-inside": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-npm": {
|
"is-npm": {
|
||||||
"version": "4.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
|
||||||
"integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig=="
|
"integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA=="
|
||||||
},
|
},
|
||||||
"is-number": {
|
"is-number": {
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
@@ -1213,28 +961,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||||
},
|
},
|
||||||
"minipass": {
|
|
||||||
"version": "3.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz",
|
|
||||||
"integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==",
|
|
||||||
"requires": {
|
|
||||||
"yallist": "^4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"minizlib": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
|
|
||||||
"requires": {
|
|
||||||
"minipass": "^3.0.0",
|
|
||||||
"yallist": "^4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mkdirp": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
|
||||||
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
|
|
||||||
},
|
|
||||||
"mongodb": {
|
"mongodb": {
|
||||||
"version": "3.6.8",
|
"version": "3.6.8",
|
||||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz",
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz",
|
||||||
@@ -1258,20 +984,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
||||||
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
||||||
},
|
},
|
||||||
"node-addon-api": {
|
|
||||||
"version": "3.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
|
|
||||||
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
|
|
||||||
},
|
|
||||||
"node-fetch": {
|
"node-fetch": {
|
||||||
"version": "2.6.1",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||||
},
|
},
|
||||||
"nodemon": {
|
"nodemon": {
|
||||||
"version": "2.0.9",
|
"version": "2.0.14",
|
||||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz",
|
||||||
"integrity": "sha512-6O4k7C8f2HQArGpaPBOqGGddjzDLQAqCYmq3tKMeNIbz7Is/hOphMHy2dcY10sSq5wl3cqyn9Iz+Ep2j51JOLg==",
|
"integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"chokidar": "^3.2.2",
|
"chokidar": "^3.2.2",
|
||||||
"debug": "^3.2.6",
|
"debug": "^3.2.6",
|
||||||
@@ -1282,7 +1003,7 @@
|
|||||||
"supports-color": "^5.5.0",
|
"supports-color": "^5.5.0",
|
||||||
"touch": "^3.1.0",
|
"touch": "^3.1.0",
|
||||||
"undefsafe": "^2.0.3",
|
"undefsafe": "^2.0.3",
|
||||||
"update-notifier": "^4.1.0"
|
"update-notifier": "^5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nopt": {
|
"nopt": {
|
||||||
@@ -1303,27 +1024,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||||
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
|
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
|
||||||
},
|
},
|
||||||
"npmlog": {
|
|
||||||
"version": "4.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
|
||||||
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
|
||||||
"requires": {
|
|
||||||
"are-we-there-yet": "~1.1.2",
|
|
||||||
"console-control-strings": "~1.1.0",
|
|
||||||
"gauge": "~2.7.3",
|
|
||||||
"set-blocking": "~2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"number-is-nan": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
|
||||||
},
|
|
||||||
"object-assign": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
|
||||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
|
||||||
},
|
|
||||||
"on-finished": {
|
"on-finished": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||||
@@ -1383,11 +1083,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
||||||
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
|
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
|
||||||
},
|
|
||||||
"path-to-regexp": {
|
"path-to-regexp": {
|
||||||
"version": "0.1.7",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
@@ -1488,6 +1183,13 @@
|
|||||||
"ini": "~1.3.0",
|
"ini": "~1.3.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"strip-json-comments": "~2.0.1"
|
"strip-json-comments": "~2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ini": {
|
||||||
|
"version": "1.3.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
||||||
|
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
@@ -1543,14 +1245,6 @@
|
|||||||
"lowercase-keys": "^1.0.0"
|
"lowercase-keys": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rimraf": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
|
||||||
"requires": {
|
|
||||||
"glob": "^7.1.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||||
@@ -1643,11 +1337,6 @@
|
|||||||
"send": "0.17.1"
|
"send": "0.17.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"set-blocking": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
|
||||||
},
|
|
||||||
"setimmediate": {
|
"setimmediate": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||||
@@ -1659,9 +1348,9 @@
|
|||||||
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
||||||
},
|
},
|
||||||
"signal-exit": {
|
"signal-exit": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
|
||||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
|
"integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ=="
|
||||||
},
|
},
|
||||||
"socket.io-client": {
|
"socket.io-client": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
@@ -1732,13 +1421,13 @@
|
|||||||
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
||||||
},
|
},
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "4.2.2",
|
"version": "4.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
"integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
|
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"emoji-regex": "^8.0.0",
|
"emoji-regex": "^8.0.0",
|
||||||
"is-fullwidth-code-point": "^3.0.0",
|
"is-fullwidth-code-point": "^3.0.0",
|
||||||
"strip-ansi": "^6.0.0"
|
"strip-ansi": "^6.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
@@ -1757,11 +1446,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^5.0.0"
|
"ansi-regex": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-json-comments": {
|
"strip-json-comments": {
|
||||||
@@ -1777,24 +1466,6 @@
|
|||||||
"has-flag": "^3.0.0"
|
"has-flag": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tar": {
|
|
||||||
"version": "6.1.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
|
|
||||||
"integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
|
|
||||||
"requires": {
|
|
||||||
"chownr": "^2.0.0",
|
|
||||||
"fs-minipass": "^2.0.0",
|
|
||||||
"minipass": "^3.0.0",
|
|
||||||
"minizlib": "^2.1.1",
|
|
||||||
"mkdirp": "^1.0.3",
|
|
||||||
"yallist": "^4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"term-size": {
|
|
||||||
"version": "2.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
|
|
||||||
"integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
|
|
||||||
},
|
|
||||||
"to-readable-stream": {
|
"to-readable-stream": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
||||||
@@ -1827,9 +1498,9 @@
|
|||||||
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
|
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
|
||||||
},
|
},
|
||||||
"type-fest": {
|
"type-fest": {
|
||||||
"version": "0.8.1",
|
"version": "0.20.2",
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
|
||||||
},
|
},
|
||||||
"type-is": {
|
"type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
@@ -1849,27 +1520,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"undefsafe": {
|
"undefsafe": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
||||||
"integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
|
"integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
|
||||||
"requires": {
|
|
||||||
"debug": "^2.2.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"debug": {
|
|
||||||
"version": "2.6.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
|
||||||
"requires": {
|
|
||||||
"ms": "2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ms": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"unique-string": {
|
"unique-string": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@@ -1885,23 +1538,34 @@
|
|||||||
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
||||||
},
|
},
|
||||||
"update-notifier": {
|
"update-notifier": {
|
||||||
"version": "4.1.3",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
|
||||||
"integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
|
"integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"boxen": "^4.2.0",
|
"boxen": "^5.0.0",
|
||||||
"chalk": "^3.0.0",
|
"chalk": "^4.1.0",
|
||||||
"configstore": "^5.0.1",
|
"configstore": "^5.0.1",
|
||||||
"has-yarn": "^2.1.0",
|
"has-yarn": "^2.1.0",
|
||||||
"import-lazy": "^2.1.0",
|
"import-lazy": "^2.1.0",
|
||||||
"is-ci": "^2.0.0",
|
"is-ci": "^2.0.0",
|
||||||
"is-installed-globally": "^0.3.1",
|
"is-installed-globally": "^0.4.0",
|
||||||
"is-npm": "^4.0.0",
|
"is-npm": "^5.0.0",
|
||||||
"is-yarn-global": "^0.3.0",
|
"is-yarn-global": "^0.3.0",
|
||||||
"latest-version": "^5.0.0",
|
"latest-version": "^5.1.0",
|
||||||
"pupa": "^2.0.1",
|
"pupa": "^2.1.1",
|
||||||
|
"semver": "^7.3.4",
|
||||||
"semver-diff": "^3.1.1",
|
"semver-diff": "^3.1.1",
|
||||||
"xdg-basedir": "^4.0.0"
|
"xdg-basedir": "^4.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"semver": {
|
||||||
|
"version": "7.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||||
|
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||||
|
"requires": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"url-parse-lax": {
|
"url-parse-lax": {
|
||||||
@@ -1927,43 +1591,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||||
},
|
},
|
||||||
"wide-align": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
|
||||||
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
|
|
||||||
"requires": {
|
|
||||||
"string-width": "^1.0.2 || 2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"ansi-regex": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
|
||||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
|
|
||||||
},
|
|
||||||
"is-fullwidth-code-point": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
|
||||||
},
|
|
||||||
"string-width": {
|
|
||||||
"version": "2.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
|
||||||
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
|
||||||
"requires": {
|
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
|
||||||
"strip-ansi": "^4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"strip-ansi": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
|
||||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
|
||||||
"requires": {
|
|
||||||
"ansi-regex": "^3.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"widest-line": {
|
"widest-line": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
|
||||||
@@ -1972,6 +1599,16 @@
|
|||||||
"string-width": "^4.0.0"
|
"string-width": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"wrap-ansi": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.0.0",
|
||||||
|
"string-width": "^4.1.0",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@
|
|||||||
"discord.js": "^12.5.3",
|
"discord.js": "^12.5.3",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"mongodb": "^3.6.8",
|
"mongodb": "^3.6.8",
|
||||||
"nodemon": "^2.0.9",
|
"nodemon": "^2.0.14",
|
||||||
"randomstring": "^1.2.1",
|
"randomstring": "^1.2.1",
|
||||||
"socket.io-client": "^4.1.2"
|
"socket.io-client": "^4.1.2"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user