Ir para conteúdo
  • 0

Como colocar quantia de jogadores de um servidor BungeeCord!


yLR111

Pergunta

4 respostass a esta questão

Posts Recomendados

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import br.com.kickpost.bungeecount.bungee.BungeeReceptor;
import br.com.kickpost.bungeecount.bungee.BungeeSender;

public class BungeeCount extends JavaPlugin {

	public void onEnable() {
		Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
		Bukkit.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeReceptor());

		loadCounter();
	}

	private void loadCounter() {
		new BungeeSender().runTaskTimerAsynchronously(this, 20L, 30 * 20L);
	}

	public static BungeeCount getPlugin() {
		return BungeeCount.getPlugin(BungeeCount.class);
	}
}

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

import com.google.common.collect.Iterables;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;

import br.com.kickpost.bungeecount.BungeeCount;

public class BungeeSender extends BukkitRunnable {

	private final String SERVER_NAME = new String("SERVIDOR");

	@Override
	public void run() {

		if (Bukkit.getOnlinePlayers().isEmpty())
			return;

		ByteArrayDataOutput out = ByteStreams.newDataOutput();
		out.writeUTF("PlayerCount");
		out.writeUTF(SERVER_NAME);
		Player player = Iterables.getFirst(Bukkit.getOnlinePlayers(), null);

		player.sendPluginMessage(BungeeCount.getPlugin(), "BungeeCord", out.toByteArray());
	}

}

import org.bukkit.entity.Player;
import org.bukkit.plugin.messaging.PluginMessageListener;

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

public class BungeeReceptor implements PluginMessageListener {

	public static int PLAYER_COUNT = 0;

	@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")) {
			in.readUTF();
			PLAYER_COUNT = in.readInt();
		}
	}
}

Para pegar o número de jogadores, basta acessar a classe BungeeReceptor e utilizar a variável PLAYER_COUNT.

 

int numeroJogadores = BungeeReceptor.PLAYER_COUNT;

 

PS: Precisa alterar a constante SERVER_NAME na BungeeSender!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...