diff --git a/commands/firearmSearch.js b/commands/firearmSearch.js new file mode 100644 index 0000000..99e68b7 --- /dev/null +++ b/commands/firearmSearch.js @@ -0,0 +1,123 @@ +const { MessageEmbed } = require('discord.js'); +const io = require('socket.io-client'); + +module.exports = { + name: "firearmsearch", + description: "Search registered firearms", + usage: "[Serial #]", + permissions: { + channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], + member: [], + }, + aliases: ["firearm_search", "firearmdb", "firearm_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 \`Serial Number\`.`); + let data = { + user: user, + query: { + serialNumber: args[0], + activeCommunityID: user.user.activeCommunity + } + } + const socket = io.connect(client.config.socket); + socket.emit('bot_firearm_search', data); + socket.on('bot_firearm_search_results', results => { + if (results.user._id==user._id) { + if (results.firearms.length==0) { + return message.channel.send(`No Firearms found ${message.author}`); + } + + for (let i = 0; i < results.firearms.length; i++) { + let firearmResult = new MessageEmbed() + .setColor('#0099ff') + .setTitle(`**${results.firearms[i].firearm.serialNumber} | ${results.firearms[i]._id}**`) + .setURL('https://discord.gg/jgUW656v2t') + .setAuthor('LPS Website Support', client.config.IconURL, 'https://discord.gg/jgUW656v2t') + .setDescription('Firearm Search Results') + .addFields( + { name: `**Serial Number**`, value: `\`${results.firearms[i].firearm.serialNumber}\``, inline: true }, + { name: `**Type**`, value: `\`${results.firearms[i].firearm.weaponType}\``, inline: true }, + { name: `**Owner**`, value: `\`${results.firearms[i].firearm.registeredOwner}\``, inline: true }, + ) + // Other details + let isStolen = results.firearms[i].firearm.isStolen; + if (isStolen=="false"||isStolen==false) firearmResult.addFields({name:`**Stolen**`,value:'\`No\`',inline: true}); + if (isStolen=="true"||isStolen==true) firearmResult.addFields({name:`**Stolen**`,value:'\`Yes\`',inline: true}); + message.channel.send(firearmResult); + } + } + socket.disconnect(); + }); + }, + SlashCommand: { + options: [ + { + name: "serialnumber", + description: "Firearms's serial number", + value: "serialnumber", + 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: { + serialNumber: args[0].value, + activeCommunityID: user.user.activeCommunity + } + } + const socket = io.connect(client.config.socket); + socket.emit('bot_firearm_search', data); + socket.on('bot_firearm_search_results', results => { + if (results.user._id==user._id) { + if (results.firearms.length==0) { + return interaction.send(`No Firearms found ${message.author}`); + } + + for (let i = 0; i < results.firearms.length; i++) { + let firearmResult = new MessageEmbed() + .setColor('#0099ff') + .setTitle(`**${results.firearms[i].firearm.serialNumber} | ${results.firearms[i]._id}**`) + .setURL('https://discord.gg/jgUW656v2t') + .setAuthor('LPS Website Support', client.config.IconURL, 'https://discord.gg/jgUW656v2t') + .setDescription('Firearm Search Results') + .addFields( + { name: `**Serial Number**`, value: `\`${results.firearms[i].firearm.serialNumber}\``, inline: true }, + { name: `**Type**`, value: `\`${results.firearms[i].firearm.weaponType}\``, inline: true }, + { name: `**Owner**`, value: `\`${results.firearms[i].firearm.registeredOwner}\``, inline: true }, + ) + // Other details + let isStolen = results.firearms[i].firearm.isStolen; + if (isStolen=="false"||isStolen==false) firearmResult.addFields({name:`**Stolen**`,value:'\`No\`',inline: true}); + if (isStolen=="true"||isStolen==true) firearmResult.addFields({name:`**Stolen**`,value:'\`Yes\`',inline: true}); + interaction.send(firearmResult); + } + } + socket.disconnect(); + }); + }, + }, +} \ No newline at end of file diff --git a/commands/nameSearch.js b/commands/nameSearch.js index 21dc2f8..4762ae7 100644 --- a/commands/nameSearch.js +++ b/commands/nameSearch.js @@ -65,7 +65,7 @@ module.exports = { .setColor('#0099ff') .setTitle(`**${results.civilians[i].civilian.firstName} ${results.civilians[i].civilian.lastName} | ${results.civilians[i]._id}**`) .setURL('https://discord.gg/jgUW656v2t') - .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') + .setAuthor('LPS Website Support', client.config.IconURL, 'https://discord.gg/jgUW656v2t') .setDescription('Name Search Results') .addFields( { name: `**First Name**`, value: `\`${results.civilians[i].civilian.firstName}\``, inline: true }, @@ -183,7 +183,7 @@ module.exports = { .setColor('#0099ff') .setTitle(`**${results.civilians[i].civilian.firstName} ${results.civilians[i].civilian.lastName} | ${results.civilians[i]._id}**`) .setURL('https://discord.gg/jgUW656v2t') - .setAuthor('LPS Website Support', 'https://raw.githubusercontent.com/Linesmerrill/police-cad/master/lines-police-server.png', 'https://discord.gg/jgUW656v2t') + .setAuthor('LPS Website Support', client.config.IconURL, 'https://discord.gg/jgUW656v2t') .setDescription('Name Search Results') .addFields( { name: `**First Name**`, value: `\`${results.civilians[i].civilian.firstName}\``, inline: true }, diff --git a/commands/plateSearch.js b/commands/plateSearch.js index f1ca76b..067391a 100644 --- a/commands/plateSearch.js +++ b/commands/plateSearch.js @@ -42,7 +42,7 @@ module.exports = { .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') + .setAuthor('LPS Website Support', client.config.IconURL, 'https://discord.gg/jgUW656v2t') .setDescription('Plate Search Results') .addFields( { name: `**Plate #**`, value: `\`${results.vehicles[i].vehicle.plate}\``, inline: true }, @@ -112,7 +112,7 @@ module.exports = { .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') + .setAuthor('LPS Website Support', client.config.IconURL, 'https://discord.gg/jgUW656v2t') .setDescription('Plate Search Results') .addFields( { name: `**Plate #**`, value: `\`${results.vehicles[i].vehicle.plate}\``, inline: true },