2021-11-18 18:56:42 +01:00
const { MessageEmbed } = require ( "discord.js" ) ;
const moment = require ( "moment" ) ;
2022-01-28 09:00:28 +01:00
const axios = require ( "axios" ) ;
2021-11-18 18:56:42 +01:00
module . exports = {
name : "build" ,
description : "Get gunsmith builds" ,
2022-02-01 15:00:50 +01:00
usage : "[Weapon Name] [Author] [Tag]" ,
2021-11-18 18:56:42 +01:00
type : "CHAT_INPUT" ,
category : "CODM" ,
2022-02-05 02:06:33 +01:00
options : [
{
type : "SUB_COMMAND" ,
name : "assault_rifle" ,
description : "Get a gunsmith build for a Assault Rifle" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
{
name : "Type 25" ,
value : "A01" ,
} ,
{
name : "M16" ,
value : "A02" ,
} ,
{
name : "AK117" ,
value : "A03" ,
} ,
{
name : "AK-47" ,
value : "A04" ,
} ,
{
name : "ASM10" ,
value : "A05" ,
} ,
{
name : "M4" ,
value : "A06" ,
} ,
{
name : "BK57" ,
value : "A07" ,
} ,
{
name : "LK24" ,
value : "A08" ,
} ,
{
name : "ICR-1" ,
value : "A09" ,
} ,
{
name : "Man-o-War" ,
value : "A10" ,
} ,
{
name : "KN-44" ,
value : "A11" ,
} ,
{
name : "HBRa3" ,
value : "A12" ,
} ,
{
name : "HVK-30" ,
value : "A13" ,
} ,
{
name : "DR-H" ,
value : "A14" ,
} ,
{
name : "Peacekeeper MK2" ,
value : "A15" ,
} ,
{
name : "FR .556" ,
value : "A16" ,
} ,
{
name : "AS VAL" ,
value : "A17" ,
} ,
{
name : "CR-56 AMAX" ,
value : "A18" ,
} ,
{
name : "M13" ,
value : "A19" ,
} ,
{
name : "Swordfish" ,
value : "A20" ,
} ,
{
name : "Kilo 141" ,
value : "A21" ,
} ,
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
{
name : "Jokesta" ,
value : "Jokesta" ,
} ,
// {
// name: "Stats On Duty",
// value: "Stats On Duty",
// },
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "Aggressive" ,
value : "Aggressive" ,
} ,
{
name : "Passive" ,
value : "Passive" ,
} ,
{
name : "Search And Destroy" ,
value : "Search And Destroy" ,
} ,
{
name : "Respawn" ,
value : "Respawn" ,
} ,
] ,
} ,
] ,
} ,
{
type : "SUB_COMMAND" ,
name : "sub_machine_gun" ,
description : "Get a gunsmith build for a Sub Machine Gun" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
{
name : "RUS-79U" ,
value : "D01" ,
} ,
{
name : "Chicom" ,
value : "D02" ,
} ,
{
name : "PDW-57" ,
value : "D03" ,
} ,
{
name : "Razorback" ,
value : "D04" ,
} ,
{
name : "MSMC" ,
value : "D05" ,
} ,
{
name : "HG40" ,
value : "D06" ,
} ,
{
name : "Pharo" ,
value : "D07" ,
} ,
{
name : "GKS" ,
value : "D08" ,
} ,
{
name : "Cordite" ,
value : "D09" ,
} ,
{
name : "QQ9" ,
value : "D10" ,
} ,
{
name : "Fennec" ,
value : "D11" ,
} ,
{
name : "AGR 556" ,
value : "D12" ,
} ,
{
name : "QXR" ,
value : "D13" ,
} ,
{
name : "PP19 Bizon" ,
value : "D14" ,
} ,
{
name : "MX9" ,
value : "D15" ,
} ,
{
name : "CBR4" ,
value : "D16" ,
} ,
{
name : "PPSh 41" ,
value : "D17" ,
} ,
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
{
name : "Jokesta" ,
value : "Jokesta" ,
} ,
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "Aggressive" ,
value : "Aggressive" ,
} ,
{
name : "Passive" ,
value : "Passive" ,
} ,
{
name : "Search And Destroy" ,
value : "Search And Destroy" ,
} ,
{
name : "Respawn" ,
value : "Respawn" ,
} ,
] ,
} ,
] ,
} ,
{
type : "SUB_COMMAND" ,
name : "sniper_rifle" ,
description : "Get a gunsmith build for a Sniper Rifle" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
// {
// name: "XPR-50",
// value: "B01",
// },
{
name : "Arctic .50" ,
value : "B02" ,
} ,
{
name : "M21 EBR" ,
value : "B03" ,
} ,
{
name : "DL Q33" ,
value : "B04" ,
} ,
{
name : "Locus" ,
value : "B05" ,
} ,
// {
// name: "NA-45",
// value: "B06",
// },
{
name : "Outlaw" ,
value : "B07" ,
} ,
{
name : "Rytec AMR" ,
value : "B08" ,
} ,
{
name : "SVD" ,
value : "B09" ,
} ,
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "Aggressive" ,
value : "Aggressive" ,
} ,
{
name : "Passive" ,
value : "Passive" ,
} ,
{
name : "Search And Destroy" ,
value : "Search And Destroy" ,
} ,
{
name : "Respawn" ,
value : "Respawn" ,
} ,
] ,
} ,
] ,
} ,
{
type : "SUB_COMMAND" ,
name : "light_machine_gun" ,
description : "Get a gunsmith build for a Light Machine Gun" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
{
name : "S36" ,
value : "C01" ,
} ,
{
name : "UL736" ,
value : "C02" ,
} ,
{
name : "RPD" ,
value : "C03" ,
} ,
{
name : "M4 LMG" ,
value : "C04" ,
} ,
{
name : "Chopper" ,
value : "C05" ,
} ,
{
name : "Holger 26" ,
value : "C06" ,
} ,
{
name : "Hades" ,
value : "C07" ,
} ,
{
name : "PKM" ,
value : "C08" ,
} ,
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "Aggressive" ,
value : "Aggressive" ,
} ,
{
name : "Passive" ,
value : "Passive" ,
} ,
{
name : "Search And Destroy" ,
value : "Search And Destroy" ,
} ,
{
name : "Respawn" ,
value : "Respawn" ,
} ,
] ,
} ,
] ,
} ,
{
type : "SUB_COMMAND" ,
name : "shotgun" ,
description : "Get a gunsmith build for a Shotgun" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
{
name : "HS2126" ,
value : "E01" ,
} ,
{
name : "BY15" ,
value : "E02" ,
} ,
{
name : "HS0405" ,
value : "E03" ,
} ,
{
name : "Striker" ,
value : "E04" ,
} ,
{
name : "KRM 262" ,
value : "E05" ,
} ,
{
name : "Echo" ,
value : "E06" ,
} ,
{
name : "R9-0" ,
value : "E07" ,
} ,
2022-03-02 09:54:39 +01:00
{
name : "JAK-12" ,
value : "E08" ,
} ,
2022-02-05 02:06:33 +01:00
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
{
name : "dHitman" ,
value : "dhitman" ,
} ,
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "ADS" ,
value : "ADS" ,
} ,
{
name : "Hipfire" ,
value : "Hipfire" ,
} ,
] ,
} ,
] ,
} ,
{
type : "SUB_COMMAND" ,
name : "marksman_rifle" ,
description : "Get a gunsmith build for a Marksman Rifle" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
{
name : "Kilo Bolt-Action" ,
value : "F01" ,
} ,
{
name : "SKS" ,
value : "F02" ,
} ,
{
name : "SP-R 208" ,
value : "F03" ,
} ,
{
name : "MK2" ,
value : "F04" ,
} ,
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
{
name : "Stats On Duty" ,
value : "Stats On Duty" ,
} ,
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "Aggressive" ,
value : "Aggressive" ,
} ,
{
name : "Passive" ,
value : "Passive" ,
} ,
{
name : "Respawn" ,
value : "Respawn" ,
} ,
] ,
} ,
] ,
} ,
{
type : "SUB_COMMAND" ,
name : "pistol" ,
description : "Get a gunsmith build for a Pistol" ,
options : [
{
type : 3 ,
name : "name" ,
description : "Name of the Gun" ,
required : true ,
choices : [
{
name : "J358" ,
value : "G01" ,
} ,
{
name : "MW11" ,
value : "G02" ,
} ,
{
name : ".50 GS" ,
value : "G03" ,
} ,
{
name : "Renetti" ,
value : "G04" ,
} ,
{
name : "Shorty" ,
value : "G05" ,
} ,
{
name : "Crossbow" ,
value : "G06" ,
} ,
] ,
} ,
{
type : 3 ,
name : "author" ,
description : "Select a Content Creator" ,
required : true ,
choices : [
{
name : "path.exe" ,
value : "path.exe" ,
} ,
// {
// name: "Stats On Duty",
// value: "Stats On Duty",
// },
] ,
} ,
{
type : 3 ,
name : "tag" ,
description : "Playstyle/game mode of the build" ,
required : true ,
choices : [
{
name : "Respawn" ,
value : "Respawn" ,
} ,
] ,
} ,
] ,
} ,
] ,
2021-11-18 18:56:42 +01:00
run : async ( client , interaction , args ) => {
2022-01-28 09:00:28 +01:00
const cwts = args [ 1 ] ;
2021-11-18 18:56:42 +01:00
const cc = args [ 2 ] ;
const tag = args [ 3 ] ;
const data = await axios
. get (
2022-02-04 12:50:08 +01:00
` ${ process . env . api } /api/v1/codm/build?cwts= ${ cwts } &cc= ${ cc } &tag= ${ tag } ` ,
2022-01-28 21:19:50 +01:00
{
2021-11-18 18:56:42 +01:00
headers : {
2022-01-28 21:19:50 +01:00
Authorization : process . env . CODM _API _KEY ,
2021-11-18 18:56:42 +01:00
} ,
}
)
. then ( res => res . data )
2022-01-16 23:39:30 +01:00
. catch ( e => null ) ;
2022-01-30 10:03:03 +01:00
if ( ! data ? . cwts ) {
2021-12-10 19:42:33 +01:00
const embed = new MessageEmbed ( )
. setDescription (
2022-02-04 12:50:08 +01:00
` <:nyx_not_available:897378400031879188> We don't have a ** ${ tag } ** gunsmith build for the gun with **CWTS 🆔 ${ cwts } ** by ** ${ cc } **, Please try another tag or a differnt content creator `
2021-12-10 19:42:33 +01:00
)
. setColor ( client . color ) ;
interaction . followUp ( { embeds : [ embed ] } ) ;
2021-11-18 18:56:42 +01:00
} else {
const arr = [ ] ;
data . attachments . map ( ( e , i ) => {
2021-12-09 20:38:01 +01:00
return arr . push ( ` ** ${ i + 1 } :** ${ e } ` ) ;
2021-11-18 18:56:42 +01:00
} ) ;
const embed = new MessageEmbed ( )
2022-02-05 02:35:26 +01:00
. setTitle ( ` ${ tag } build for ${ data . weaponName } from ${ data . author } ` )
2021-11-18 18:56:42 +01:00
. setDescription (
2022-02-03 10:13:53 +01:00
` <:nyx_description:897379659665264650> **Description** \` \` \` \n ${ data . notes } \n \` \` \` `
2021-11-18 18:56:42 +01:00
)
. setColor ( 16580400 )
. setImage ( data . imageUrl )
2022-01-30 10:03:03 +01:00
. setFooter ( {
text : ` Builds Aggregated by ${ client . author } ` ,
iconURL : client . user . displayAvatarURL ( ) ,
} )
2021-11-18 18:56:42 +01:00
. setTimestamp ( )
. addFields (
{
name : "<:nyx_author:897379080549314601> Author:" ,
value : ` \` \` \` \n ${ data . author } \n \` \` \` ` ,
inline : true ,
} ,
{
name : "<a:lastupdate:897381474330873887> Last Updated:" ,
value : ` \` \` \` \n ${ moment ( Date . parse ( data . lastUpdate ) ) . format (
"MMMM Do YYYY"
) } \ n \ ` \` \` ` ,
inline : true ,
} ,
{
name : ":id: CWTS:" ,
value : ` \` \` \` \n ${ data . cwts } \n \` \` \` ` ,
inline : true ,
} ,
{
name : ":paperclip: Attachments:" ,
value : arr . join ( "\n" ) ,
} ,
{
name : "<a:tags:897034924140404776> Tags" ,
value : data . tags . join ( ", " ) ,
}
)
. setURL ( client . web ) ;
interaction . followUp ( {
embeds : [ embed ] ,
} ) ;
}
} ,
2022-01-28 21:19:50 +01:00
} ;