Ir para conteúdo
  • 0

[DEV] Por que o item ta fazendo mandar 2 vezes o comando? (InventoryClickEvent)


Solitario

Pergunta

Galera eu tenho esse code aqui (Feito por mim) e tipo testei no meu servidor primeira versão e tava funcional ... agora do nada começou que ao clickar no item da gui ele faz o player executar 2 vezes o comando (Já testei o comando por si e ta funcionando normal)

 

Code:

 

 

	@EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
		Player player = (Player) event.getWhoClicked();
		ItemStack clicked = event.getCurrentItem(); 
		Inventory inventory = event.getInventory(); 
		if (clicked !=null && inventory.getTitle().equals("§e§lLoja de cash") && clicked.getType() != Material.AIR) { 
			event.setCancelled(true);
			if(clicked.getItemMeta().getDisplayName() == "§aVIP++"){
				abrirmenuvip3(player);
			}
			if(clicked.getItemMeta().getDisplayName() == "§aVIP+"){
				abrirmenuvip2(player);
			}
			if(clicked.getItemMeta().getDisplayName() == "§aVIP"){
				abrirmenuvip(player);
			}
			if(clicked.getItemMeta().getDisplayName() == "§aConfirmar"){
				player.chat("/lojadecash comprar " + inventory.getItem(4).getItemMeta().getDisplayName() + " confirma");
				player.closeInventory();
			}
			if(clicked.getItemMeta().getDisplayName() == "§cCancelar"){
				player.chat("/lojadecash comprar " + inventory.getItem(4).getItemMeta().getDisplayName());
			}
		}
	}

 

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

use equalsIgnoreCase em vez do == , e bota um return ae slá


			if(clicked.getItemMeta().getDisplayName().equalsIgnoreCase("§aConfirmar")){
				player.chat("/lojadecash comprar " + inventory.getItem(4).getItemMeta().getDisplayName() + " confirma");
				player.closeInventory();
                                return;
			}

@Edit

tem uma maneira própria para executar comandos,

getServer().dispatchCommand(p, "lojadecash comprar " + ...);

não sei se tem alguma diferença com o p.chat() mas slá ;-; tem uma função para isso

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

Verifica se você não registro duas vezes o evento dessa classe

	public void onEnable(){
		instance = this;
		saveDefaultConfig();
		servidor = getConfig().getString("Servidor");
		carregareventos();
		carregarcomandos();
		Bukkit.getConsoleSender().sendMessage("§e["+ this.getName() +"] §aPlugin carregado com sucesso!");
	}
	
	private void carregareventos(){
		getServer().getPluginManager().registerEvents(new Gui3(), this);
		getServer().getPluginManager().registerEvents(new Gui2(), this);
		getServer().getPluginManager().registerEvents(new Gui(), this);
	}
	private void carregarcomandos(){
		getCommand("lojadecash").setExecutor(new lojadecash());
	}

não ;-;

 

@EDIT

kkkkk tendi ... ta todos os registerevent funcional e todos tem o mesmo code no inventoryclickevent

^^

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

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