Войти или зарегистрироваться

Помогите Поставить блок головы игрока с текстурой

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

Limon-mine

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Limon_MineDel
Есть такой метод, мне скинули как то давно:
Код:
    public static ItemStack getHeadFromValue(final String value) {
        return Bukkit.getUnsafe().modifyItemStack(new ItemStack(Material.SKULL_ITEM, 1, (short)3), "{SkullOwner:{Id:\"" + UUID.nameUUIDFromBytes(value.getBytes()) + "\",Properties:{textures:[{Value:\"" + value + "\"}]}}}");
    }
Он делает ItemStack с головой игрока по значению value с нек. сайтов.
Есть несколько вопросов.
1. Как поставить любой блок
2. Как поставить блок с головой игрока и значением value с нек. сайтов.
 
И ещё 1.
3. Есть у меня в конфиге это:

Код:
location:
  1:
    x:  1
    y: 4
    z: 32
  2:
    x:  12
    y: 24
    z: 25
Конфиг может увеличиваться и уменьшаться пользователем. Как сделать что бы на все эти координаты (могут изменяться, меняться количество) ставить блок?
 
Последнее редактирование:
И ещё 1.
3. Есть у меня в конфиге это:

Код:
location:
  1:
    x:  1
    y: 4
    z: 32
  2:
    x:  12
    y: 24
    z: 25
Конфиг может увеличиваться и уменьшаться пользователем. Как сделать что бы на все эти координаты (могут изменяться, меняться количество) ставить блок?
config.getConfigurationSection("location").getKeys(false)

Как поставить любой блок
world.getBlock(...).setType(Material.STONE)

Как поставить блок с головой игрока и значением value с нек. сайтов.
Что такое "нек. сайты"? Твой код не работает?
У меня для работы с головами примерно такой класс: https://pastebin.com/Q5GmaHgq
 
Открываешь любую голову, прокручиваешь вниз, находишь Minecraft-URL, создаёшь голову при помощи getHeadByHash(), например.

А можно поставить ItemStack?
Можно ли установить текстуру голове из мира? При помощи Skull BlockState. Глянь в моём коде метод getBlockSkinHash() и сделай по аналогии установку профиля
 
Открываешь любую голову, прокручиваешь вниз, находишь Minecraft-URL, создаёшь голову при помощи getHeadByHash(), например.


Можно ли установить текстуру голове из мира? При помощи Skull BlockState. Глянь в моём коде метод getBlockSkinHash() и сделай по аналогии установку профиля
Всё равно не понял
 
Все нашёл.

Код:
    private void changeSkin(Block b, String base64Str) {
        if (b.getType() != Material.SKULL) return;    // to avoid spurious exceptions
        final Skull skull = (Skull)b.getState();
        skull.setSkullType(SkullType.PLAYER);
        GameProfile profile = new GameProfile(UUID.randomUUID(), null);
        profile.getProperties().put("textures", new Property("textures",base64Str));
        try {
            Field profileField = skull.getClass().getDeclaredField("profile");
            profileField.setAccessible(true);
            profileField.set(skull, profile);
        }catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); }
        skull.update(); // so that the result can be seen
    }
 
Мне ещё надо как то отличать эту голову от остальных голов. Как это сделать? Может название голове как то дать
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх