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

Помогите Общение между своими плагинами через Bungee

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

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

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

    Баллы:
    76
    Skype:
    luckyzeero
    Имя в Minecraft:
    LuckyZeeRo_
    Здравствуйте. Возникла одна проблемка, когда я пытался сделать плагин, который бы используя BungeeCord, мог бы передавать нужную команду, которую я пишу и выполнять на других серверах.
    В общем пока кратко код отправки и отловки сообщений:
    Отправка:
    Код:
    ByteArrayDataOutput out=ByteStreams.newDataOutput();
    out.writeUTF("GCExecute");
    out.writeUTF(builder.toString()); // Здесь отправка сообщения. На данный момент даже не столь важно, какое.
    if (Bukkit.getServer().getOnlinePlayers().size() != 0) {
       p = Iterables.getFirst(Bukkit.getServer().getOnlinePlayers(), null);
       p.sendPluginMessage(this, "BungeeCord", out.toByteArray());
       Bukkit.getServer().broadcastMessage("§eОтправляем... Player = " + p); 
       return true;
    }
    Bukkit.getServer().broadcastMessage("§cЧто-то не так о_О");
    
    Вот как я это ловлю:
    Код:
    @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("GCExecute")) {
          String command = in.readUTF();
          Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command);
          Bukkit.getServer().broadcastMessage("§aКоманда выполнена.");
       }
    }
    А теперь проблема:
    Оно пишет "Отправляем...", но то, что оно приняло сообщение на другом сервере (а там тоже этот же плагин стоит), не пишет. Но уверен, что оно читает мессенджи, ибо PlayerCount оно читало. Что же я не так делаю? Вот как идет начало класса:
    Код:
    public class GlobalCommand extends JavaPlugin implements PluginMessageListener
     
  2. Хостинг MineCraft
    <
  3. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    На банже плагин должен чанел ловить и отсылать. Так что пиши на банжу еще плагин.
     

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