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

[Решено] Как можно определить нахождение двух игроков в одном блоке?

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

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

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

    Баллы:
    66
    У меня есть некий игрок, который бежит. Нужно "поймать" всех игроков, сквозь которых он пробежал и нанести им урон. Думал запустить раннейбл, который каждый тик будет отслеживать местоположение всех игроков и сравнивать с данным. Но, думается мне, что это плохая идея для производительности
    Есть идеи какие-нибудь у кого-нибудь?
     
  2. Mr Hosting
  3. MurlikMurlik

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

    Баллы:
    76
    Идея нормальная но только если шедулер будет работать в другом потоке.
    В другом потоке можно спокойно получать локацию игрока, но изменять что либо нельзя, поэтому если надо там же нанести урон, создай задачу которая выполнится в основном потоке для нанесения урона.
     
  4. Автор темы
    IlyaHaker

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

    Баллы:
    66
    спасибо, не подскажешь статейку по этому поводу? что за задача и как ее выполнить в основном потоке, запустив в асинхроне?
     
  5. MurlikMurlik

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

    Баллы:
    76
    Да просто создай задачу с помощью лямбды
    Bukkit.getScheduler().runTask(plugin, () -> {
    //код урона
    });
    в том случае, когда нужно нанести урон в другом потоке.
    Задача выполнится на следующий тик.

    Да тут статейки и не нужны, просто ищи доки баккита, там все есть.
     
  6. Автор темы
    IlyaHaker

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

    Баллы:
    66
    спасибо!
     
Статус темы:
Закрыта.

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