Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Статус
Закрыто для дальнейших ответов.

baksovic111

Активный участник
Пользователь
Баллы
88
Имя в 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: " + Переменная с онлайном игроков);
}
 
Чтобы весь онлайн был в ТАБе?
 
Чтобы весь онлайн был в ТАБе?
Омг. Бля.
нет причем тут вообще это.
ты думаешь я такой тупой что не могу редачить данный параметр?
tab_list: GLOBAL_PING

Мне нужно получить онлайн.length со всех серверов и дальше уже работать с ним
 
Да ну мля\!. Зачем мне скидывать то что я уже видел и изучал?
не доходит до меня та инструкция. Не зря ведь суда написал.
Уже несколько часов пытаюсь сделать эту херню.
Если знаешь может просто допишешь код?
Я уверен что там буквально пару строк!
 
Да ну мля\!. Зачем мне скидывать то что я уже видел и изучал?
не доходит до меня та инструкция. Не зря ведь суда написал.
Уже несколько часов пытаюсь сделать эту херню.
Если знаешь может просто допишешь код?
Я уверен что там буквально пару строк!
У вас с чтением или зрением проблемы?

На странице дана разжеванная документация с готовым кодом, чтобы получать сообщения от 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(); // вот и переменная
    }
  }
 
У меня просто маленько припекает -_-
И я жестко туплю и просто не до понимаю смысла кода
Можете еще подсказать кое что
public void onPluginMessageReceived(String channel, Player player, byte[] message){...}
Что нужно передавать в сообщении? Что за канал(channel) ?

Напишите пожалуйста простейший пример как работать с этим методом.
Я не как не могу понять инструкцию с spigotMC
Буду очень признателен...
 
У меня просто маленько припекает -_-
И я жестко туплю и просто не до понимаю смысла кода
Можете еще подсказать кое что
public void onPluginMessageReceived(String channel, Player player, byte[] message){...}
Что нужно передавать в сообщении? Что за канал(channel) ?

Напишите пожалуйста простейший пример как работать с этим методом.
Я не как не могу понять инструкцию с spigotMC
Буду очень признателен...
Вам не нужно вызывать этот метод. Этот метод вызывает сервер, когда Bungee пришлёт пакет, ваша задача - считать данные, а точнее просто вставить написанный за вас код в код плагина.
 
Вам не нужно вызывать этот метод. Этот метод вызывает сервер, когда Bungee пришлёт пакет, ваша задача - считать данные, а точнее просто вставить написанный за вас код в код плагина.
Вы написали что сервер вызывает этом метод сам?!
В каком случае/когда он его вызывает?
 
Уважаемый, тон измените, это вам не ру.минекрафт.обос** .
Эм.. Откуда вы знаете каким я тоном выразил данное сообщение?
Я лишь в 1 сообщение не много психанул. Дальше я начал обыкновенным образом общение, просто с вопросами
 
Я тебя понемаю что тебе щас тяжело, и поддержую т.к кто соберает сервера то это нервы :)
Я не собираю сервера. Я лишь активно увлекаюсь кодингом плагинов для серверов.
 
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);


}
}

В каком случае вызывается или как вызвать данный метод?
Ясно, а где ты выучил Джаву ?
В интернете, методом тыка и шастая по другим плагинам
И вот по этому до меня ни хера не доходит -_-
 
Не трогайте метод onPluginMessageReceived, оставьте его в том виде, в котором я его прислал, за исключением строки получения онлайна.

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

Код:
ByteArrayDataOutput out = ByteStreams.newDataOutput();
  out.writeUTF("PlayerCount");
  out.writeUTF("ALL");

  Player player = Bukkit.getOnlinePlayers()[0]; // я делаю так

  player.sendPluginMessage(this, "BungeeCord", out.toByteArray());

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

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

Код:
ByteArrayDataOutput out = ByteStreams.newDataOutput();
  out.writeUTF("PlayerCount");
  out.writeUTF("ALL");

  Player player = Bukkit.getOnlinePlayers()[0]; // я делаю так

  player.sendPluginMessage(this, "BungeeCord", out.toByteArray());


На удивление, целый язык я изучил точно таким же способом, но почему то мне в данном случае всё было предельно понятно.
Возможно на моменты когда вы узучали java и bukkitAPI у вас было больше опыта.
Либо я просто дурачек(
Сегодня мой первый день работы с Bungee и пока что все очень сложно для меня
У меня получилась вот такая вот каша..
http://pastebin.com/Xre38RXT
Но выводиться только онлайн с 1 сервера.
Чувствую себя полным дураком(
 
Возможно на моменты когда вы узучали java и bukkitAPI у вас было больше опыта.
Либо я просто дурачек(
Сегодня мой первый день работы с Bungee и пока что все очень сложно для меня
У меня получилась вот такая вот каша..
http://pastebin.com/Xre38RXT
Но выводиться только онлайн с 1 сервера.
Чувствую себя полным дураком(
Теперь у меня гореть начинает. :mad::mad::mad:
Зачем делать такую ахинею, когда всё делается предельно просто:cry:
 
Решил проблему изменив массив игроков на строчку
int playercount = in.readInt();
Ахах)
Прошу прощения.
И огромнейшее спасибо за помощь)
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх