Files
eagler-tiers/server/config.js
starified 08bf320b57 uploaded
2026-04-21 22:03:19 -04:00

93 lines
1.6 KiB
JavaScript

const TIERS = ["HT1", "LT1", "HT2", "LT2", "HT3", "LT3", "HT4", "LT4", "HT5", "LT5"];
const TIER_POINTS = {
HT1: 60,
LT1: 45,
HT2: 30,
LT2: 20,
HT3: 10,
LT3: 6,
HT4: 4,
LT4: 3,
HT5: 2,
LT5: 1,
};
const GAMEMODES = [
"vanilla",
"mace",
"axe",
"sword",
"smp",
"diamondsmp",
"uhc",
"pot",
"nethop",
"cart",
];
const GAMEMODE_LABELS = {
vanilla: "Vanilla",
mace: "Mace",
axe: "Axe",
sword: "Sword",
smp: "SMP",
diamondsmp: "Diamond SMP",
uhc: "UHC",
pot: "Pot",
nethop: "Neth OP",
cart: "Cart",
};
const USERNAME_REGEX = /^[A-Za-z0-9_]{3,16}$/;
const REGIONS = ["NA", "EU", "AS", "AU"];
function avatarUrl(username) {
return `https://render.crafty.gg/3d/bust/${encodeURIComponent(username)}`;
}
function isValidTier(tier) {
return TIERS.includes(String(tier || "").toUpperCase());
}
function isValidGamemode(gamemode) {
return GAMEMODES.includes(String(gamemode || "").toLowerCase());
}
function normalizeTier(tier) {
return String(tier || "").toUpperCase();
}
function normalizeGamemode(gamemode) {
return String(gamemode || "").toLowerCase();
}
function tierToPoints(tier) {
return TIER_POINTS[tier] || 0;
}
function isValidRegion(region) {
return REGIONS.includes(String(region || "").toUpperCase());
}
function normalizeRegion(region) {
return String(region || "").toUpperCase();
}
module.exports = {
TIERS,
TIER_POINTS,
GAMEMODES,
GAMEMODE_LABELS,
USERNAME_REGEX,
REGIONS,
avatarUrl,
isValidTier,
isValidGamemode,
isValidRegion,
normalizeTier,
normalizeGamemode,
normalizeRegion,
tierToPoints,
};