Помогите Как получить название "Булыжник" из материала

adodvstudios

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Jenka20091
Есть ли метод который из Material.COBBLESTONE делает "Булыжник"?
 
Тебе нужен stack.getType().getTranslationKey() и TranslatableComponent для перевода клиентом.
 
Последнее редактирование:
String material_name = material.name().toLowerCase();
String name = LocaleLanguage.a().a((material.isBlock() ? "block" : "item") + ".minecraft." + material_name);
if (name.startsWith((material.isBlock() ? "block" : "item") + ".minecraft.")) {
name = "n/a";
}

Справедливо для Paper 1.16.3 и 1.16.5
 
String material_name = material.name().toLowerCase();
String name = LocaleLanguage.a().a((material.isBlock() ? "block" : "item") + ".minecraft." + material_name);
if (name.startsWith((material.isBlock() ? "block" : "item") + ".minecraft.")) {
name = "n/a";
}

Справедливо для Paper 1.16.3 и 1.16.5
1.12.2
 
А нет все же вот так надо stack.getType().getTranslationKey() это возвращает ключ транслейта.
 
Получить перевод ты просто так не сможешь. Однако, можно получить ключ для перевода через нмс и отправить его клиенту используя Chat Component API. Совсем немного подправил код, который был в том посте, но по аналогии с баннером тебе нужно решить другие цветные предметы и блоки.
 
Вот тестовый рабочий пример. Как созреешь для обновления в нормальную версию. Будет работать везде где можно передавать компонент.
Код:
    @EventHandler
    public void on(PlayerInteractEvent e) {
        ItemStack stack = new ItemStack(Material.COBBLESTONE);
        TranslatableComponent tell = new TranslatableComponent();
        tell.setTranslate(stack.getType().getTranslationKey());
        e.getPlayer().sendMessage(tell);
    }
 
Получить перевод ты просто так не сможешь. Однако, можно получить ключ для перевода через нмс и отправить его клиенту используя Chat Component API. Совсем немного подправил код, который был в том посте, но по аналогии с баннером тебе нужно решить другие цветные предметы и блоки.
Транслейт компонента в этой версии не было, так что только завидовать молча.
 
Вот тестовый рабочий пример. Как созреешь для обновления в нормальную версию. Будет работать везде где можно передавать компонент.
Код:
    @EventHandler
    public void on(PlayerInteractEvent e) {
        ItemStack stack = new ItemStack(Material.COBBLESTONE);
        TranslatableComponent tell = new TranslatableComponent();
        tell.setTranslate(stack.getType().getTranslationKey());
        e.getPlayer().sendMessage(tell);
    }
Раз уже все равно на Paper - может через adventure?
Транслейт компонента в этой версии не было, так что только завидовать молча.
Был, лол.
 
Как вариант, использовать эту либу https://github.com/BoomEaro/LangHelper или принцип по которой она работает, а именно использовать языковый файл с нужным переводом от клиента на сервере, и просто получать нужную строку по нужному ключу. Таким образом можно везде использовать перевод предмета.
 
Назад
Верх