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

Помогите Получения ID цвета блока

Тема в разделе "Разработка плагинов для новичков", создана пользователем Sirfluffs, 2 янв 2018.

  1. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
    Здравствуйте! Пишу GUI и там все блоки являются стёклами разных цветов, как определить эти цвета в InventoryClickEvent? Блок я определил, а цвет его не могу. Подскажите.
     
  2. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    block data
     
  3. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
    поподробнее? может пример?
     
  4. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Сделай себе примерно такой метод:
    Код:
     public static Color getColorByDamage(short damage) {
            switch (damage) {
                case 0:
                    return Color.WHITE;
                //и так все цвета
            }
     }
    
     
  5. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Да какая разница, всё-равно в 1.13 всё сломается. :creeper:
     
  6. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
    Мне надо типо такого
    Код:
    ItemStack glass1 = new ItemStack(Material.STAINED_GLASS, 1);
    if(e.getCurrentItem().getType() == glass1) { 
    //code 
    }
    но так ругается if несовмещение Material с ItemStack
     
  7. TheZefirrkka

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

    Баллы:
    76
    glass1.getType()
     
  8. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Кстати, есть нормальное API с MaterialData для стекла?
     
  9. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Оно всегда будет Material.STAINED_GLASS, код цвета, хм... getData().getData()?
    Проще создать ItemStack с нужным цветом и сравнивать через .isSimilar()
     
  10. TheZefirrkka

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

    Баллы:
    76
    С шерстью так:
    1. if(b.getState().getData() instanceof Wool){
    2. Wool w = ((Wool)b.getState().getData());
    3. DyeColor color = w.getColor();
    4. }
      Со стеклом так же, только касты и проверки другие
     
  11. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Найди здесь стекло
    [​IMG]
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Кстати да, без магик валуе походу тут никак. Ждем 1.13. Или переходим на sponge.
     
  13. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
    мне надо найти byte стекла на которое игрок нажал, а в glass1 я уже указал его, мне надо проверить что getCurrentIntem = glass1
     
  14. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
    isSimilar()?
     
  15. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    PHP:
    ItemStack redGlass = new ItemStack(Material,STAINED_GLASS,1,(short)0,(byte)15); //точно не помню, проверь в игре
    //Твой listener
    if(e.getCurrentItem().isSimilar(redGlass)) {
    //красное стекло
    }
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Прокатит, если вся мета совпадет isSimilar проверяет лоре имя и тп. А то мало ли.
     
  17. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Если у него меню, то он где-то создаёт предметы. Если будет их использовать то должно прокатить.
     
  18. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
    у меня (byte) это кол-во блоков.
     
  19. Автор темы
    Sirfluffs

    Sirfluffs Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xSirfluffsXx
  20. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Вот код.
    Иначе никак

     

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