Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите [Решено]Поставить блок, который смотрит в определенную сторону(?)

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

Статус темы:
Закрыта.
  1. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    Всем привет, дорогие девелоперы!
    Хотел бы спросить, можно ли дополнить f.getBlock().setType(Material.SMOOTH_STAIRS); тем, куда будет смотреть ступенька (стороны North/SOTH и т.д.)? Я просмотрел форумы и ютуб - ничего не нашел
    javadoc bukkit пользуюсь плохо)

    Буду рад ответу, спасибо за внимание.
     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    За это дополнительный параметр отвечает.
     
  4. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Можно получить MaterialData блока(находится в его BlockState), закастовать Stairs и поменять направление. Сам не проверял, но предполагаю что сработает.
     
  5. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    можно пример, пожалуйста?
     
  6. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
  7. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    Не нашел понятного мне ответа там :-\
     
  8. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Код:
      public boolean getStairsData(World world, int x, int y, int z, BlockFace dir){
            byte d = 0;
          
            if(dir == BlockFace.WEST){
                d = 0x1;
            }else if(dir == BlockFace.EAST){
                d = 0x0;
            }else if(dir == BlockFace.NORTH){
                d = 0x3;
            }else if(dir == BlockFace.SOUTH){
                d = 0x2;
            }
          
            return world.getBlockAt(x, y, z).setTypeIdAndData(67, d, false);
        }
    Но лучше сделать через switch.
     
  9. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    как это правильно использовать? Я много перепробовал.. без успехов
     
  10. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Сам не особо понял. Видимо, как-то так:
    Код:
      public boolean setStairsDirection(Block b, BlockFace dir){
            byte d = 0;
    
            switch(dir){
                case WEST:
                    d = 0x1;
                    break;
                case EAST:
                    d = 0x0;
                    break;
                case NORTH:
                    d = 0x3;
                    break;
                case SOUTH:
                    d = 0x2;
                    break;
            }
     
            return b.setTypeIdAndData(Material.SMOOTH_STAIRS.getId(), d, false);
        }
    А в BlockFace указываем направление ступенек.
     
    Последнее редактирование: 3 ноя 2014
  11. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    Нет, в смысле использовать f.getBlock().setType(Material.SMOOTH_STAIRS) взаимодействии с этим кодом( в данном случае меня интересует только сторона North. Сейчас сильно застопорился на этом моменте :-\
    может, мне скинуть весь код?
     
  12. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    loc.getBlock().setTypeIdAndData(Material.SMOOTH_STAIRS.getId(), 0x3, false);
     
  13. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    Вот, как раз, на этом моменте я заступорился [​IMG]
     
  14. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Что за ошибка?
     
  15. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    [​IMG]
    [​IMG]
     
  16. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Сделайте просто f.getBlock().setData(0x3).
     
  17. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    ID давно не используются. А это кастаните в байт, делов то
     
  18. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    0x3 и есть byte же.
     
  19. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    Или нельзя кастануть
    или я обладаю не прямыми руками :)D)
    [​IMG] [​IMG]
     
  20. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Странно, всегда думал, что это байт. Ну тогда кастуйте, а на deprecated не обращайте внимания.
     
  21. Автор темы
    Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
    Он все ровно зачеркнут :с
    [​IMG]
     
Статус темы:
Закрыта.

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