From 3e2fe386c3d8c5f580972d46ead11b240976f36f Mon Sep 17 00:00:00 2001 From: Braeden Sowinski Date: Tue, 8 Mar 2022 20:20:12 -0800 Subject: [PATCH] update/add plateSearch --- commands/nameSearch.js | 4 +- commands/plateSearch.js | 141 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 commands/plateSearch.js diff --git a/commands/nameSearch.js b/commands/nameSearch.js index 81514e8..21dc2f8 100644 --- a/commands/nameSearch.js +++ b/commands/nameSearch.js @@ -3,8 +3,8 @@ const io = require('socket.io-client'); module.exports = { name: "namesearch", - description: "Search a Civilian in your community", - usage: "", + description: "Search a civilian", + usage: "[First Name] [Last Name] [yyyy-mm-dd]", permissions: { channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], member: [], diff --git a/commands/plateSearch.js b/commands/plateSearch.js new file mode 100644 index 0000000..f1ca76b --- /dev/null +++ b/commands/plateSearch.js @@ -0,0 +1,141 @@ +const { MessageEmbed } = require('discord.js'); +const io = require('socket.io-client'); + +module.exports = { + name: "platesearch", + description: "Search for a registered Vehicle", + usage: "[Plate #]", + permissions: { + channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], + member: [], + }, + aliases: ["plate_search", "platedb", "plate_db"], + /** + * + * @param {require("../structures/LinesPoliceCadBot")} client + * @param {import("discord.js").Message} message + * @param {string[]} args + * @param {*} param3 + */ + run: async (client, message, args) => { + let user = await client.dbo.collection("users").findOne({"user.discord.id":message.author.id}).then(user => user); + if (!user) return message.channel.send(`You are not logged in.`); + if (args.length==0) return message.channel.send(`You are missing a \`Plate #\`.`); + let data = { + user: user, + query: { + plateNumber: args[0], + activeCommunityID: user.user.activeCommunity + } + } + const socket = io.connect(client.config.socket); + socket.emit('bot_plate_search', data); + socket.on('bot_plate_search_results', results => { + + if (results.user._id==user._id) { + if (results.vehicles.length == 0) { + return message.channel.send(`Plate Number \`${args[0]}\` not found.`); + } + + for (let i = 0; i < results.vehicles.length; i++) { + let plateResult = new MessageEmbed() + .setColor('#0099ff') + .setTitle(`**${results.vehicles[i].vehicle.plate} | ${results.vehicles[i]._id}**`) + .setURL('https://discord.gg/jgUW656v2t') + .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') + .setDescription('Plate Search Results') + .addFields( + { name: `**Plate #**`, value: `\`${results.vehicles[i].vehicle.plate}\``, inline: true }, + { name: `**Vin #**`, value: `\`${results.vehicles[i].vehicle.vin}\``, inline: true }, + { name: `**Model**`, value: `\`${results.vehicles[i].vehicle.model}\``, inline: true }, + { name: `**Color**`, value: `\`${results.vehicles[i].vehicle.color}\``, inline: true }, + { name: `**Owner**`, value: `\`${results.vehicles[i].vehicle.registeredOwner}\``, inline: true }, + ) + // Other details + let validRegistration = results.vehicles[i].vehicle.validRegistration; + let validInsurance = results.vehicles[i].vehicle.validInsurance; + let stolen = results.vehicles[i].vehicle.isStolen; + if (validRegistration=='1') plateResult.addFields({ name: `**Registration**`, value: `\`Valid\``, inline: true }); + if (validRegistration=='2') plateResult.addFields({ name: `**Registration**`, value: `\`InValid\``, inline: true }); + if (validInsurance=='1') plateResult.addFields({ name: `**Insurance**`, value: `\`Valid\``, inline: true }); + if (validInsurance=='2') plateResult.addFields({ name: `**Insurance**`, value: `\`InValid\``, inline: true }); + if (stolen=='1') plateResult.addFields({ name: `**Stolen**`, value: `\`No\``, inline: true }); + if (stolen=='2') plateResult.addFields({ name: `**Stolen**`, value: `\`Yes\``, inline: true }); + message.channel.send(plateResult); + } + } + socket.disconnect(); + }); + }, + SlashCommand: { + options: [ + { + name: "platenumber", + description: "Vehicle's license plate number", + value: "platenumber", + type: 3, + required: true, + }, + ], + /** + * + * @param {require("../structures/LinesPoliceCadBot")} client + * @param {import("discord.js").Message} message + * @param {string[]} args + * @param {*} param3 + */ + run: async (client, interaction, args, { GuildDB }) => { + if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { + return interaction.send(`You are not allowed to use the bot in this channel.`); + } + + let user = await client.dbo.collection("users").findOne({"user.discord.id":interaction.member.user.id}).then(user => user); + if (!user) return interaction.send(`You are not logged in.`); + let data = { + user: user, + query: { + plateNumber: args[0].value, + activeCommunityID: user.user.activeCommunity + } + } + const socket = io.connect(client.config.socket); + socket.emit('bot_plate_search', data); + socket.on('bot_plate_search_results', results => { + + if (results.user._id==user._id) { + if (results.vehicles.length == 0) { + return interaction.send(`Plate Number \`${args[0].value}\` not found.`); + } + + for (let i = 0; i < results.vehicles.length; i++) { + let plateResult = new MessageEmbed() + .setColor('#0099ff') + .setTitle(`**${results.vehicles[i].vehicle.plate} | ${results.vehicles[i]._id}**`) + .setURL('https://discord.gg/jgUW656v2t') + .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') + .setDescription('Plate Search Results') + .addFields( + { name: `**Plate #**`, value: `\`${results.vehicles[i].vehicle.plate}\``, inline: true }, + { name: `**Vin #**`, value: `\`${results.vehicles[i].vehicle.vin}\``, inline: true }, + { name: `**Model**`, value: `\`${results.vehicles[i].vehicle.model}\``, inline: true }, + { name: `**Color**`, value: `\`${results.vehicles[i].vehicle.color}\``, inline: true }, + { name: `**Owner**`, value: `\`${results.vehicles[i].vehicle.registeredOwner}\``, inline: true }, + ) + // Other details + let validRegistration = results.vehicles[i].vehicle.validRegistration; + let validInsurance = results.vehicles[i].vehicle.validInsurance; + let stolen = results.vehicles[i].vehicle.isStolen; + if (validRegistration=='1') plateResult.addFields({ name: `**Registration**`, value: `\`Valid\``, inline: true }); + if (validRegistration=='2') plateResult.addFields({ name: `**Registration**`, value: `\`InValid\``, inline: true }); + if (validInsurance=='1') plateResult.addFields({ name: `**Insurance**`, value: `\`Valid\``, inline: true }); + if (validInsurance=='2') plateResult.addFields({ name: `**Insurance**`, value: `\`InValid\``, inline: true }); + if (stolen=='1') plateResult.addFields({ name: `**Stolen**`, value: `\`No\``, inline: true }); + if (stolen=='2') plateResult.addFields({ name: `**Stolen**`, value: `\`Yes\``, inline: true }); + return interaction.send(plateResult); + } + } + socket.disconnect(); + }); + }, + }, +} \ No newline at end of file