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

Помогите Bukkit: и потоки

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

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

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

    Баллы:
    46
    О гугле кукарекать ненадо не нашел . Мне нужно кое что уточнить.

    1): {Текст} И так допустим возмем стандартные потоки у java. Ну не знаю создадим такой поток. А потому туда цикл while. А ну еще перенесем туды обьект player. Каждый раз сервер будет проверять блок на котором стойт игрок. Если он будет на определеным то vault будет давать ему определеную сумму. Ну а если другой игрок зайдет на этот блок то в таком случае мы просто добавим новую переменую boolean. И как только игрок зайдет на такой блок оператор if увидет о том что эта переменая находиться на false и как следствие цикл новый поднят не будет.Ну а сам цикл while будет проверять корды приведушиго игрока каждые 5-10s. И как только он с корда сойдет переменя улетит в true. Ну а если новый плеер зайдет на эту корду то переменая ясен пень снова улетит на false. Ну а задержку сделаю ясен пень я так: Thread.Sleep(5000);
    1):{Вопрос} Сильно ли такое будет насиловать сервер?. И стойт ли вместо этого юзать ту систему потоков которая у баккита?. Можно ли юзать стандартные java потоки для создания асинхроных операции?.

    2): {Вопрос} Сильно потоки у bukkit отличаются от стандатных java?. Мое придположение библеотеки bukkit более гибкие нежели стандартные java.
     
  2. NyanGuyMF

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

    Баллы:
    76
    Bukkit не поддерживает многопоточность, там только асинхронность по типу JavaScript/Node.js (не углублялся в реализацию упомянутых, но суть такая же). Выбирать между ними стоит следующим образом:

    Используйте асинхронные bukkit task'и/Java потоки (java.lang.Thread) только если Вы не будете использовать Bukkit API «Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.» BukkitDocs. (например, при реализации соединений клиент-сервер с Socket'ами)

    Если Вам нужно просто обработать какие-то данные отдельно/через какой-то промежуток времени/запускать обработку с повтором — стоит использовать систему BukkitTask'ов
     
  3. alexandrage

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

    Баллы:
    173
    Там обычная обертка над Runable. И 2 вида тасков, синс и асинс.
     
  4. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
  5. TheSkiffSailor

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

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    :lol::lol::lol: Губкарь пришел
     

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