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

Стартап проверить есть ли блоки над игроком

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

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

    iceeee645745 Новичок

    Баллы:
    6
    Здравствуйте, у меня ноль знаний в джаве, и мне необходим основной алгоритм от которого я буду действовать. Можете написать небольшой код, начиная от начала до конца, который проверяет наличие любых блоков над игроком до 256 высоты, и в случае, если это так напишет в чат "true"? Заранее спасибо.
     
  2. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
  3. alexandrage

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

    Баллы:
    173
    Ну как то так.
    Код:
        public boolean isBlockUpTrue(Player player) {
            int high = player.getWorld().getHighestBlockAt(player.getLocation()).getLocation().getBlockY();
            if(high>player.getLocation().getBlockY()) {
                return true;
            }
            return false;
        }
     
  4. _Ruleto4ka_

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

    Баллы:
    76
    Да, этот мужик четко объясняет, смотрел как-то Гоша чето-там вообще ничего не понятно
     
  5. alexandrage

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

    Баллы:
    173
    хз че там у вас за Гоша, но уроки реально годные для новичков.
     
  6. Nikolai_Faint

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

    Баллы:
    96
    А зачем так много лишнего кода?

    PHP:
    public boolean isBlockUp (Player player) {
    return 
    player.getWorld().getHighestBlockAt (player.getLocation()).getLocation().getBlockY() > player.getLocation().getBlockY();
    }
     
  7. alexandrage

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

    Баллы:
    173
    Читабельность.
     
  8. _Ruleto4ka_

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

    Баллы:
    76
    Гоша Дударь
     
  9. alexandrage

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

    Баллы:
    173
    Не не смотрю таких.
     
  10. Nikolai_Faint

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

    Баллы:
    96
    Ну тэк учить новичка писать такой код это отвал.
     
  11. deadanykey

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

    Баллы:
    96
    Не согласен. Всё правильно он пишет. Для новичков самое то.
    Мало того, я бы ещё больше расписал.
     
  12. Nikolai_Faint

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

    Баллы:
    96
    Да, да, учи новичков писать большой код, да, да, ураааа.

    Ну а кто такие ****ь комменты то? Зачем нужно делать огромный код если можно сделать огромный коммент с описанием как это работает? Более того, прежде чем учить новичка писать такое требуется чтобы у него было понимание как внутри этот код исполняется, а учить по принципу: "Не, епта, вот видишь там такой огромный кусок условия, вот я тебе 4 переменные создал, каждая за что-то отвечает" это бред априоре.
     
  13. deadanykey

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

    Баллы:
    96
    И чем плох большой код? Хотя бы одну уважительную причину?

    Как оказалось, подробные комменты мало кто пишет. Попробуешь опровергнуть?

    Вот именно поэтому я предпочитаю развёрнутый код ("большой", если угодно). Код, взглянув на который, сразу будет ясно, что именно делает та или иная часть. Даже если я посмотрел на него через пять лет. И даже, если код без комментариев.
    И да, дополнительные переменные изрядно повышают читабельность кода.
     
  14. alexandrage

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

    Баллы:
    173
    Хрена вы срач раздули тут по поводу размера кода. Вы же понимаете, что компилятор это все оптимизирует?
     
  15. Nikolai_Faint

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

    Баллы:
    96
    1. Читабельность (Гораздо проще посмотреть объяснение как этот код работает, чем разбирать говнокод)
    2. Собственно сам говнокод. Таким образом ты создаёшь ненужные переменные которые будут на стеке, зачем это надо? Компилятор разберётся? Ну учим так учим, заебца.
    Статистика by shiza1337? Как это так оказалось? Откуда у тебя такие данные? Опять британские учёные приложили к этому руку?
    Компилятор & JVM: Спасибо мужик)
    Найдите родителей этих переменных, переверните там все регистры, но накажите, накажите этот стек и кучу, это животные не достойные использовать malloc.
     
  16. Nikolai_Faint

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

    Баллы:
    96
    Тут уже больше разговор за то чтобы учить новичков писать огромный код и надеется что компилятор сделает всю работу. У компилятора лишь абстрактное понимание того что делает твой код, нельзя постоянно быть уверенным в нём.
     
  17. deadanykey

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

    Баллы:
    96
    Походу, не все понимают )))
     
  18. deadanykey

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

    Баллы:
    96
    Жаль, что вы не поняли. Речь не про "огромный" код, а про понятный.

    Вы, наверное, и переменные называете - a, b, c и т.д.? Так же короче, верно?
     
  19. Nikolai_Faint

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

    Баллы:
    96
    В данном случае речь идёт об дополнительном ненужном коде. Создавать отдельные переменные/ветвления не имеет смысла если можно коротко и ясно уместить в inline, а сверху написать небольшой коммент с разъяснениями и ссылками на JavaDocs. Хз что за глупые вопросы.

    p.s В первом варианте виртуалка будет ставить локальное значение в стек, сверять его и прыгать по нужному ветвлению, и только после этого передавать результат. В моём же варианте она будет передавать результат проверки сразу в регистр.
    Если компиляторы научились убирать ненужные ветвления и анализировать код до такого состояния чтобы понимать когда нужно убирать, а когда нет - тогда извиняюсь, ненужный срач вышел.
     
    Последнее редактирование: 21 янв 2021
  20. adodvstudios

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

    Баллы:
    76
    Имя в Minecraft:
    Jenka20091

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