101 lines
1.8 KiB
JavaScript
101 lines
1.8 KiB
JavaScript
// config.js
|
|
const GAMEMODES = [
|
|
'NETH_POT',
|
|
'CRYSTAL',
|
|
'CLASSIC',
|
|
'BUILDUHC',
|
|
'SUMO',
|
|
'GAP',
|
|
'AXE',
|
|
'SMP',
|
|
'VANILLA',
|
|
'BRIDGE',
|
|
'COMBO',
|
|
'FIREBALL',
|
|
];
|
|
|
|
const GAMEMODE_LABELS = {
|
|
NETH_POT: 'Netherite Pot',
|
|
CRYSTAL: 'Crystal',
|
|
CLASSIC: 'Classic',
|
|
BUILDUHC: 'Build UHC',
|
|
SUMO: 'Sumo',
|
|
GAP: 'Gapple',
|
|
AXE: 'Axe',
|
|
SMP: 'SMP',
|
|
VANILLA: 'Vanilla',
|
|
BRIDGE: 'Bridge',
|
|
COMBO: 'Combo',
|
|
FIREBALL: 'Fireball',
|
|
};
|
|
|
|
const REGIONS = ['NA', 'EU', 'AS', 'AU'];
|
|
|
|
// Minecraft username regex: 3-16 chars, letters, numbers, underscore
|
|
const USERNAME_REGEX = /^[a-zA-Z0-9_]{3,16}$/;
|
|
|
|
// Helper functions
|
|
function avatarUrl(username) {
|
|
return `https://render.crafty.gg/3d/bust/${encodeURIComponent(username)}`;
|
|
}
|
|
|
|
function isValidTier(tier) {
|
|
const valid = ['HT1', 'LT1', 'HT2', 'LT2', 'HT3', 'LT3', 'HT4', 'LT4', 'HT5', 'LT5'];
|
|
return valid.includes(tier);
|
|
}
|
|
|
|
function isValidGamemode(gamemode) {
|
|
return GAMEMODES.includes(gamemode);
|
|
}
|
|
|
|
function isValidRegion(region) {
|
|
return REGIONS.includes(region);
|
|
}
|
|
|
|
function normalizeGamemode(gamemode) {
|
|
if (!gamemode) return null;
|
|
return gamemode.toUpperCase().replace(/\s+/g, '_');
|
|
}
|
|
|
|
function normalizeRegion(region) {
|
|
if (!region) return 'NA';
|
|
return region.toUpperCase().trim();
|
|
}
|
|
|
|
function normalizeTier(tier) {
|
|
if (!tier) return null;
|
|
return tier.toUpperCase().trim();
|
|
}
|
|
|
|
function tierToPoints(tier) {
|
|
if (!tier) return 0;
|
|
const map = {
|
|
HT1: 100,
|
|
LT1: 90,
|
|
HT2: 80,
|
|
LT2: 70,
|
|
HT3: 60,
|
|
LT3: 50,
|
|
HT4: 40,
|
|
LT4: 30,
|
|
HT5: 20,
|
|
LT5: 10,
|
|
};
|
|
return map[tier] || 0;
|
|
}
|
|
|
|
module.exports = {
|
|
GAMEMODES,
|
|
GAMEMODE_LABELS,
|
|
REGIONS,
|
|
USERNAME_REGEX,
|
|
avatarUrl,
|
|
isValidTier,
|
|
isValidGamemode,
|
|
isValidRegion,
|
|
normalizeGamemode,
|
|
normalizeRegion,
|
|
normalizeTier,
|
|
tierToPoints,
|
|
};
|