Ir para conteúdo
  • 0

[Resolvido] Probleminha


Guest Wheeze

Pergunta

Bom, estou fazendo um plugin de inventario no lobby tipo da maioria dos servidores de minigames, e tem um errinho na parte de esconder os jogadores, no item que no caso é aquela esfera pra fazer fogos de artificio ao clicar nela com o botão direito esconde todos os jogadores, envia uma mensagem e muda o lugar da esfera para uma fireball, porem quando eu faço o mesmo com a fireball, ela envia a mensagem que escondeu os jogadores e a que fala que não estão mais escondidos, e não muda o item... e isso é errado.

 

Olhem o código:

 

 
 @SuppressWarnings("deprecation")
@EventHandler
public void esconderplayers(PlayerInteractEvent e) {
Player p = e.getPlayer();
if(JLobby.contains(p.getName())) {
if(p.getItemInHand().getType() == Material.getMaterial(402)) {
if((e.getAction() == Action.RIGHT_CLICK_AIR) || (e.getAction() == Action.RIGHT_CLICK_BLOCK)) {
for(Player p1 : Bukkit.getOnlinePlayers()) {
if(p1.hasPermission("lobby.staff")) {
p.showPlayer(p1);
}
else if(p1.hasPermission("lobby.youtuber")) {
p.showPlayer(p1);
}
else {
p.hidePlayer(p1);
}
   }
ItemStack magmacream = new ItemStack(Material.getMaterial(385));
ItemMeta magmacreamm = magmacream.getItemMeta();
magmacreamm.setDisplayName("§aMostrar todos os jogadores");
magmacreamm.setLore(Arrays.asList("§3Clique aqui para mostrar todos os jogadores."));
magmacream.setItemMeta(magmacreamm);
 
p.getInventory().setItem(7, magmacream);
p.updateInventory();
p.sendMessage("§aTodos os jogadores foram escondidos!");
}
}
}
}
 
@SuppressWarnings("deprecation")
@EventHandler
public void mostrarplayers(PlayerInteractEvent e) {
Player p = e.getPlayer();
if(JLobby.contains(p.getName())) {
if(p.getItemInHand().getType() == Material.getMaterial(385)) {
if((e.getAction() == Action.RIGHT_CLICK_AIR) || (e.getAction() == Action.RIGHT_CLICK_BLOCK)) {
for(Player p1 : Bukkit.getOnlinePlayers()) {
p.showPlayer(p1);
   }
ItemStack slimeball = new ItemStack(Material.getMaterial(402));
ItemMeta slimeballm = slimeball.getItemMeta();
slimeballm.setDisplayName("§cEsconder todos os jogadores");
slimeballm.setLore(Arrays.asList("§3Clique aqui para esconder todos os jogadores."));
slimeball.setItemMeta(slimeballm);
 
p.getInventory().setItem(7, slimeball);
p.updateInventory();
p.sendMessage("§cTodos os jogadores não estão mais escondidos!");
}
}
}
}
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

Pra que .getMaterial ?

 

 

Material.AIR

Material.SLIME_BALL

Material.MAGMA_CREAM

 

Simples.

 

Seu código está certo, algum erro no console quando mostra os players?

Porque foi o coloquei e da na mesma.

 

E não aparecesse erros mas esta bugado no servidor.

Link para o comentário
Compartilhar em outros sites

Você tentou abrir um bau pra ver se e bug do seu inventario?

 

 

(os baus e fornalhas e mesa de trabalho atualiza o inv)

Osh, acho que você se enganou com a função do código

Link para o comentário
Compartilhar em outros sites

Bom seguinte faz tudo em um evento assim 

	@SuppressWarnings("deprecation")
	@EventHandler
	public void Interact(PlayerInteractEvent e)
	{
		Player p = e.getPlayer();
		if(JLobby.contains(p.getName())) {
		if((e.getAction() == Action.RIGHT_CLICK_AIR) || (e.getAction() == Action.RIGHT_CLICK_BLOCK)) 
		{
			if(e.getItem().getType() == Material.getMaterial(402))
			{
				for(Player p1 : Bukkit.getOnlinePlayers()) {
				if(p1.hasPermission("lobby.staff")) {
				p.showPlayer(p1);
				}
				else if(p1.hasPermission("lobby.youtuber")) {
				p.showPlayer(p1);
				}
				else {
				p.hidePlayer(p1);
				}
				ItemStack magmacream = new ItemStack(Material.getMaterial(385));
				ItemMeta magmacreamm = magmacream.getItemMeta();
				magmacreamm.setDisplayName("§aMostrar todos os jogadores");
				magmacreamm.setLore(Arrays.asList("§3Clique aqui para mostrar todos os jogadores."));
				magmacream.setItemMeta(magmacreamm);
				 
				p.getInventory().setItem(7, magmacream);
				p.updateInventory();
				p.sendMessage("§aTodos os jogadores foram escondidos!");
			}
		}if(e.getItem().getType() == Material.getMaterial(385))
		{
			for(Player p1 : Bukkit.getOnlinePlayers()) 
			{
				p.showPlayer(p1);
		    }
			ItemStack slimeball = new ItemStack(Material.getMaterial(402));
			ItemMeta slimeballm = slimeball.getItemMeta();
			slimeballm.setDisplayName("§cEsconder todos os jogadores");
			slimeballm.setLore(Arrays.asList("§3Clique aqui para esconder todos os jogadores."));
			slimeball.setItemMeta(slimeballm);
			 
			p.getInventory().setItem(7, slimeball);
			p.updateInventory();
			p.sendMessage("§cTodos os jogadores não estão mais escondidos!");
		}else
		{
			return;
		}
	}
	}

	}

Caso não funcionar tente usando getItemHand() usei getItem pq antes vem o right click enfim teste os 2 

Like moço

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

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