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

[Решено] Переход с сервера на сервер на BungeeCord(Bukkit плагин)

Так правильно?
Java:
public class Main extends JavaPlugin implements PluginMessageListener {
    @Override
      public void onEnable() {
        this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
        this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this);
      }
     @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")) {
           String server = in.readUTF();
           int playercount = in.readInt();
           player.sendMessage(server);
           player.sendMessage(Integer.toString(playercount));
        }
     }
      public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
          if (cmd.getName().equalsIgnoreCase("survival")) {
              ByteArrayDataOutput out = ByteStreams.newDataOutput();
              out.writeUTF("PlayerCount");
              out.writeUTF("survival");
              ((Player) sender).sendPluginMessage(this, "BungeeCord", out.toByteArray());
          }
        return true;
      }

}
Теперь да.
 
Поднимаю старую тему, что-то не могу врубиться, как правильно с этим работать, пытаюсь сделать так, чтобы при вводе команды "survival" игроку отправляло сообщение с количеством онлайна на нем
Java:
package ru.stuvanya.bungeescoreboard;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.messaging.PluginMessageListener;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;

public class Main extends JavaPlugin implements PluginMessageListener {
    @Override
      public void onEnable() {
        this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
        this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this);
      }
      @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("SomeSubChannel")) {
          // Use the code sample in the 'Response' sections below to read
          // the data.
        }
      }

      public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
          if (cmd.getName().equalsIgnoreCase("survival")) {
              ByteArrayDataOutput out = ByteStreams.newDataOutput();
              out.writeUTF("PlayerCount");
              out.writeUTF("survival");
              String server = in.readUTF(); // Name of server, as given in the arguments
              int playercount = in.readInt();;
              sender.sendMessage(ChatColor.GREEN + playercount);
          }
        return true;
      }

}

В названии пакета твой ник, а в коде программы комментарии на английском языке.
Как там? А, да - "совпадение, не думаю".
Что касается изначальной темы поста - это дело реализуется через специальный канал сообщений, а именно Plugin Messaging Channel, ну там долго разбираться, а сам "переброс" осуществляется после вызова метода sendPluginMessage с соответствующими аргументами.
 
А вы стоп прописували?

Мне почему-то сразу пришло в голову много неприятных мыслей, как только я прочел ваше предложение, в частности сей весьма странный глагол "прописували"
 

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

Назад
Верх