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

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]
 
CompletableFuture, ListenableFuture, ок да?
Или что-то типо этого?
PHP:
public class Main {

        static CompletableFuture<String> whatsYourNameFuture;


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

            System.out.println(test());

        }
        public static String test() {

            CompletableFuture<String> greetingFuture = whatsYourNameFuture.thenApply(name -> {
                return name;
            });

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

            } catch (ExecutionException e) {
                return null;

            }
        }
}
 
Или что-то типо этого?
PHP:
public class Main {

        static CompletableFuture<String> whatsYourNameFuture;


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

            System.out.println(test());

        }
        public static String test() {

            CompletableFuture<String> greetingFuture = whatsYourNameFuture.thenApply(name -> {
                return name;
            });

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

            } catch (ExecutionException e) {
                return null;

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

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


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

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

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

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

P.S. делал с Netty[/PHP]
а как нетти связан с future, скажи плез
тебе нужно будет разработать протокол запрос -> ответ
 
а как нетти связан с future, скажи плез
тебе нужно будет разработать протокол запрос -> ответ
Ну так сделай свою имплементацию Future, там у нетти вон есть, при ответе сервера вызывай у Future кол беки
 
Тебе просто нужны кол беки от нетти
PHP:
1 ChannelFuture f = ch.write(time);
2 f.addListener(new ChannelFutureListener() {
3 public void operationComplete(ChannelFuture future) { // это callback от нетти.
4 Channel ch = future.getChannel();
5 ch.close();
6 }
7 });
Вот что нашёл.
 
PHP:
1 ChannelFuture f = ch.write(time);
2 f.addListener(new ChannelFutureListener() {
3 public void operationComplete(ChannelFuture future) { // это callback от нетти.
4 Channel ch = future.getChannel();
5 ch.close();
6 }
7 });
Вот что нашёл.
И причем тут ChannelFuture?
 
Но я нечего могу насчёт этого "Тебе просто нужны кол беки от нетти"
Ну так заимплементь ListenableFuture по дефолту, при ответе нетти помечай его как выполненый, все
 
Назад
Верх