1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Limon-mine, 21 июн 2022.

Статус темы:
Закрыта.
  1. Автор темы
    Limon-mine

    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 с нек. сайтов.
     
  2. Автор темы
    Limon-mine

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
    И ещё 1.
    3. Есть у меня в конфиге это:

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

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    config.getConfigurationSection("location").getKeys(false)

    world.getBlock(...).setType(Material.STONE)

    Что такое "нек. сайты"? Твой код не работает?
    У меня для работы с головами примерно такой класс: https://pastebin.com/Q5GmaHgq
     
  5. Автор темы
    Limon-mine

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
    Нек сайты . А можно поставить ItemStack?
     
  6. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Открываешь любую голову, прокручиваешь вниз, находишь Minecraft-URL, создаёшь голову при помощи getHeadByHash(), например.

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

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
    Всё равно не понял
     
  8. Автор темы
    Limon-mine

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
    Все нашёл.

    Код:
        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
        }
     
  9. Автор темы
    Limon-mine

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
    Мне ещё надо как то отличать эту голову от остальных голов. Как это сделать? Может название голове как то дать
     
  10. Автор темы
    Limon-mine

    Limon-mine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Limon_MineDel
    Решено
     
Статус темы:
Закрыта.

Поделиться этой страницей