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

Помогите общение между серверами bungee

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    Stamorey
    Есть основной сервер и сервер с миниигрой.
    С одного на другой игроки должны телепортироваться, если это возможно.
    Проблема как раз в этой возможности.
    Если игра началась или уже набралось нужное количество игроков - телепортация должна отмениться.

    Нашел два способа "Общения" между серверами, но оба смущают.
    1. Любая бд, конфиг или файл, в котором миниигра сама записывает свой статус каждый тик.
    Проблема- может оказаться так, что статус уже изменился, а в бд это еще не отразилось, или же несколько запросов на телепортацию за несколько милисекунд.
    2. Общение через банжу, сервер отправляет запрос в банжу, тот пересылает его миниигре, она решает что делать с игроком, отправляет ответ обратно в банжу, банжа серверу.
    Проблема - а хз, думаю что 4 сообщения в поток для одной телепортации жирновато)

    Кто сталктвался, посоветуйте что лучше использовать, спасибо)
     
  2. Хостинг MineCraft
    <
  3. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Большенство мини игор,устанавливают свой статус в motd сервера.
     
  4. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Просто кикаешь игрока в логин евенте.
     
  5. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    по моему ни один сервер с миниграми такого не делает. там никаких киков, просто сообщение в чат.

    Может стоит юзать PreJoinEvent (или как он там)
     
  6. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну если типо отменить евент(дизаллов поставить, или что там) на логине, то игрока не кикнет с прокси и он останется на томже сервере что и был .
    А если в джоин евенте то его тупо с прокси кикнет.
     
  7. Автор темы
    Stamorey

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

    Баллы:
    66
    Имя в Minecraft:
    Stamorey
    Получилось (вроде ), даже без экрана перехода между серверами, но видимо банжа отсылает в чат вот эту дич:
    Could not connect to default or fallback server. please try again later:
    java.net.ConnectExeption
    [DOUBLEPOST=1484923082,1484922919][/DOUBLEPOST]Перепутал
     
  8. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    она будет отсылать в чат типо
    Типо вы кикнуты: причина кика
     
  9. Автор темы
    Stamorey

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

    Баллы:
    66
    Имя в Minecraft:
    Stamorey
    Код:
    @EventHandler
        public void Kick(PlayerLoginEvent e) {
            e.disallow(PlayerLoginEvent.Result.?????, "тупой школяр");
     
           
        }
    Все работает очень хорошо, но банжа присылает вот такое в случае неудачного коннекта:
    Kicked whilst connecting to hub: Причина указанная в сервере.
    Все вроде бы норм, как раз нужно будет выводить в чат что-то наподобии этого, но без
    "Kicked whilst connecting to hub:"
    это как я понял дописывает банжа,
    может разобрать какой-нибудь класс в банже и справить на пустую строку)[DOUBLEPOST=1484924900,1484924849][/DOUBLEPOST]
    вот, именно так, но все равно некрасива:rolleyes:
     
  10. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    помоему в языковом файле можно это изменить
     
  11. Автор темы
    Stamorey

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

    Баллы:
    66
    Имя в Minecraft:
    Stamorey
    эт где ?[DOUBLEPOST=1484925197,1484925056][/DOUBLEPOST]ой нашел
    connect_kick=\u00a7cKicked whilst connecting to {0}: {1}
    в файле messages в банже...[DOUBLEPOST=1484925240][/DOUBLEPOST]Вот так думаю будет в самый раз {1} ))
     

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