add info for item

This commit is contained in:
aurinex
2025-12-29 19:17:08 +05:00
parent e0889cfaea
commit dc4fe3b18e
3 changed files with 436 additions and 11 deletions

View File

@ -0,0 +1,106 @@
// utils/itemTranslator.ts
/* ----------------------------- */
/* ENCHANT TRANSLATIONS */
/* ----------------------------- */
export const ENCHANT_TRANSLATIONS: Record<string, string> = {
sharpness: 'Острота',
smite: 'Небесная кара',
bane_of_arthropods: 'Бич членистоногих',
efficiency: 'Эффективность',
unbreaking: 'Прочность',
fortune: 'Удача',
silk_touch: 'Шёлковое касание',
power: 'Сила',
punch: 'Отдача',
flame: 'Огонь',
infinity: 'Бесконечность',
protection: 'Защита',
fire_protection: 'Огнестойкость',
blast_protection: 'Взрывоустойчивость',
projectile_protection: 'Защита от снарядов',
feather_falling: 'Невесомость',
respiration: 'Подводное дыхание',
aqua_affinity: 'Подводник',
thorns: 'Шипы',
depth_strider: 'Подводная ходьба',
frost_walker: 'Ледоход',
mending: 'Починка',
binding_curse: 'Проклятие несъёмности',
vanishing_curse: 'Проклятие утраты',
looting: 'Добыча',
sweeping: 'Разящий клинок',
fire_aspect: 'Заговор огня',
knockback: 'Отдача',
luck_of_the_sea: 'Морская удача',
lure: 'Приманка',
};
/* ----------------------------- */
/* GENERIC META TRANSLATIONS */
/* ----------------------------- */
export const META_TRANSLATIONS: Record<string, string> = {
durability: 'Прочность',
max_durability: 'Максимальная прочность',
custom_model_data: 'Кастомная модель',
unbreakable: 'Неразрушимый',
repair_cost: 'Стоимость починки',
hide_flags: 'Скрытые флаги',
rarity: 'Редкость',
damage: 'Урон',
attack_speed: 'Скорость атаки',
armor: 'Броня',
armor_toughness: 'Твёрдость брони',
knockback_resistance: 'Сопротивление отталкиванию',
glowing: 'Подсветка',
};
/* ----------------------------- */
/* FORMATTERS */
/* ----------------------------- */
export function translateEnchant(key: string): string {
return ENCHANT_TRANSLATIONS[key.toLowerCase()] ?? beautifyKey(key);
}
export function translateMetaKey(key: string): string {
return META_TRANSLATIONS[key.toLowerCase()] ?? beautifyKey(key);
}
export function beautifyKey(key: string): string {
return key
.replace(/_/g, ' ')
.replace(/\b\w/g, (l) => l.toUpperCase());
}
/* ----------------------------- */
/* VALUE FORMATTERS */
/* ----------------------------- */
export function formatMetaValue(value: any): string {
if (typeof value === 'boolean') return value ? 'Да' : 'Нет';
if (typeof value === 'number') return String(value);
if (typeof value === 'string') return value;
if (Array.isArray(value)) return value.join(', ');
if (typeof value === 'object') return 'Сложное значение';
return String(value);
}
/* ----------------------------- */
/* ENCHANT LIST HELPER */
/* ----------------------------- */
export function formatEnchants(
enchants?: Record<string, number>,
): { label: string; level: number }[] {
if (!enchants || typeof enchants !== 'object') return [];
return Object.entries(enchants).map(([key, level]) => ({
label: translateEnchant(key),
level,
}));
}