Вопрос Как добавить текстуру головам в меню

Версия Minecraft
1.20.X

QuodLitee

Заблокирован
Сообщения
27
Решил перейти на 1.20.4, начал ставить плагины на новую версию, столкнулся с проблемой, что 1.20.4 не даёт поставить имя профиля null в отличии от версий ниже.
 
Java:
ItemStack skull = new ItemStack(Material.SKULL);
SkullMeta skullMeta = ((SkullMeta) skull).getItemMeta();
skullMeta.setOwner("ВЛАДЕЛЕЦ ГОЛОВЫ");
skull.setItemMeta(skullMeta);
в этом коде ты просто устанавливаешь определённую голову через код, а в плагине подразумевается, что игрок сам в конфиге добавляет всё что хочет, мне нужно чтобы голове можно было добавить айди из конфига
 
в этом коде ты просто устанавливаешь определённую голову через код, а в плагине подразумевается, что игрок сам в конфиге добавляет всё что хочет, мне нужно чтобы голове можно было добавить айди из конфига
А теперь ещё раз и по-русски. Всё что хочет - стак алмазов? Айди из конфига -
config.getString(«путь»);?
 
А теперь ещё раз и по-русски. Всё что хочет - стак алмазов? Айди из конфига -
config.getString(«путь»);?
"Всё что хочет" вплане плагин работает как deluxemenus, в меню плагина можно добавлять разные предметы записывая их в кфг плагина. Мне нужно сделать так, чтобы тот кто поставит этот плагин на сервер мог сам добавить голову с кастом текстурой в меню.
Объединено

на 1.16.5 сервере метод который я использовал работал, а на 1.20.4 выдаёт ошибку Profile name must be null
 
Код:
public static ItemStack setSkullOwner(ItemStack i, String owner) {
        SkullMeta headMeta = (SkullMeta)i.getItemMeta();
        if (owner.length() > 16) {
            GameProfile profile = new GameProfile(UUID.randomUUID(), null);
            profile.getProperties().put("textures", new Property("textures", owner));
            try {
                Field profileField = headMeta.getClass().getDeclaredField("profile");
                profileField.setAccessible(true);
                profileField.set(headMeta, profile);
            } catch (IllegalArgumentException|NoSuchFieldException|SecurityException|IllegalAccessException error) {
                error.printStackTrace();
            }
        } else {
            headMeta.setOwner(owner);
        }
        i.setItemMeta((ItemMeta)headMeta);
        return i;
    }
можно ли переписать как-то этот метод, чтобы не было такой ошибки Profile name must be null?
 
Назад
Сверху Снизу