Помогите странный баг с lore предмета

Статус
Закрыто для дальнейших ответов.

Studenikin

Старожил
Пользователь
Баллы
123
Имя в Minecraft
stuvanya
Имеется следующий код, если вкратце - создается инвентарь в в нем в lore предмета пишет статистику игрока:

Код:
    public static void open(Player p, Inventory profile) {
         for (int i = 0; i < profile.getSize(); i++) {
            ItemStack item = profile.getItem(i);
            if (item != null) {
                replace(p, item);
                profile.setItem(i, item);
                System.out.println("NEW2lore: " + profile.getItem(i).getItemMeta().getLore());
            }
        }
        p.openInventory(profile);
    }

    public static void replace(Player p, ItemStack item) {
        ItemMeta itemMeta = item.getItemMeta();
        List<String> nlore = new ArrayList<>();

        if (itemMeta.getLore() == null) return;

        for (String lore : itemMeta.getLore()) {
            lore = lore.replace("%privilege%", PexFormatter.getPrefix(p));
            lore = lore.replace("%level%", EconomyAPI.getLevel(p));
            lore = lore.replace("%procent%", EconomyAPI.getProcent(p));
            lore = lore.replace("%money%", EconomyAPI.getCoins(p).toString());
            nlore.add(lore);
        }


        itemMeta.setLore(nlore);
        item.setItemMeta(itemMeta);
    }

В логе дебаг выводится так:

Код:
[10:30:19 INFO]: NEW2lore: [Здесь Вы можете сменить язык., , Доступные языки:, ,    • Русский(100%),    • English(50%), , Со временем будут дополняться, старые и выходить новые.]
[10:30:19 INFO]: NEW2lore: [Нажмите, чтобы увидеть, наши социальные сети.]
[10:30:19 INFO]: NEW2lore: [Привилегия: ADMIN , Уровень: 1 (Прогресс: 8.00%), Монеты: 77380]
[10:30:19 INFO]: NEW2lore: [Скоро...]
[10:30:19 INFO]: NEW2lore: [Дополнительная информация.]
[10:30:19 INFO]: NEW2lore: [Играя в различные режимы,, получая достижения, выполняя, квесты, Вы получаете опыт., От количества опыта зависит, уровень., , Ваш уровень: 1 (Прогресс: 8.00%)]
[10:30:19 INFO]: NEW2lore: [Скоро...]
[10:30:19 INFO]: NEW2lore: [Здесь Вы можете, изменить настройки.]

То есть вроде все как и должно быть, но игрок видит это:

Снимок экрана от 2019-08-13 11-30-24.png

Причем раньше на 1.12 апи все работало нормально, проблема возникла при переписывании на 1.14
 
Последнее редактирование:
Не уверен в том что написал, но возможно так ?
Код:
    public static void open(Player p, Inventory profile) {
         for (int i = 0; i < profile.getSize(); i++) {
            ItemStack item = profile.getItem(i);
            if (item != null) {
                replace(p, item);
                profile.setItem(i, replace(p, item)); // Изменено
                System.out.println("NEW2lore: " + profile.getItem(i).getItemMeta().getLore());
            }
        }
        p.openInventory(profile);
    }

    public static ItemStack replace(Player p, ItemStack item) { // Изменено
        ItemMeta itemMeta = item.getItemMeta();
        List<String> nlore = new ArrayList<>();

        if (itemMeta.getLore() == null) return;

        for (String lore : itemMeta.getLore()) {
            lore = lore.replace("%privilege%", PexFormatter.getPrefix(p));
            lore = lore.replace("%level%", EconomyAPI.getLevel(p));
            lore = lore.replace("%procent%", EconomyAPI.getProcent(p));
            lore = lore.replace("%money%", EconomyAPI.getCoins(p).toString());
            nlore.add(lore);
        }


        itemMeta.setLore(nlore);
        item.setItemMeta(itemMeta);
        return item; // Добавлено
    }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх