Merge pull request #42 from night0721/dev

Added New Weapon, Bug Fixes, etc
This commit is contained in:
Night Kaly 2022-01-22 22:03:06 +08:00 committed by GitHub
commit 41ffdb9049
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 621 additions and 51 deletions

9
.github/README.md vendored
View file

@ -44,9 +44,10 @@ If you like this bot, feel free to :star: **Star** this repository.<br>
## <img height="18px" src="../util/assets/images/cod_logo.svg"> **Call of Duty Mobile** ## <img height="18px" src="../util/assets/images/cod_logo.svg"> **Call of Duty Mobile**
- **Weapon Statistics** courtesy of **Lighthouse v2.1** - **Weapon Statistics** courtesy of **Lighthouse v2.1**
> Will soon be using stats provided by **Round Table** of Cygnoux Familia. > Will soon be using stats provided by **Stats On Duty**.
- **Currated Gunsmith Builds** by various content creators like Jokesta, dHitman, Path.exe and more comming soon. - **Currated Gunsmith Builds** by various content creators like Jokesta, dHitman, Path.exe and more comming soon.
- **Perks** detailed info about the perks. - **Perks** detailed info about the perks.
- **Scorestreak** detailed info about scorestreak with preview videos.
- **Randomly Generated Class** Wanna try something challenging? try our Randomly Generated Gunsmith builds. - **Randomly Generated Class** Wanna try something challenging? try our Randomly Generated Gunsmith builds.
> We also provide access to our database that includes In-depth Weapon statistics & Gunsmith Builds from various Content Creators, & other Call of duty related info, please [contact us](https://rebrand.ly/cathSupport) for more info. > We also provide access to our database that includes In-depth Weapon statistics & Gunsmith Builds from various Content Creators, & other Call of duty related info, please [contact us](https://rebrand.ly/cathSupport) for more info.
@ -59,7 +60,7 @@ If you like this bot, feel free to :star: **Star** this repository.<br>
A detailed Deployment guide can be found [here](https://thunder75.gitbook.io/cath-bot/deployment). A detailed Deployment guide can be found [here](https://thunder75.gitbook.io/cath-bot/deployment).
<details> <!-- <details>
<summary>Made With</summary> <summary>Made With</summary>
[![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)](https://developer.mozilla.org/en-US/docs/Web/JavaScript) [![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
@ -76,9 +77,9 @@ A detailed Deployment guide can be found [here](https://thunder75.gitbook.io/cat
![GitHub Discussions](https://img.shields.io/github/discussions/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge) ![GitHub Discussions](https://img.shields.io/github/discussions/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge)
[![Last commit](https://img.shields.io/github/last-commit/night0721/cath.exe?icon=discord&color=5865F2&style=for-the-badge&scale=1.4)](https://github.com/night0721/cath.exe) [![Last commit](https://img.shields.io/github/last-commit/night0721/cath.exe?icon=discord&color=5865F2&style=for-the-badge&scale=1.4)](https://github.com/night0721/cath.exe)
<!-- [![Files](https://tokei.rs/b1/github/night0721/cath.exe?category=files&style=for-the-badge)](https://github.com/night0721/cath.exe) --> <!-- [![Files](https://tokei.rs/b1/github/night0721/cath.exe?category=files&style=for-the-badge)](https://github.com/night0721/cath.exe)
</details> </details> -->
<h1 align = "center"> Support, Feature Request & Bug Reports </h1> <h1 align = "center"> Support, Feature Request & Bug Reports </h1>

View file

@ -82,29 +82,4 @@ function weaponIdentifier(inpWeaponName) {
); );
} }
return "Couldn't identify the weapon: `" + '"' + inpWeaponName + '"`'; return "Couldn't identify the weapon: `" + '"' + inpWeaponName + '"`';
} }
// ENABLE AFTER Holloween
// run: async (client, interaction, args) => {
// const embed = new MessageEmbed()
// .setTitle(`Prefix commands are now disabled`)
// .setDescription(`Please enable **Application commands** in the channel settings to get access to slash commands, we have discontinued prefix commands.`)
// .setColor(client.color)
// .setThumbnail(interaction.guild.iconURL({ dynamic: true }))
// .addFields(
// {
// name: "Need help ?",
// value: `Join our **[Support Server](https://discord.gg/SR7TeNJG67)**`,
// inline: true,
// },
// {
// name: "Support us <a:donate:896985486260846614>",
// value: `[KoFi](https://ko-fi.com/cathteam)`,
// inline: true,
// }
// )
// .setThumbnail("https://github.com/night0721/cath.js/blob/master/util/assets/images/nyx_logo_transparent.webp")
// .setTimestamp();
// interaction.followUp({ embeds: [embed] });
// },
// };

View file

@ -51,7 +51,6 @@ class NYX extends Client {
"614423108388126731", // Camper on Duty "614423108388126731", // Camper on Duty
"767173194943168542", // Dark Bonker "767173194943168542", // Dark Bonker
"718762019586572341", // NYX Nation "718762019586572341", // NYX Nation
"869583978108157972", // Lighthouse Community
"840225563193114624", // Command Test "840225563193114624", // Command Test
]; ];
const client = this; const client = this;

View file

@ -97,7 +97,8 @@ module.exports = {
{ {
name: "Swordfish", name: "Swordfish",
value: "swordfish", value: "swordfish",
}, // { },
// {
// name: "Kilo 141", // name: "Kilo 141",
// value: "kilo", // value: "kilo",
// }, // },
@ -116,7 +117,8 @@ module.exports = {
{ {
name: "Jokesta", name: "Jokesta",
value: "jokesta", value: "jokesta",
}, // { },
// {
// name: "Stats On Duty", // name: "Stats On Duty",
// value: "sod", // value: "sod",
// }, // },
@ -827,4 +829,4 @@ module.exports = {
}); });
} }
}, },
}; };

177
command/CODM/scorestreak.js Normal file
View file

@ -0,0 +1,177 @@
const { MessageEmbed } = require("discord.js");
const { CODMClient } = require("cath");
const c = new CODMClient("Gae");
module.exports = {
name: "scorestreak",
description: "Get Scorestreak stats",
type: "CHAT_INPUT",
usage: "{Scorestreak}",
category: "CODM",
options: [
{
type: "SUB_COMMAND",
name: "lethal",
description: "Lethal Scorestreak",
options: [
{
type: 3,
name: "scorestreak",
description: "Select a lethal scorestreak",
required: true,
choices: [
{
name: "Shield Turret",
value: "shieldturret",
},
{
name: "Hunter Killer Drone",
value: "hunterkillerdrone",
},
{
name: "MQ-27 Dragonfire",
value: "mq27dragonfire",
},
{
name: "Predator Missile",
value: "predatormissile",
},
{
name: "Hawk X3",
value: "hawkx3",
},
{
name: "Sentry Gun",
value: "sentrygun",
},
{
name: "Lightning Strike",
value: "lightningstrike",
},
{
name: "Orbital Laser",
value: "orbitallaser",
},
{
name: "XS1 Goliath",
value: "xs1goliath",
},
{
name: "Cluster Strike",
value: "clusterstrike",
},
{
name: "XS1 Goliath",
value: "xs1goliath",
},
{
name: "Stealth Chopper",
value: "stealthchopper",
},
{
name: "Swarm",
value: "swarm",
},
{
name: "Napalm",
value: "napalm",
},
{
name: "VTOL",
value: "vtol",
},
],
},
],
},
{
type: "SUB_COMMAND",
name: "support",
description: "Support Scorestreak",
options: [
{
type: 3,
name: "scorestreak",
description: "Select a Support Scorestreak",
required: true,
choices: [
{
name: "UAV",
value: "uav",
},
{
name: "Shock RC",
value: "shockrc",
},
{
name: "Care Package",
value: "carepackage",
},
{
name: "Counter UAV",
value: "cuav",
},
{
name: "SAM Turret",
value: "samturret",
},
{
name: "Advance UAV",
value: "auav",
},
{
name: "EMP Systems",
value: "empsystems",
},
],
},
],
},
],
run: async (client, interaction, args) => {
const val = args[1];
const d = await c.getscorestreak(val);
const embed = new MessageEmbed()
.setTitle(d.scorestreak)
.setURL(d.preview_video)
.setDescription(`\`\`\`${d.description}\`\`\``)
.addFields(
{
name: "Cost",
value: `\`\`\`${d.cost}\`\`\``,
inline: true
},
{
name: "Lethal",
value: `
${d.lethal == true
? "<a:nyx_checkmark:897240322411724841> Yes"
: "<a:nyx_cross:897244999211696198> No"}`,
inline: true
},
{
name: "AI-Assisted",
value: `
${d.manual == false
? "<a:nyx_checkmark:897240322411724841> Yes"
: "<a:nyx_cross:897244999211696198> No"}`,
inline: true
},
{
name: "More Info",
value: `\`\`\`${d.special}\`\`\``,
inline: false
}
)
.setThumbnail(`${d.preview}`)
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
.setColor(
d.type == "lethal"
? "FF2222"
: d.type == "support"
? "22FF4A"
: client.color
)
.setTimestamp();
interaction.followUp({ embeds: [embed] });
},
};

148
command/NSFW/nsfw.js Normal file
View file

@ -0,0 +1,148 @@
const fetch = require('node-fetch')
const { MessageActionRow, MessageButton, MessageEmbed, CommandInteraction } = require('discord.js');
module.exports = {
name : 'nsfw',
description: "nsfw command",
/**
* @param {Client} client
* @param {CommandInteraction} interaction
* @param {String[]} args
*/
run : async(client, interaction) => {
async function embed() {
if(!interaction.channel.nsfw){
const embed = new MessageEmbed()
.setTitle(`AYO Calm Yo Cheeks`)
.setDescription('This command only works in NSFW Channels!')
.setImage('https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif')
.setColor("#02023a")
interaction.followUp({ embeds: [embed]})
return;
}
let subreddits = [
'GoneWild',
'WorkGoneWild',
'GoneWild30Plus',
'hentai',
'HentaiAnime',
'nekogirls',
'ass',
'BestBooties',
'BootyGIFs',
'booty_queens',
'BlowJob',
'blowjobs',
'blowjobgifs',
'OralSex',
'boobs',
'GrabHerTitties',
'titfuck',
'milf',
'OnlyHotMilfs',
'realmoms',
'thighs',
'PerfectThighs',
'thickthighs'
]
let reddit = subreddits[Math.round(Math.random() * (subreddits.length - 1))];
let embed1 = null
await fetch(`https://meme-api.herokuapp.com/gimme/${reddit}`).then(res => res.json().then(url => {
embed1 = new MessageEmbed()
.setAuthor(
interaction.user.tag,
interaction.user.displayAvatarURL({ dynamic: true })
)
.setTitle(`${url.title}`)
.setImage(`${url.url}`)
.setTimestamp()
.setColor("RED")
.setFooter(`${url.ups} 👍`)
}))
return embed1
}
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('reload')
.setLabel('Reload')
.setStyle('SUCCESS'),
)
const disabled = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('reload')
.setLabel('Reload')
.setStyle('SECONDARY')
.setDisabled(true)
)
let m = await interaction.followUp({
embeds: [await embed()],
components: [row]
})
const collector = m.createMessageComponentCollector({
componentType: 'BUTTON',
time: 120000,
});
collector.on('collect', async i => {
if (i.user.id === interaction.user.id) {
i.deferUpdate()
await update(m)
collector.stop()
} else {
i.reply({
content: `These buttons aren't for you!`,
ephemeral: true
});
}
})
collector.on('end', (mes, r) => {
if (r == 'time') {
m.edit({
components: [disabled],
})
}
})
async function update(m) {
m.edit({
embeds: [await embed()]
}).catch(e => console.log(e.requestData.json.embeds))
const collector = m.createMessageComponentCollector({
componentType: 'BUTTON',
time: 120000,
});
collector.on('collect', async i => {
if (i.user.id === interaction.user.id) {
i.deferUpdate()
await update(m)
collector.stop()
} else {
i.reply({
content: `These buttons aren't for you!`,
ephemeral: true
});
}
})
collector.on('end', (mes, r) => {
if (r == 'time') {
m.edit({
components: [disabled],
})
}
})
}
}
}

View file

@ -18,6 +18,18 @@ module.exports = {
const embed = new MessageEmbed() const embed = new MessageEmbed()
.setTitle("Guilds") .setTitle("Guilds")
.setDescription(description) .setDescription(description)
.addFields(
{
name: `Total Guilds`,
value: client.guilds.cache.size,
inline: true
},
{
name: `Total Members`,
value: client.users.cache.size,
inline: true
}
)
.setColor(client.color) .setColor(client.color)
.addFields( .addFields(
{ {

148
nsfw.js Normal file
View file

@ -0,0 +1,148 @@
const fetch = require('node-fetch')
const { MessageActionRow, MessageButton, MessageEmbed, CommandInteraction } = require('discord.js');
module.exports = {
name : 'nsfw',
description: "nsfw command",
/**
* @param {Client} client
* @param {CommandInteraction} interaction
* @param {String[]} args
*/
run : async(client, interaction) => {
async function embed() {
if(!interaction.channel.nsfw){
const embed = new MessageEmbed()
.setTitle(`AYO Calm Yo Cheeks`)
.setDescription('This command only works in NSFW Channels!')
.setImage('https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif')
.setColor("#02023a")
interaction.followUp({ embeds: [embed]})
return;
}
let subreddits = [
'GoneWild',
'WorkGoneWild',
'GoneWild30Plus',
'hentai',
'HentaiAnime',
'nekogirls',
'ass',
'BestBooties',
'BootyGIFs',
'booty_queens',
'BlowJob',
'blowjobs',
'blowjobgifs',
'OralSex',
'boobs',
'GrabHerTitties',
'titfuck',
'milf',
'OnlyHotMilfs',
'realmoms',
'thighs',
'PerfectThighs',
'thickthighs'
]
let reddit = subreddits[Math.round(Math.random() * (subreddits.length - 1))];
let embed1 = null
await fetch(`https://meme-api.herokuapp.com/gimme/${reddit}`).then(res => res.json().then(url => {
embed1 = new MessageEmbed()
.setAuthor(
interaction.user.tag,
interaction.user.displayAvatarURL({ dynamic: true })
)
.setTitle(`${url.title}`)
.setImage(`${url.url}`)
.setTimestamp()
.setColor("RED")
.setFooter(`${url.ups} 👍`)
}))
return embed1
}
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('reload')
.setLabel('Reload')
.setStyle('SUCCESS'),
)
const disabled = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('reload')
.setLabel('Reload Meme')
.setStyle('SECONDARY')
.setDisabled(true)
)
let m = await interaction.followUp({
embeds: [await embed()],
components: [row]
})
const collector = m.createMessageComponentCollector({
componentType: 'BUTTON',
time: 120000,
});
collector.on('collect', async i => {
if (i.user.id === interaction.user.id) {
i.deferUpdate()
await update(m)
collector.stop()
} else {
i.reply({
content: `These buttons aren't for you!`,
ephemeral: true
});
}
})
collector.on('end', (mes, r) => {
if (r == 'time') {
m.edit({
components: [disabled],
})
}
})
async function update(m) {
m.edit({
embeds: [await embed()]
}).catch(e => console.log(e.requestData.json.embeds))
const collector = m.createMessageComponentCollector({
componentType: 'BUTTON',
time: 120000,
});
collector.on('collect', async i => {
if (i.user.id === interaction.user.id) {
i.deferUpdate()
await update(m)
collector.stop()
} else {
i.reply({
content: `These buttons aren't for you!`,
ephemeral: true
});
}
})
collector.on('end', (mes, r) => {
if (r == 'time') {
m.edit({
components: [disabled],
})
}
})
}
}
}

View file

@ -1,14 +1,14 @@
const { MessageEmbed, version: djsversion } = require("discord.js"); const { MessageEmbed, version: djsversion } = require("discord.js");
const version = require("../../../package.json").version; const version = require("../../../package.json").version;
const { utc } = require("moment"); const { utc } = require("moment");
const os = require("os"); // const os = require("os");
module.exports = { module.exports = {
name: "botinfo", name: "botinfo",
description: "Check the info of the bot", description: "Check the info of the bot",
category: "Information", category: "Information",
type: "CHAT_INPUT", type: "CHAT_INPUT",
run: async (client, interaction, args, utils) => { run: async (client, interaction, args, utils) => {
const core = os.cpus()[0]; // const core = os.cpus()[0];
const embed = new MessageEmbed() const embed = new MessageEmbed()
.setTitle(`NYX - CODM Gunsmith Bot`) .setTitle(`NYX - CODM Gunsmith Bot`)
.setURL( .setURL(
@ -51,18 +51,20 @@ module.exports = {
Discord.js \`v${djsversion}\` Discord.js \`v${djsversion}\`
Node.js \`${process.version}\``, Node.js \`${process.version}\``,
}, },
{ // Removed OS Info for troubleshooting.
name: `Hardware`, //
value: ` // {
Uptime:** ${utils.timer(os.uptime() * 1000, { long: true })} // name: `Hardware`,
Platform:** ${process.platform} // value: `
CPU:** // Uptime:** ${utils.timer(os.uptime() * 1000, { long: true })}
\u3000 Cores: ${os.cpus().length} // Platform:** ${process.platform}
\u3000 Model: ${core.model} // CPU:**
\u3000 Speed: ${core.speed}MHz // \u3000 Cores: ${os.cpus().length}
**`, // \u3000 Model: ${core.model}
inline: true, // \u3000 Speed: ${core.speed}MHz
} // **`,
// inline: true,
// }
) )
.addFields({ .addFields({
name: `**${client.author}**`, name: `**${client.author}**`,

View file

@ -1015,7 +1015,11 @@
"4x Tactical Scope", "4x Tactical Scope",
"4.4x Tactical Scope" "4.4x Tactical Scope"
], ],
"stock": ["YKM Light Stock", "OWC Skeleton Stock", "RTC Steady Stock"], "stock": [
"YKM Light Stock",
"OWC Skeleton Stock",
"RTC Steady Stock"
],
"perk": [ "perk": [
"FMJ", "FMJ",
"Sleight of Hand", "Sleight of Hand",
@ -1035,7 +1039,11 @@
"Tactical Foregrip A", "Tactical Foregrip A",
"Bipod" "Bipod"
], ],
"ammo": ["Extended Mag A", "Fast Reload", "Halberd Mag"], "ammo": [
"Extended Mag A",
"Fast Reload",
"Halberd Mag"
],
"rear_grip": [ "rear_grip": [
"Granulated Grip Tape", "Granulated Grip Tape",
"Ruberized Grip Tape", "Ruberized Grip Tape",
@ -1772,6 +1780,54 @@
] ]
} }
], ],
"PKM": [
{
"muzzle": [
"OWC Light Suppressor",
"Agency Suppressor",
"Infantry Compensator",
"MIP Flashguard",
"OWC Eliminator",
"RTC Muzzle Brake"
],
"barrel": [
"Rapid Fire Barrel",
"Long-Range Barrel",
"MIP Extended Light Barrel"
],
"optic": [
"Red Dot Sight",
"Holographic Sight",
"3x Tactical Scope",
"4x Tactical Scope",
"4.4x Tactical Scope"
],
"stock": [
"Light Weight Stock",
"Marathon Stock",
"No Stock",
"Agile Stock"
],
"perk": [
"FMJ",
"Sleight of Hand",
"Wounding",
"Full Ammo",
"Disable",
"Headshot XP",
"Empty Reload"
],
"laser": ["1mW Steady Aim Laser", "5mW Combat Laser", "Aim Assist Laser"],
"underbarrel": ["Crossbar"],
"ammo": ["84 Round Hybrid Mag"],
"rear_grip": [
"Sturdy Grip Tape",
"Rustle Grip Tape",
"Firm Grip Tape",
"Non-Slip Foregrip"
]
}
],
"RUS_79U": [ "RUS_79U": [
{ {
"muzzle": [ "muzzle": [
@ -2542,6 +2598,57 @@
] ]
} }
], ],
"PPSh_41": [
{
"muzzle": [
"Tactical Suppressor",
"OWC Light Suppressor",
"Monolithic Suppressor",
"OWC Light Compensator",
"MIP Light FLash Guard",
"RTC Light Muzzle Brake"
],
"barrel": [
"Gurrilla Light Short",
"Last Stand Light",
"Banner Heavy"
],
"optic": [
"Red Dot Sight",
"Holographic Sight",
"Tactical Scope",
"3x Tactical Scope"
],
"stock": ["No Stock", "OWC Skeleton Stock", "RTC Steady Stock"],
"perk": [
"FMJ",
"Sleight of Hand",
"Wounding",
"Full Ammo",
"Disable",
"Wild Hip Fire",
"Double Kill",
"Fast Reload Kill"
],
"laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"],
"underbarrel": [
"Focused Foregrip",
"Tough Foregrip",
"Resilient Foregrip",
"Tactical Foregrip A",
"Operator Foregrip"
],
"ammo": [
"35 Round Fast Reload",
"55 Round Light Reload"
],
"rear_grip": [
"Sturdy Grip Tape",
"Ruberized Grip Tape",
"Rustle Grip Tape"
]
}
],
"HS2126": [ "HS2126": [
{ {
"muzzle": [ "muzzle": [

File diff suppressed because one or more lines are too long