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

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

Discussion in 'Разработка плагинов для новичков' started by LuckyZeeRo, Jul 18, 2016.

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

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

    Trophy Points:
    76
    Skype:
    luckyzeero
    Имя в Minecraft:
    LuckyZeeRo_
    Здравствуйте. Возникла одна проблемка, когда я пытался сделать плагин, который бы используя BungeeCord, мог бы передавать нужную команду, которую я пишу и выполнять на других серверах.
    В общем пока кратко код отправки и отловки сообщений:
    Отправка:
    Code:
    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Что-то не так о_О");
    
    Вот как я это ловлю:
    Code:
    @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 оно читало. Что же я не так делаю? Вот как идет начало класса:
    Code:
    public class GlobalCommand extends JavaPlugin implements PluginMessageListener
     
  2. Хостинг MineCraft
    <
  3. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
  4. alexandrage

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

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

Share This Page