Skip to content
This repository has been archived by the owner on May 19, 2021. It is now read-only.

Commit

Permalink
updated commands
Browse files Browse the repository at this point in the history
added cs go dota commands
  • Loading branch information
RohitM-IN authored Dec 3, 2019
1 parent ed07177 commit 183ca6b
Show file tree
Hide file tree
Showing 11 changed files with 11,925 additions and 66 deletions.
193 changes: 128 additions & 65 deletions commands/game/csgo.js
Original file line number Diff line number Diff line change
@@ -1,78 +1,141 @@
const Discord = require('discord.js');
var request = require('request');
var cheerio = require('cheerio');
const { stripIndents } = require("common-tags");
var converter = require('steam-id-convertor');
var bigInt = require("big-integer");
var fs = require("fs");
var schedule = require('node-schedule');
const leven = require('leven');
const https = require("https");
const auth = require('../../auth.json').api.steamapi;

function getStatData(location , $){

var selector = $('.stats-stat .value').eq(location).text();

var stat_array = $.parseHTML(selector);

var stat = 0;

if(stat_array == null || stat_array.lengh == 0){
return -1;

}else{
stat = stat_array[0].data;
}

return stat;
}

function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
module.exports = {
name: "csgo",
description: "Displays a user's csgo stats!",
usage: "csgo <steamid or custom url>",
category: "game",
aliases: ["cs-go"] ,
run: async (client, message, args) => {
var UR_L = "http://csgo.tracker.network/profile/" + args[0];
run: async (client, message, args, userID, channelID) => {
let test = args[0];
let id = test.match(/^(https:\/\/steamcommunity\.com\/id\/)?([^\s\/]+)\/?$/);
let id_ = test.match(/^(https:\/\/steamcommunity\.com\/profiles\/)?([^\s\/]+)\/?$/);

if(!args[0]){
return message.channel.send("Please Enter a valid STEAMID64 or custom url");
}

request(UR_L, function(err, resp, body){

$ = cheerio.load(body);

var KD = getStatData(0, $);
if(KD == -1){
return message.channel.send("Invalid, make sure your profile is not private and you have entered a valid STEAMID64 or Custom URL!");
}

var WIN = getStatData(1, $);
var HS = getStatData(4, $);
var MONEY = getStatData(5, $);
var SCORE = getStatData(6, $);
var KILLS = getStatData(7, $);
var DEATHS = getStatData(8, $);
var MVP = getStatData(9, $);
var BS = getStatData(13, $);
var BD = getStatData(14, $);
var HR = getStatData(15, $);

var embed = new Discord.RichEmbed()
.setTitle("__***CSGO Stats***__")
.setURL(UR_L)
.addField("Current stats",stripIndents`
Total KD: __**${KD}**__
Total Win%: __**${WIN}**__
Total MVPs: __**${MVP}**__
Total Score: __**${SCORE}**__
Total Kills: __**${KILLS}**__
Total Deaths: __** ${DEATHS}**__
Total Bombs Set: __** ${BS}**__
Total Bombs Defused: __** ${BD}**__
Total Headshots: __**${HS}**__
Total Money Earned: __**${MONEY}**__
Total Hostages Rescued: __**${HR}**__`, true)
.addField("Powered by:", `**[csgo.tracker.network](http://csgo.tracker.network)**`, false)
if(id) args[0] = id[2];
if(id_) args[0] = id_[2];

function doCSGOStats(steam64ID, profilePic, name, customUrl, userID) {
message.channel.send("fetching stats please wait!!").then(msg => {
https.get("https://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v2/?key=" + auth + "&steamid=" + steam64ID + "&appid=730", res => {
res.setEncoding("utf8");

let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
if(body.indexOf("500 Internal Server Error")!=-1){
msg.edit("Blocked by player's privacy settings.");
return;
}
body = JSON.parse(body);
if (body.playerstats == undefined) {
// console.log("profile not found");
msg.edit("No CSGO profile found.");
return;
}
var kd = bigInt("" + body.playerstats.stats[0].value).divmod("" + body.playerstats.stats[1].value);
// console.log("kd: " + new String(kd.quotient));
var tempString = new String(kd.remainder / body.playerstats.stats[1].value);
var calculatedKD = new String(kd.quotient) + tempString.substring(tempString.indexOf("."));
let embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(`Counter-Strike: Global Offensive | ${playerID}`)
.setThumbnail(profilePic)
.setURL("http://steamcommunity.com/id/" + customUrl)
.setDescription(`**Name:** ${name}`)
.addField(`**Achievements:**`,`${body.playerstats.achievements.length}`,true)
.addField(`**Total Time Played:**`,`${numberWithCommas(String(bigInt(body.playerstats.stats[2].value).divide(3600)))} hrs played`,true)
.addField(`**K/D:**`,`${calculatedKD}`,true)
.addField(`**Bombs:**`,`Planted ${numberWithCommas(String(body.playerstats.stats[3].value))} bombs\ndefused ${numberWithCommas(String(body.playerstats.stats[4].value))} bombs`,true)
.addField(`**Wins:**`,`${numberWithCommas(String(body.playerstats.stats[5].value))} times`,true)
.addField(`**Money:**`,`$${numberWithCommas(String(body.playerstats.stats[7].value))} earned`,true)
.addField(`**Damage:**`,`${numberWithCommas(String(body.playerstats.stats[6].value))}`,true)
.addField("**Misc. Kill Stats:**",`:point_down:`)
.addField(`**Headshots:**`,`${numberWithCommas(String(body.playerstats.stats[24].value))}`,true)
.addField(`**Enemy Weapons:**`,`${numberWithCommas(String(body.playerstats.stats[25].value))}`,true)
.addField(`**knife:**`,`${numberWithCommas(String(body.playerstats.stats[9].value))}`,true)
.addField(`**HE nades:**`,`${numberWithCommas(String(body.playerstats.stats[10].value))}`,true)
.addField("**Other Stats:**",`:point_down:`)
.addField(`**rounds:**`,`${numberWithCommas(String(body.playerstats.stats[45].value))}`,true)
.addField(`**kills:**`,`${numberWithCommas(String(body.playerstats.stats[0].value))} times`,true)
.addField(`**Deaths:**`,`${numberWithCommas(String(body.playerstats.stats[1].value))} shots`,true)
.addField(`**killed:**`,`${numberWithCommas(String(body.playerstats.stats[39].value))} zoomed in snipers`,true)
.addField(`**donated weapons:**`,`${numberWithCommas(String(body.playerstats.stats[35].value))} `,true)
.addField(`**MVPs:**`,`${numberWithCommas(String(body.playerstats.stats[98].value))} received`,true)
.setTimestamp()
.setColor("0x#FF0000");
message.channel.send(embed);
}
)}
.setFooter(client.user.username);


msg.edit(embed);

},function(error, response) {
if(error) return message.channel.send("looks like i broke try the command again");
// console.log(response);
}
);
});
})


}
var playerID = args[0];
// console.log(playerID);
var steam64ID = 0;

https.get("https://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=" + auth + "&vanityurl=" + playerID, res => {
res.setEncoding("utf8");
let bodySteam = "";
res.on("data", steamData => {
bodySteam += steamData;
});
res.on("end", () => {
bodySteam = JSON.parse(bodySteam);
// console.log("sucess = " + bodySteam.response.success);
var searchID = playerID;
if (bodySteam.response.success === 1) {
// console.log("steamid = " + bodySteam.response.steamid);
steam64ID = (bodySteam.response.steamid);
searchID = steam64ID;
}

https.get("https://api.steampowered.com/isteamuser/getplayersummaries/v0002/?key=" + auth + "&steamids=" + searchID, res => {
res.setEncoding("utf8");
let bodySteam2 = "";
res.on("data", steamData2 => {
bodySteam2 += steamData2;
});
res.on("end", () => {
//console.log(bodySteam2);
bodySteam2 = JSON.parse(bodySteam2);

if (bodySteam2.response.players.length == 0) {
message.channel.send("No players found.");
return;
} else {
steam64ID = playerID;
// console.log(steam64ID);
doCSGOStats(searchID, bodySteam2.response.players[0].avatarfull, bodySteam2.response.players[0].personaname, playerID, userID);
}
});
});


});
});
}
}
172 changes: 172 additions & 0 deletions commands/game/csgow.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
const Discord = require('discord.js');
var request = require('request');
const { stripIndents } = require("common-tags");
var converter = require('steam-id-convertor');
var bigInt = require("big-integer");
var fs = require("fs");
var schedule = require('node-schedule');
const leven = require('leven');
const https = require("https");
const auth = require('../../auth.json').api.steamapi;

function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
module.exports = {
name: "csgow",
description: "Displays a user's csgo weapons stats!",
usage: "csgow <steamid or custom url>",
category: "game",
aliases: ["cs-gow"] ,
run: async (client, message, args, userID, channelID) => {
let test = args[0];
let id = test.match(/^(https:\/\/steamcommunity\.com\/id\/)?([^\s\/]+)\/?$/);
let id_ = test.match(/^(https:\/\/steamcommunity\.com\/profiles\/)?([^\s\/]+)\/?$/);

if(id) args[0] = id[2];
if(id_) args[0] = id_[2];

async function doCSGOStats(steam64ID, profilePic, name, customUrl, userID) {
message.channel.send("fetching stats please wait!!").then(msg => {
https.get("https://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v2/?key=" + auth + "&steamid=" + steam64ID + "&appid=730", res => {
res.setEncoding("utf8");

let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
if(body.indexOf("500 Internal Server Error")!=-1){
msg.edit("Blocked by player's privacy settings.");
return;
}
body = JSON.parse(body);
if (body.playerstats == undefined) {
// console.log("profile not found");
msg.edit("No CSGO profile found.");
return;
}
var kd = bigInt("" + body.playerstats.stats[0].value).divmod("" + body.playerstats.stats[1].value);
// console.log("kd: " + new String(kd.quotient));
var tempString = new String(kd.remainder / body.playerstats.stats[1].value);
var calculatedKD = new String(kd.quotient) + tempString.substring(tempString.indexOf("."));
let embed = new Discord.RichEmbed()
.setColor("#1adb3e")
.setAuthor(`Counter-Strike: Global Offensive | ${playerID}`)
.setThumbnail(profilePic)
.setURL("http://steamcommunity.com/id/" + customUrl)
.setDescription(`**Name:** ${name}`)
.addField(`**Achievements:**`,`${body.playerstats.achievements.length}`,true)
.addField(`**Terrorist:**`,`:point_down:`)
.addField(`**Glock:**`,`${numberWithCommas(String(body.playerstats.stats[11].value))}`,true)
.addField(`**TEC 9:**`,`${numberWithCommas(String(body.playerstats.stats[155].value))}`,true)
.addField(`**CZ75-Auto:**`,`${numberWithCommas(String(body.playerstats.stats[12].value))}`,true)
.addField(`**Mac 10:**`,`${numberWithCommas(String(body.playerstats.stats[16].value))}`,true)
.addField(`**Sawed-Off:**`,`${numberWithCommas(String(body.playerstats.stats[149].value))}`,true)
.addField(`**Galil AR:**`,`${numberWithCommas(String(body.playerstats.stats[164].value))}`,true)
.addField(`**Ak47:**`,`${numberWithCommas(String(body.playerstats.stats[19].value))}`,true)
.addField(`**SG 556:**`,`${numberWithCommas(String(body.playerstats.stats[125].value))}`,true)
.addField(`**G3SG1:**`,`${numberWithCommas(String(body.playerstats.stats[22].value))}`,true);
let embed1 = new Discord.RichEmbed()
.setColor("#1adb3e")
.addField(`**Counter-Terrorist:**`,`:point_down:`)
.addField(`**P2000 / USP-S:**`,`${numberWithCommas(String(body.playerstats.stats[122].value))}`,true)
.addField(`**Five-SeveN:**`,`${numberWithCommas(String(body.playerstats.stats[14].value))}`,true)
.addField(`**MAG 7:**`,`${numberWithCommas(String(body.playerstats.stats[158].value))}`,true)
.addField(`**MP 9:**`,`${numberWithCommas(String(body.playerstats.stats[137].value))}`,true)
.addField(`**Famas:**`,`${numberWithCommas(String(body.playerstats.stats[21].value))}`,true)
.addField(`**M4A1 / M4A1-S:**`,`${numberWithCommas(String(body.playerstats.stats[160].value))}`,true)
.addField(`**AUG:**`,`${numberWithCommas(String(body.playerstats.stats[20].value))}`,true)
.addField(`**Scar 20:**`,`${numberWithCommas(String(body.playerstats.stats[132].value))}`,true)
.addField("**Common Weapons:**",`:point_down:`)
.addField(`**P250:**`,`${numberWithCommas(String(body.playerstats.stats[123].value))}`,true)
.addField(`**Dual Berettas:**`,`Updated soon`,true)
.addField(`**Deagle:**`,`${numberWithCommas(String(body.playerstats.stats[11].value))}`,true)
.addField(`**XM 1014:**`,`${numberWithCommas(String(body.playerstats.stats[14].value))}`,true)
.addField(`**Nova:**`,`${numberWithCommas(String(body.playerstats.stats[141].value))}`,true)
.addField(`**MP 7:**`,`${numberWithCommas(String(body.playerstats.stats[136].value))}`,true)
.addField(`**UMP 45:**`,`${numberWithCommas(String(body.playerstats.stats[16].value))}`,true)
.addField(`**P 90:**`,`${numberWithCommas(String(body.playerstats.stats[17].value))}`,true)
.addField(`**Bizon:**`,`${numberWithCommas(String(body.playerstats.stats[151].value))}`,true)
.addField(`**Negev:**`,`${numberWithCommas(String(body.playerstats.stats[144].value))}`,true)
.addField(`**M 249:**`,`${numberWithCommas(String(body.playerstats.stats[23].value))}`,true)
.addField(`**SSG 08:**`,`${numberWithCommas(String(body.playerstats.stats[134].value))}`,true)
.addField(`**AWP:**`,`${numberWithCommas(String(body.playerstats.stats[19].value))}`,true)
let embed2 = new Discord.RichEmbed()
.setColor("#1adb3e")
.addField(`**Melee weapons:**`,`:point_down:`)
.addField(`**Knife:**`,`${numberWithCommas(String(body.playerstats.stats[8].value))}`,true)
.addField(`**Taser:**`,`${numberWithCommas(String(body.playerstats.stats[163].value))}`,true)
.addField(`**Molotov:**`,`${numberWithCommas(String(body.playerstats.stats[165].value))}`,true)
.addField(`**Extra info:**`,`:point_down:`)
.addField(`**donated weapons:**`,`${numberWithCommas(String(body.playerstats.stats[35].value))} `,true)
.addField(`**K/D:**`,`${calculatedKD}`,true)
.addField(`**Total Kills:**`,`${numberWithCommas(String(body.playerstats.stats[0].value))}`,true)
.setTimestamp()
.setFooter(client.user.username);


msg.edit("some info may be wrong don't panic");
message.channel.send(embed);
message.channel.send(embed1);
message.channel.send(embed2);

},function(error, response) {
if(error) return message.channel.send("looks like i broke try the command again");
// console.log(response);
}
);
});
}).catch(console.error);


}
var playerID = args[0];
// console.log(playerID);
var steam64ID = 0;

https.get("https://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=" + auth + "&vanityurl=" + playerID, res => {
res.setEncoding("utf8");
let bodySteam = "";
res.on("data", steamData => {
bodySteam += steamData;
});
res.on("end", () => {
bodySteam = JSON.parse(bodySteam);
// console.log("sucess = " + bodySteam.response.success);
var searchID = playerID;
if (bodySteam.response.success === 1) {
// console.log("steamid = " + bodySteam.response.steamid);
steam64ID = (bodySteam.response.steamid);
searchID = steam64ID;
}

https.get("https://api.steampowered.com/isteamuser/getplayersummaries/v0002/?key=" + auth + "&steamids=" + searchID, res => {
res.setEncoding("utf8");
let bodySteam2 = "";
res.on("data", steamData2 => {
bodySteam2 += steamData2;
});
res.on("end", () => {
//console.log(bodySteam2);
bodySteam2 = JSON.parse(bodySteam2);

if (bodySteam2.response.players.length == 0) {
message.channel.send("No players found.");
return;
} else {
steam64ID = playerID;
// console.log(steam64ID);
doCSGOStats(searchID, bodySteam2.response.players[0].avatarfull, bodySteam2.response.players[0].personaname, playerID, userID);

}
});
});


});
});
}
}
Loading

0 comments on commit 183ca6b

Please sign in to comment.