This repository has been archived by the owner on May 19, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added cs go dota commands
- Loading branch information
Showing
11 changed files
with
11,925 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
}); | ||
}); | ||
|
||
|
||
}); | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
|
||
} | ||
}); | ||
}); | ||
|
||
|
||
}); | ||
}); | ||
} | ||
} |
Oops, something went wrong.