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

Помогите разработка плагина с Netty, создание АПИ, помогите

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Здравствуйте, коротко о проблеме пишу плагины(Сервер+ Клиен) на экономику. Нужно с помощью метода как-то получить информацию в сервера. То есть

    /-------> Нужны монеты Vasya ->--\
    Клиент [Сервер]
    | | |
    API | Обработка
    | \-----------<----Vasya 200<--/
    200
    |
    3 плагин


    Q) Т.К. netty работает асинхронно то у неё нет метода что-то получить, есть эвенты, и когда клиент прослушивает что отправил сервер данные заносит в КАРТУ.

    пример метода.

    PHP:
      public static int getMoney(String name)
    {
      [
    Отправка запроса к серверу]

      while(   [
    Если в мате нет Name]  ){
      
    //ждём пока не появится.
    }
    return 
    МАПА.получить(Name);
    }
    Суть вопроса: стоит ли ждать пока сервер ответит циклом While или есть другой способ?

    P.S. делал с Netty[/PHP]
     
  2. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    CompletableFuture, ListenableFuture, ок да?
     
  3. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Впервые слышу, ну ок, Google в помощь
    //Я бы не создавал эту тему если бы знал что гуглить :)
     
  4. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Я посмотрел, но не как не понял как это можно реализовать.
     
  5. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Или что-то типо этого?
    PHP:
    public class Main {

            static 
    CompletableFuture<StringwhatsYourNameFuture;


            public static 
    void main(String[] args) {
                
    whatsYourNameFuture CompletableFuture.supplyAsync(() -> {
                    return 
    "Rajeev";
                });

                
    System.out.println(test());

            }
            public static 
    String test() {

                
    CompletableFuture<StringgreetingFuture whatsYourNameFuture.thenApply(name -> {
                    return 
    name;
                });

                try {
                    return 
    greetingFuture.get();
                } catch (
    InterruptedException e) {
                    return 
    null;

                } catch (
    ExecutionException e) {
                    return 
    null;

                }
            }
    }
     
  6. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    facepalm... Иди читай про future и как с ним работать
     
  7. xDark

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

    Баллы:
    96
    а как нетти связан с future, скажи плез
    тебе нужно будет разработать протокол запрос -> ответ
     
  8. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну так сделай свою имплементацию Future, там у нетти вон есть, при ответе сервера вызывай у Future кол беки
     
  9. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    А можно пример?
     
  10. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Какой тебе пример? Я тебе и так все сказал как делать
     
  11. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Ну на сайте каком-то пример в виде кода.
     
  12. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Тебе просто нужны кол беки от нетти
     
  13. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    PHP:

    1 ChannelFuture f 
    ch.write(time);
    2 f.addListener(new ChannelFutureListener() {
    public void operationComplete(ChannelFuture future) { // это callback от нетти.
    4 Channel ch future.getChannel();
    5 ch.close();
    }
    }); 
    Вот что нашёл.
     
  14. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    И причем тут ChannelFuture?
     
  15. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    А что надо?
     
  16. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    UP!
    Проблема не решена, помогите!
     
  17. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Я тебе сказал как делать
     
  18. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Но я нечего могу насчёт этого "Тебе просто нужны кол беки от нетти"
     
  19. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну так заимплементь ListenableFuture по дефолту, при ответе нетти помечай его как выполненый, все
     
  20. Автор темы
    Mukiroku

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

    Баллы:
    76
    Имя в Minecraft:
    Kukuroku
    Это то?
     

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