Отправка собщений в канал обмена сообщениями плагинов (или как то так)

  • Автор темы Автор темы iD3LSY
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

iD3LSY

Активный участник
Пользователь
Баллы
76
~1 месяц назад лазил по форумам, и узнал об этом самом канале "обмена сообщениями плагинов". За перевод я не ручаюсь, но вроде называется он именно так (Plugin Messaging Channel).

Узнал если быть точнее не о канале, а о его единственном для меня на тот момент нужном применение - отправка игроков между серверами связанными банжой. И теперь мне захотелось понять, что он из себя представляет, если использовать его на все 100%.

Начал гуглить. Нашёл соответствующую тему на спиготе. Почитал, вроде все понятно, но кроме одного... Так как в байтах я вообще не разбираюсь, я по-факту не понимал, что и как происходит. В связи с чем возникла проблема. Я вообще никак не понимаю, как получить информацию? Отправлять байты например с сообщением - одно дело. Другое - принимать байты с данными например о игроках.

UPD: Так, я начал читать более внимательнее. Заметил, как детектить, но все же.

Java:
ByteArrayDataOutput out = ByteStreams.newDataOutput();

out.writeUTF("GetServers");

p.sendPluginMessage(Main.getPlugin(Main.class), "BungeeCord", out.toByteArray());


Java:
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("GetServers")) {
        String serverList = in.readUTF();
        System.out.println("IN = " + serverList);
    }
}

Фидбэка - ноль. (PluginMessageListener имплементирован!)
 
Последнее редактирование:
Регистрация есть?
 
Регистрация есть?
Да. В на onEnable регистрирую отправку, получение сообщений.

Java:
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new PluginMessageListener());
 
Последнее редактирование:
Да. В на onEnable регистрирую отправку, получение сообщений.

Java:
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new PluginMessageListener());
По сути, должно работать, если игрок подключен к серверу через BungeeCord
 
Все работает, проблему решил >:)

Тему закрываю.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх