Ir para conteúdo
  • 0

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


DeliriousD

Pergunta

Falaah desenvolvedores ta tenso achar isso tentei algumas coisa mais da erro so nb ainda muito nb :(.

 

Queria pegar os 3 primeiros player que entrar no servidor e bloquear alguns nomes ex nomes da staff se poder ajudar ficarei grato :D.

Link para o comentário
Compartilhar em outros sites

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

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.

Ele falou ao contrário, que precisava ignorar os staffs online, antes de tentar criar treta comigo, leia todas as respostas.
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.

Não cara, eu estou totalmente correto, eu respondi a pergunta do tópico, não as respostas, meu código está totalmente certo, o seu também, mas tem partes desnecessárias.

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

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.

Coloca os que ja pegaram em 1 lista.

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.
×
×
  • Criar Novo...