Skip to content

Instantly share code, notes, and snippets.

@ilsubyeega
Last active January 25, 2021 09:40
Show Gist options
  • Save ilsubyeega/a0409fce705ebd219c4a1a836cc7ccbd to your computer and use it in GitHub Desktop.
Save ilsubyeega/a0409fce705ebd219c4a1a836cc7ccbd to your computer and use it in GitHub Desktop.
var enabled = false;
register("chat", function (name) {
ChatLib.say("/f accept " + ChatLib.removeFormatting(name).replace(/\[.+]/g, "").trim());
}).setCriteria("&r&eFriend request from &r${name}&r&9\n&r&a&l").setParameter("contains");
var apikey = Java.type("java.lang.System").getenv("HYPIXEL_API_KEY");
import {
request
} from '../requestV2';
register('command', enable).setCommandName('enablestatsbot');
function enable() {
if (enabled) {
ChatLib.chat("&cDisabled Bedwars Party Stats Bot.");
enabled = false;
return;
}
ChatLib.chat("&aEnabled Bedwars Party Stats Bot.");
enabled = true;
return;
}
register("chat", function (name) {
if (!enabled) return;
if (name.includes("ilsubyeega")) return;
fetchPlayerThenChat(name, "/pc ");
}).setCriteria("${name}&r&ejoined the party.&r").setParameter("contains");
register("chat", function (event) {
if (!enabled) return;
var value = ChatLib.getChatMessage(event, true).toString();
value = ChatLib.removeFormatting(value);
if (value.includes(": s ")) {
var temp = value.split(": s ");
if (temp.length == 2) {
var tmpv2 = temp[1].split(" ");
tmpv2.forEach(element => {
setTimeout(() => {
fetchPlayerThenChat(element, "/pc ");
}, 200);
});
}
}
}).setCriteria("&r&9Party &8>").setParameter("contains");
register("chat", function (event) {
if (!enabled) return;
var value = ChatLib.getChatMessage(event, true).toString();
value = ChatLib.removeFormatting(value);
if (value.includes(": s ")) {
var temp = value.split(": s ");
if (temp.length == 2) {
var tmpv2 = temp[1].split(" ");
tmpv2.forEach(element => {
setTimeout(() => {
fetchPlayerThenChat(element, "/gc ");
}, 200);
});
}
}
}).setCriteria("&r&2Guild >").setParameter("contains");
function fetchPlayerThenChat(name, prefix) {
var user = ChatLib.removeFormatting(name).replace(/\[.+]/g, "").replace(/[^a-z0-9]/gi, '').trim();
request("https://api.hypixel.net/player?key=" + apikey + "&name=" + user)
.then(function (response) {
try {
var parsedResponse = JSON.parse(response);
var star = parsedResponse?.player?.achievements?.bedwars_level;
var finals = parsedResponse?.player?.stats?.Bedwars?.final_kills_bedwars;
var finalsL = parsedResponse?.player?.stats?.Bedwars?.final_deaths_bedwars;
var wins = parsedResponse?.player?.stats?.Bedwars?.wins_bedwars;
var loses = parsedResponse?.player?.stats?.Bedwars?.losses_bedwars;
var winlr = wins / loses;
var fkdr = finals / finalsL;
var winstreakoverall = parsedResponse.player.stats.Bedwars.winstreak;
var winstreak1 = parsedResponse.player.stats.Bedwars.eight_one_winstreak;
var winstreak2 = parsedResponse.player.stats.Bedwars.eight_two_winstreak;
var winstreak3 = parsedResponse.player.stats.Bedwars.four_three_winstreak;
var winstreak4 = parsedResponse.player.stats.Bedwars.four_four_winstreak;
ChatLib.say(prefix + `[${star ?? 0}✫] ${user} | WS: ${winstreakoverall ?? 0} (${winstreak1 ?? 0}/${winstreak2 ?? 0}/${winstreak3 ?? 0}/${winstreak4 ?? 0})`);
setTimeout(() => {
ChatLib.say(prefix + `FKDR: ${fkdr.toFixed(2)} (${finals ?? 0}) | WLR: ${winlr.toFixed(2)} (${wins ?? 0})`);
}, 100);
} catch (err) {
ChatLib.chat("&cError:" + err);
ChatLib.chat("&cUser:" + user);
ChatLib.chat("&cResponses:" + response);
}
})
.catch(function (error) {
try {
var parse = JSON.parse(error);
if (parse.success == false){
if (parse?.throttle == true){
ChatLib.chat("&6[Hypixel-API] &fRate limited")
} else {
ChatLib.chat("&6[Hypxiel-API] &fError: " + parse?.cause);
}
}
} catch (err){
ChatLib.chat("&cError:" + err);
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment