@zikeji/hypixel
Version:
With IntelliSense support & test coverage, this is an unopinionated async/await API wrapper for Hypixel's Public API. It is developed in TypeScript complete with documentation, typed interfaces for all API responses, built-in rate-limit handling, flexible
215 lines • 8.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PlayerRanks = void 0;
exports.getPlayerRank = getPlayerRank;
const MinecraftFormatting_1 = require("./MinecraftFormatting");
/** @internal */
var PlayerRanks;
(function (PlayerRanks) {
PlayerRanks[PlayerRanks["NON_DONOR"] = 1] = "NON_DONOR";
PlayerRanks[PlayerRanks["VIP"] = 2] = "VIP";
PlayerRanks[PlayerRanks["VIP_PLUS"] = 3] = "VIP_PLUS";
PlayerRanks[PlayerRanks["MVP"] = 4] = "MVP";
PlayerRanks[PlayerRanks["MVP_PLUS"] = 5] = "MVP_PLUS";
PlayerRanks[PlayerRanks["SUPERSTAR"] = 6] = "SUPERSTAR";
PlayerRanks[PlayerRanks["YOUTUBER"] = 60] = "YOUTUBER";
PlayerRanks[PlayerRanks["JR_HELPER"] = 70] = "JR_HELPER";
PlayerRanks[PlayerRanks["HELPER"] = 80] = "HELPER";
PlayerRanks[PlayerRanks["MODERATOR"] = 90] = "MODERATOR";
PlayerRanks[PlayerRanks["ADMIN"] = 100] = "ADMIN";
})(PlayerRanks || (exports.PlayerRanks = PlayerRanks = {}));
/**
* Get an {@link PlayerRank} object describing the player's rank in more detail without the need to figure out how to parse it yourself.
* @param player The result of `client.player.uuid()`.
* @param onlyPackages Whether to ignore their staff / youtube rank and only get their donor rank.
* @category Helper
*/
function getPlayerRank(player, onlyPackages = false) {
let foundRank = PlayerRanks.NON_DONOR;
if (onlyPackages) {
if (player.monthlyPackageRank) {
const rank = PlayerRanks[player.monthlyPackageRank];
if (rank) {
foundRank = rank;
}
}
if (player.newPackageRank) {
const rank = PlayerRanks[player.newPackageRank];
if (rank && rank > foundRank) {
foundRank = rank;
}
}
if (player.packageRank) {
const rank = PlayerRanks[player.packageRank];
if (rank && rank > foundRank) {
foundRank = rank;
}
}
}
else if (typeof player.rank !== "undefined" && player.rank !== "NORMAL") {
const rank = PlayerRanks[player.rank];
if (rank) {
foundRank = rank;
}
else {
return getPlayerRank(player, true);
}
}
else {
return getPlayerRank(player, true);
}
let out;
switch (foundRank) {
case PlayerRanks.VIP:
out = {
priority: foundRank,
name: "VIP",
cleanName: "VIP",
prefix: "§a[VIP]",
cleanPrefix: "[VIP]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.GREEN,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.GREEN],
staff: false,
};
break;
case PlayerRanks.VIP_PLUS:
out = {
priority: foundRank,
name: "VIP_PLUS",
cleanName: "VIP+",
prefix: "§a[VIP§6+§a]",
cleanPrefix: "[VIP+]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.GREEN,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.GREEN],
staff: false,
};
break;
case PlayerRanks.MVP:
out = {
priority: foundRank,
name: "MVP",
cleanName: "MVP",
prefix: "§b[MVP]",
cleanPrefix: "[MVP]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.AQUA,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.AQUA],
staff: false,
};
break;
case PlayerRanks.MVP_PLUS:
out = {
priority: foundRank,
name: "MVP_PLUS",
cleanName: "MVP+",
prefix: "§b[MVP§c+§b]",
cleanPrefix: "[MVP+]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.AQUA,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.AQUA],
staff: false,
};
break;
case PlayerRanks.SUPERSTAR:
out = {
priority: foundRank,
name: "SUPERSTAR",
cleanName: "MVP++",
prefix: "§6[MVP§c++§6]",
cleanPrefix: "[MVP++]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.GOLD,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.GOLD],
staff: false,
};
break;
case PlayerRanks.YOUTUBER:
out = {
priority: foundRank,
name: "YOUTUBER",
cleanName: "YOUTUBER",
prefix: "§c[§fYOUTUBE§c]",
cleanPrefix: "[YOUTUBE]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.RED,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.RED],
staff: false,
};
break;
case PlayerRanks.JR_HELPER:
out = {
priority: foundRank,
name: "JR_HELPER",
cleanName: "JR HELPER",
prefix: "§9[JR HELPER]",
cleanPrefix: "[JR HELPER]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.BLUE,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.BLUE],
staff: true,
};
break;
case PlayerRanks.HELPER:
out = {
priority: foundRank,
name: "HELPER",
cleanName: "HELPER",
prefix: "§9[HELPER]",
cleanPrefix: "[HELPER]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.BLUE,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.BLUE],
staff: true,
};
break;
case PlayerRanks.MODERATOR:
out = {
priority: foundRank,
name: "MODERATOR",
cleanName: "MODERATOR",
prefix: "§2[MOD]",
cleanPrefix: "[MOD]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.DARK_GREEN,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.DARK_GREEN],
staff: true,
};
break;
case PlayerRanks.ADMIN:
out = {
priority: foundRank,
name: "ADMIN",
cleanName: "ADMIN",
prefix: "§c[ADMIN]",
cleanPrefix: "[ADMIN]",
colorCode: MinecraftFormatting_1.MinecraftFormatting.RED,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.RED],
staff: true,
};
break;
default:
out = {
priority: foundRank,
name: "NON_DONOR",
cleanName: "DEFAULT",
prefix: "§7",
cleanPrefix: "",
colorCode: MinecraftFormatting_1.MinecraftFormatting.GRAY,
colorHex: MinecraftFormatting_1.MinecraftColorAsHex[MinecraftFormatting_1.MinecraftFormatting.GRAY],
staff: false,
};
break;
}
if (player.monthlyRankColor || player.rankPlusColor) {
const customRankColor = MinecraftFormatting_1.MinecraftFormatting[player.monthlyRankColor];
const customPlusColor = MinecraftFormatting_1.MinecraftFormatting[player.rankPlusColor];
if (customRankColor) {
out.customRankColor = customRankColor;
out.customRankColorHex =
MinecraftFormatting_1.MinecraftColorAsHex[customRankColor];
}
if (customPlusColor) {
out.customPlusColor = customPlusColor;
out.customPlusColorHex =
MinecraftFormatting_1.MinecraftColorAsHex[customPlusColor];
}
if (out.priority === PlayerRanks.SUPERSTAR) {
out.prefix = `${customRankColor !== null && customRankColor !== void 0 ? customRankColor : "§6"}[MVP${customPlusColor !== null && customPlusColor !== void 0 ? customPlusColor : "§c"}++${customRankColor !== null && customRankColor !== void 0 ? customRankColor : "§6"}]`;
}
}
return out;
}
//# sourceMappingURL=PlayerRank.js.map