Ir para conteúdo
  • 0

[Resolvido] Bloquear prelogin do player


Kami

Pergunta

Preciso que o jogador que estiver com o uuid dentro do arquivo "ConfigBans" seja kikado ao logar, já tenho o código aqui, só falta dar certo.

 

Segue a parte que não funciona. Não registrei esta classe no main, só coloquei extends Principal, se precisar registrar isso, posta o trecho do código que registra o arquivo secundário na Main.

package me.guigarciazinho.Punir;

import java.util.UUID;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerPreLoginEvent;
import org.bukkit.event.player.PlayerPreLoginEvent.Result;

public class login extends Principal implements Listener {
	public boolean taBan(UUID uuid){
		if(configBans.contains("Ban." + uuid)){
			return true;
		}
		return false;
	}

	
	
	
	@EventHandler
	public void taBanido(PlayerPreLoginEvent e){
		if(taBan(e.getUniqueId()) == true){
			e.setResult(Result.KICK_BANNED);
			e.setKickMessage("otaku");
			
			
		}
	}

}

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

@EventHandler
public void ban(PlayerJoinEvent e){
Player p = e.getPlayer;
File yourfile = new File(getDescription().getType() + "bans.yml")
String uuid = yourfile.get("banned-uuids");
if (p.getUniqueId().toString().equalsIgnoreCase(uuid)){
p.setBanned(true);
}

Testa isso

 

Edit:

 

if (config,getString(player,GetUniqueId()) != null) {
    // se a uuid for null quer dizer que o jogador nunca foi banido
   player.KickPlayer(config.getString(player.getUUID());
}
Editado por Castiel
Link para o comentário
Compartilhar em outros sites

@EventHandler
public void ban(PlayerJoinEvent e){
Player p = e.getPlayer;
File yourfile = new File(getDescription().getType() + "bans.yml")
String uuid = yourfile.get("banned-uuids");
if (p.getUniqueId().toString().equalsIgnoreCase(uuid)){
p.setBanned(true);
}

Testa isso

 

Edit:

 

if (config,getString(player,GetUniqueId()) != null) {
    // se a uuid for null quer dizer que o jogador nunca foi banido
   player.KickPlayer(config.getString(player.getUUID());
}

não foi...

 

Registra o evento no onEnable e usa o AsyncPlayerPreLoginEvent envez de PlayerPreLoginEvent

tentei, mas dá erro no console

 

IMAGEM DO ERRO: http://imgur.com/mrcW9uP

Editado por Kami
Link para o comentário
Compartilhar em outros sites

Guest » xKįzämę Pęčæ

Pega o uuid dele é adiciona no p.kick '-'

Ou mais fácil; cria uma stringlist com alguns uuids banidos e bloqueia conectar..

Link para o comentário
Compartilhar em outros sites

Parece que foi algum erro no onEnable, pela log que você mandou.

Ja conseguiu arrumar?

Eu tinha conseguido arrumar antes desta resposta, mas era realmente isso, faltava o seguinte trecho:

getServer().getPluginManager().registerEvents(this, this);

Pode fechar <3

Link para o comentário
Compartilhar em outros sites

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