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

Помогите BungeeCord онлайн со всех серверов

Тема в разделе "Разработка плагинов для новичков", создана пользователем baksovic111, 16 июн 2015.

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

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Товарищи, помогите пожалуйста получить онлайн со всех серверов bungee.
    Уже голову себе поломал.. Не как не выходит
    Помогите дописать код..


    public void onEnable() {
    Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");


    ByteArrayOutputStream b = new ByteArrayOutputStream();
    DataOutputStream out = new DataOutputStream(b);

    try {
    out.writeUTF("PlayerCount");
    out.writeUTF("ALL");
    } catch (IOException e) {
    e.printStackTrace();
    }

    Получение онлайна..

    System.out.print("Online: " + Переменная с онлайном игроков);
    }
     
  2. Хостинг MineCraft
    <
  3. ScoutRUS

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

    Баллы:
    78
    Имя в Minecraft:
    ScoutRUS
    Чтобы весь онлайн был в ТАБе?
     
  4. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Омг. Бля.
    нет причем тут вообще это.
    ты думаешь я такой тупой что не могу редачить данный параметр?
    tab_list: GLOBAL_PING

    Мне нужно получить онлайн.length со всех серверов и дальше уже работать с ним
     
  5. ScoutRUS

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

    Баллы:
    78
    Имя в Minecraft:
    ScoutRUS
    Ясн...
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
  7. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Да ну мля\!. Зачем мне скидывать то что я уже видел и изучал?
    не доходит до меня та инструкция. Не зря ведь суда написал.
    Уже несколько часов пытаюсь сделать эту херню.
    Если знаешь может просто допишешь код?
    Я уверен что там буквально пару строк!
     
  8. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    У вас с чтением или зрением проблемы?

    На странице дана разжеванная документация с готовым кодом, чтобы получать сообщения от Bungee нужен соответствующий метод в том же главном классе

    Код:
      @Override
      public void onPluginMessageReceived(String channel, Player player, byte[] message) {
        if (!channel.equals("BungeeCord")) {
          return;
        }
        ByteArrayDataInput in = ByteStreams.newDataInput(message);
        String subchannel = in.readUTF();
        String server = in.readUTF();
        if(subchannel.equals("PlayerCount") && server.equals("ALL"))
               int players = in.readInt(); // вот и переменная
        }
      }
     
  9. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    У меня просто маленько припекает -_-
    И я жестко туплю и просто не до понимаю смысла кода
    Можете еще подсказать кое что
    public void onPluginMessageReceived(String channel, Player player, byte[] message){...}
    Что нужно передавать в сообщении? Что за канал(channel) ?

    Напишите пожалуйста простейший пример как работать с этим методом.
    Я не как не могу понять инструкцию с spigotMC
    Буду очень признателен...
     
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Вам не нужно вызывать этот метод. Этот метод вызывает сервер, когда Bungee пришлёт пакет, ваша задача - считать данные, а точнее просто вставить написанный за вас код в код плагина.
     
  11. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Вы написали что сервер вызывает этом метод сам?!
    В каком случае/когда он его вызывает?
     
  12. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Эм.. Откуда вы знаете каким я тоном выразил данное сообщение?
    Я лишь в 1 сообщение не много психанул. Дальше я начал обыкновенным образом общение, просто с вопросами
     
  13. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Я не собираю сервера. Я лишь активно увлекаюсь кодингом плагинов для серверов.
     
  14. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Den_Abr, подскажите пожалуйста
    Написал я следующий код

    @Override
    public void onPluginMessageReceived(String channel, Player player, byte[] message) {
    if (!channel.equals("BungeeCord"))
    return;

    ByteArrayDataInput in = ByteStreams.newDataInput(message);
    String subchannel = in.readUTF();

    if (subchannel.equals("PlayerCount")) {
    ByteArrayOutputStream b = new ByteArrayOutputStream();
    DataOutputStream out = new DataOutputStream(b);

    try {
    out.writeUTF("PlayerCount");
    out.writeUTF("lobby");
    } catch (IOException e) {
    e.printStackTrace();
    }

    int playercount = in.readInt();

    System.out.print("Online: " + playercount);


    }
    }

    В каком случае вызывается или как вызвать данный метод?[DOUBLEPOST=1434469995,1434469915][/DOUBLEPOST]
    В интернете, методом тыка и шастая по другим плагинам[DOUBLEPOST=1434470525][/DOUBLEPOST]И вот по этому до меня ни хера не доходит -_-
     
  15. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Не трогайте метод onPluginMessageReceived, оставьте его в том виде, в котором я его прислал, за исключением строки получения онлайна.

    Чтобы Bungee прислал пакет с данными, нужно его попросить, отправив любому игроку PluginMessage, делая это шедулером например.
    Пример чего тоже дан в документации.

    Код:
    ByteArrayDataOutput out = ByteStreams.newDataOutput();
      out.writeUTF("PlayerCount");
      out.writeUTF("ALL");
    
      Player player = Bukkit.getOnlinePlayers()[0]; // я делаю так
    
      player.sendPluginMessage(this, "BungeeCord", out.toByteArray());
    [DOUBLEPOST=1434471002,1434470758][/DOUBLEPOST]
    На удивление, целый язык я изучил точно таким же способом, но почему то мне в данном случае всё было предельно понятно.
     
  16. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Возможно на моменты когда вы узучали java и bukkitAPI у вас было больше опыта.
    Либо я просто дурачек(
    Сегодня мой первый день работы с Bungee и пока что все очень сложно для меня[DOUBLEPOST=1434471670][/DOUBLEPOST]У меня получилась вот такая вот каша..
    http://pastebin.com/Xre38RXT
    Но выводиться только онлайн с 1 сервера.
    Чувствую себя полным дураком(
     
  17. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Теперь у меня гореть начинает. :mad::mad::mad:
    Зачем делать такую ахинею, когда всё делается предельно просто:cry:
     
  18. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Решил проблему изменив массив игроков на строчку
    int playercount = in.readInt();[DOUBLEPOST=1434472218,1434472168][/DOUBLEPOST]Ахах)
    Прошу прощения.
    И огромнейшее спасибо за помощь)
     
Статус темы:
Закрыта.

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