Ir para conteúdo
  • 0

[Resolvido] Como pegar os 3 primeiros player que entra no servidor


DeliriousD

Pergunta

Posts Recomendados

Vdd esqueci desse bugzin tbm é o segundo código que bloqueia 1x  ?

Sim

 

Pronto, esse aki ta perfeito, ja com negocio do nome minusculo.


	private static ArrayList<String> players = new ArrayList<>(3);
	
	@EventHandler
	public void onJoin(PlayerJoinEvent e)
	{
		if (players.size() < 3 && !players.contains(e.getPlayer().getName().toLowerCase()))
		{
			if (!e.getPlayer().hasPermission("by.pass"))
			{
				e.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
				e.getPlayer().sendMessage("§bParabéns, você foi um dos 3 primeiros a lugar no servidor.");
				players.add(e.getPlayer().getName().toLowerCase());
			}
		}
	}
Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

public boolean join = false;
public ArrayList<Player>  player = new ArrayList<Player>();


public void onEnable () {
join == true;
getLogger().info("HABILITADO");
}

@EventHandler
public void onJoin (PlayerJoinEvent e) {
Player p = e.getPlayer();
if(join == true) {
if(players.size() < 3) {
players.add(p);
return;
 } 
if(players.size() == 3) {
join == false;
p.sendMessage("Players Que Entraram: " + players.toString());
return;
  }
 }
}

Desculpe a formatação, fiz pelo celular, caso dê algum erro me avise ;)

Link para o comentário
Compartilhar em outros sites

public boolean join = false;
public ArrayList<Player>  player = new ArrayList<Player>();


public void onEnable () {
join == true;
getLogger().info("HABILITADO");
}

@EventHandler
public void onJoin (PlayerJoinEvent e) {
Player p = e.getPlayer();
if(join == true) {
if(players.size() < 3) {
players.add(p);
return;
 } 
if(players.size() == 3) {
join == false;
p.sendMessage("Players Que Entraram: " + players.toString());
return;
  }
 }
}
Desculpe a formatação, fiz pelo celular, caso dê algum erro me avise ;)

 

código ta errado, e todos sabem que não se deve armazenar a classe Player em uma lista -.-'

 

Código correto:

public int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (i==3) return;
i++;
// O player está entre os 3 primeiros.
}
Editado por BrineDev
Link para o comentário
Compartilhar em outros sites

Maatrix, em 21 Abr 2015 - 7:15 PM, disse:

public boolean join = false;
public ArrayList<Player>  player = new ArrayList<Player>();


public void onEnable () {
join == true;
getLogger().info("HABILITADO");
}

@EventHandler
public void onJoin (PlayerJoinEvent e) {
Player p = e.getPlayer();
if(join == true) {
if(players.size() < 3) {
players.add(p);
return;
 } 
if(players.size() == 3) {
join == false;
p.sendMessage("Players Que Entraram: " + players.toString());
return;
  }
 }
}
Desculpe a formatação, fiz pelo celular, caso dê algum erro me avise ;)

Ok vo testa

 

BrineDev, em 21 Abr 2015 - 7:23 PM, disse:

 

 

código ta errado, e todos sabem que não se deve armazenar a classe Player em uma lista -.-'

 

Código correto:

public int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (i==3) return;
i++;
// O player está entre os 3 primeiros.
}

Nossa que codigo pequeno gostei, e queria como bloquear alguns player para quando entrar nao acontecer esse evento para os staff.

tipo to fazendo um plugin que para os 3 primeiros que entrar ganhar um item, só que quero bloquear para os staff quando entrar não acontecer esse evento com eles, tendeu ? so ruim em explicar kkkk

 

Ah só uma duvida esse @EventHandler eu ja tenho ele no plugin eu faço outro ou só junto no mesmo codigo ?

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

Ok vo testa

Nossa que codigo pequeno gostei, e queria como bloquear alguns player para quando entrar nao acontecer esse evento para os staff.

tipo to fazendo um plugin que para os 3 primeiros que entrar ganhar um item, só que quero bloquear para os staff quando entrar não acontecer esse evento com eles, tendeu ? so ruim em explicar kkkk

 

Ah só uma duvida esse @EventHandler eu ja tenho ele no plugin eu faço outro ou só junto no mesmo codigo @BrineDev ?

public int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (i==3) return;
if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
    i++;
    // Dar o item!
}
}
Resolvido? Editado por BrineDev
Link para o comentário
Compartilhar em outros sites

 

código ta errado, e todos sabem que não se deve armazenar a classe Player em uma lista -.-'

 

Código correto:

public int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (i==3) return;
i++;
// O player está entre os 3 primeiros.
}

 

Pra que tudo isso?

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    if (Bukkit.getOnlinePlayers().size() /*ou .length*/ < 3)
    {
        //esta entre os 3 primeiros.
    }
}
Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

Pra que tudo isso?

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    if (Bukkit.getOnlinePlayers().size() /*ou .length*/ < 3)
    {
        //esta entre os 3 primeiros.
    }
}

 

Também da certo, porém ele também teria q fazer um boolean pra desativar quand mais de 3 entrarem, e criar um for para saber se os 3 online são admins, etc
Link para o comentário
Compartilhar em outros sites

Também da certo, porém ele também teria q fazer um boolean pra desativar quand mais de 3 entrarem, e criar um for para saber se os 3 online são admins, etc

nada ve cara, parece amador...

 

quando chegar no quarto ele não vai mais entrar naquele bloco if...

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    if (Bukkit.getOnlinePlayers().size() /*ou .length*/ < 3)
    {
        if (e.getPlayer().hasPermission("admni"))
        {
           //é admin
        }
        //esta entre os 3 primeiros.
    }
}
Link para o comentário
Compartilhar em outros sites

nada ve cara, parece amador...

 

quando chegar no quarto ele não vai mais entrar naquele bloco if...

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    if (Bukkit.getOnlinePlayers().size() /*ou .length*/ < 3)
    {
        if (e.getPlayer().hasPermission("admni"))
        {
           //é admin
        }
        //esta entre os 3 primeiros.
    }
}

 

Vamos a uma situação com esse código:

 

Tem 3 usuários online, 2 são membros e outro é admin (até ai não passa nem do 1º if) e mais um entra, esse não vale como um dos 3 primeiros a entrar.

 

Não sou amador, mas eu consigo criar situações para meu plugin e assim detectar erros/falhas. Além do mais, umas 2 linhas a mais ou a menos não faz mal a ninguém :p

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

Vamos a uma situação com esse código:

 

Tem 3 usuários online, 2 são membros e outro é admin (até ai não passa nem do 1º if) e mais um entra, esse não vale como um dos 3 primeiros a entrar.

 

Não sou amador, mas eu consigo criar situações para meu plugin e assim detectar erros/falhas.

Erro? falha? olha o tópico, ele pede para detectar os 3 primeiros, mostra em que parte do TÓPICO ele diz que precisa ser 3 staffs em?

 

Ta parecendo amador sim.

Link para o comentário
Compartilhar em outros sites

Ele falou ao contrário, que precisava ignorar os staffs online, antes de tentar criar treta comigo, leia todas as respostas.

 

 

Vc se acha não é mesmo?

 

O Leo está fazendo da forma mais simplificada, você quer mostrar seu "Java-Style" e não aceita críticas ;)

Link para o comentário
Compartilhar em outros sites

Vc se acha não é mesmo?

 

O Leo está fazendo da forma mais simplificada, você quer mostrar seu "Java-Style" e não aceita críticas ;)

Ele me chamou de novato e nem leu os pedidos do cara, nunca falei que sou fodão, se eu já disse, me mande print.

 

A partir de agora, só vou responder posts do cara q fez o tópico.

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

Ele me chamou de novato e nem leu os pedidos do cara, nunca falei que sou fodão, se eu já disse, me mande print.A partir de agora, só vou responder posts do cara q fez o tópico.
Não li o pedido? como tirou essa conclusão?

 

Cuidem em tentar ajudar o cara e não tretar... Seria mais legal sabe? '-'
Estamos DEALOGANDO '-' Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

public int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (i==3) return;
if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
    i++;
    // Dar o item!
}
}
Resolvido?

 

Pego certinho, tem como bloquear agora para ser usado apenas 1 vez ? fui ver esse bug agora não tinha pensado nisso.

ex: o mesmo player pode entrar as 3 vezes e pegar os itens, como fazer que o player receba 1 vez.

Link para o comentário
Compartilhar em outros sites

Guest zCouDray

Pego certinho, tem como bloquear agora para ser usado apenas 1 vez ? fui ver esse bug agora não tinha pensado nisso.

ex: o mesmo player pode entrar as 3 vezes e pegar os itens, como fazer que o player receba 1 vez.

public int i=0;

ArrayList<String> teste = new ArrayList<String>();

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer():
if (i==3) return;
if(teste.contains(p.getName(){
return
;
}
if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
    i++;
    // Dar o item!
teste.add(p.getName();
}
}
Link para o comentário
Compartilhar em outros sites

public int i=0;

ArrayList<String> teste = new ArrayList<String>();

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer():
if (i==3) return;
if(teste.contains(p.getName(){
return
;
}
if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
    i++;
    // Dar o item!
teste.add(p.getName();
}
}

Código certo, só arrumei uns errinhos, mas de resto ta certo!

 

public int i=0;

ArrayList<String> lista = new ArrayList<String>();

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer():
if (i==3) return;
if(lista.contains(p.getName()) return;
if (!p.hasPermission("suapermissao.aqui")) {
    i++;
    teste.add(p.getName();
    // Dar o item!
}
}
Link para o comentário
Compartilhar em outros sites

public int i=0;

ArrayList<String> teste = new ArrayList<String>();

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer():
if (i==3) return;
if(teste.contains(p.getName(){
return
;
}
if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
    i++;
    // Dar o item!
teste.add(p.getName();
}
}

Esta dando erro.

	@SuppressWarnings("deprecation")
	@EventHandler
	public void onJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if (i==5) return;
		if(teste.contains(p.getName(){  #esta dando erro nessa linha em baixo do () ta vermelho
			return;
		}
		if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
		    i++;
		p.getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
		p.updateInventory();
		p.sendMessage("§6teste");
	    getServer().broadcastMessage("§6teste");    
	}
	}
}
Link para o comentário
Compartilhar em outros sites

 

Esta dando erro.

	@SuppressWarnings("deprecation")
	@EventHandler
	public void onJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if (i==5) return;
		if(teste.contains(p.getName(){  #esta dando erro nessa linha em baixo do () ta vermelho
			return;
		}
		if (!e.getPlayer().hasPermission("suapermissao.aqui")) {
		    i++;
		p.getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
		p.updateInventory();
		p.sendMessage("§6teste");
	    getServer().broadcastMessage("§6teste");    
	}
	}
}

tente o meu código, e não apague o lista.add(p.getName());

Link para o comentário
Compartilhar em outros sites

tente o meu código, e não apague o lista.add(p.getName());

Dando erro no mesmo lugar.

	@SuppressWarnings("deprecation")
	@EventHandler
	public void onJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if (i==3) return;
		if(lista.contains(p.getName()) return;   #dando erro aqui em baixo do ()) ta vermelho
		if (!p.hasPermission("suapermissao.aqui")) {
		    i++;
		    lista.add(p.getName());
		    p.getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
		    p.updateInventory();
		    p.sendMessage("§6teste");
		    getServer().broadcastMessage("§6teste");    
	}
	}
}

Se quiser e for mais facil e posto uma print ou mando o codigo todo.

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

Dando erro no mesmo lugar.

	@SuppressWarnings("deprecation")
	@EventHandler
	public void onJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if (i==3) return;
		if(lista.contains(p.getName()) return;   #dando erro aqui em baixo do ()) ta vermelho
		if (!p.hasPermission("suapermissao.aqui")) {
		    i++;
		    lista.add(p.getName());
		    p.getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
		    p.updateInventory();
		    p.sendMessage("§6teste");
		    getServer().broadcastMessage("§6teste");    
	}
	}
}
Se quiser e for mais facil e posto uma print ou mando o codigo todo.

 

Use esse:

private List<String> lista=new ArrayList<String>();
private int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
   Player p = e.getPlayer():
   if (i==3) return;
   if (lista.contains(p.getName())) return;
   if (!p.hasPermission("suapermissao.aqui")) {
      i++;
      lista.add(p.getName());
      // Dar o item!
   }
}
Resolvido? Editado por BrineDev
Link para o comentário
Compartilhar em outros sites

	
	private static ArrayList<String> players = new ArrayList<>(3);
	
	@EventHandler
	public void onJoin(PlayerJoinEvent e)
	{
		if (players.size() < 3)
		{
			if (!e.getPlayer().hasPermission("by.pass"))
			{
				e.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
				e.getPlayer().sendMessage("§bParabéns, você foi um dos 3 primeiros a entrar no servidor.");
				players.add(e.getPlayer().getName());
			}
		}
	}

Ah, e caso queira que ele só receba 1x

	private static ArrayList<String> players = new ArrayList<>(3);
	
	@EventHandler
	public void onJoin(PlayerJoinEvent e)
	{
		if (players.size() < 3 && !players.contains(e.getPlayer().getName()))
		{
			if (!e.getPlayer().hasPermission("by.pass"))
			{
				e.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
				e.getPlayer().sendMessage("§bParabéns, você foi um dos 3 primeiros a lugar no servidor.");
				players.add(e.getPlayer().getName());
			}
		}
	}

Seria bom adicionar no nome em minusculo, pq acho que se o cara entrar com uma letrar maiúscula por exemplo ele recebe de novo, não tenho certeza...

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

 

	private static Vector<String> players = new Vector<>();
	
	@EventHandler
	public void onJoin(PlayerJoinEvent e)
	{
		if (players.size() < 3)
		{
			if (!e.getPlayer().hasPermission("by.pass"))
			{
				e.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
				e.getPlayer().sendMessage("§bParabéns, você foi um dos 3 primeiros a lugar no servidor.");
				players.add(e.getPlayer().getName());
			}
		}
	}

 

agr sim :lol:
Link para o comentário
Compartilhar em outros sites

Use esse:

private List<String> lista=new ArrayList<String>();
private int i=0;

@EventHandler
public void onJoin(PlayerJoinEvent e) {
   Player p = e.getPlayer():
   if (i==3) return;
   if (lista.contains(p.getName())) return;
   if (!p.hasPermission("suapermissao.aqui")) {
      i++;
      lista.add(p.getName());
      // Dar o item!
   }
}
Resolvido?

 

demorei um pokito tava vendo se conseguia sozinho mais consegui não :( deu erro.

 

http://i.imgur.com/PLEo8nA.png

 

 

 

 

    

    private static ArrayList<String> players = new ArrayList<>(3);

    

    @EventHandler

    public void onJoin(PlayerJoinEvent e)

    {

        if (players.size() < 3)

        {

            if (!e.getPlayer().hasPermission("by.pass"))

            {

                e.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND, 1));

                e.getPlayer().sendMessage("§bParabéns, você foi um dos 3 primeiros a entrar no servidor.");

                players.add(e.getPlayer().getName());

            }

        }

    }

 

vo testar 

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

Visitante
Este tópico está impedido de receber novos posts.
  • Quem está navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...