Ir para conteúdo
  • 0

[MENUGUI] ESTOU CONSEGUINDO TIRAR OS ITENS DO MENU GUI, COMO RESOLVER?


Fajardo

Pergunta

Estou criando um plugin de Chain mais quando digito /chain e abre o menu gui eu to conseguindo tirar os itens do menu!

 

Classe : MenuGui (Onde fica so os itens)

 

 

 

package me.fajardo.farjchain;

import java.util.ArrayList;

import org.bukkit.*;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;


public class MenuGui implements Listener {
	private static Main plugin = Main.getInstance();
	public static String prefix = plugin.getConfig().getString("Mensagens.Prefix").replace("&", "§");
	public static String Seta = plugin.getConfig().getString("Mensagens.Seta");

	public static void open(Player p) {
		
		Inventory inv = Bukkit.createInventory(null, 3*9, "§7» §cARENA CHAIN");
		ItemStack Espada = new ItemStack(Material.IRON_SWORD);
		ItemMeta espadameta = Espada.getItemMeta();
		espadameta.setDisplayName("§aKIT MEMBRO");
		ArrayList<String> Lore = new ArrayList<>();
		Lore.add("§7Entre na Arena Chain usando KIT MEMBRO");
		espadameta.setLore(Lore);
		Espada.setItemMeta(espadameta);
		inv.setItem(11, Espada);	
		
		ItemStack Redstone = new ItemStack(Material.REDSTONE);
		ItemMeta redstonemeta = Redstone.getItemMeta();
		redstonemeta.setDisplayName("§cTOP KILLS");
		ArrayList<String> Lore1 = new ArrayList<>();
		Lore1.add("§7Veja os que mais mataram na Arena Chain");
		redstonemeta.setLore(Lore1);
		Redstone.setItemMeta(redstonemeta);
		inv.setItem(13, Redstone);	
		
		ItemStack Espada2 = new ItemStack(Material.DIAMOND_SWORD);
		ItemMeta espada2meta = Espada2.getItemMeta();
		espada2meta.setDisplayName("§6KIT VIP");
		ArrayList<String> Lore2 = new ArrayList<>();
		Lore2.add("§7Entre na Arena Chain usando KIT VIP");
		espada2meta.setLore(Lore2);
		Espada2.setItemMeta(espada2meta);
		inv.setItem(15, Espada2);	
		
		p.openInventory(inv);
		p.playSound(p.getLocation(), Sound.CHEST_OPEN, 1F, 1F);
		
	}
	
	}
 

 

 

 

 Classe : Eventos (Onde fica o sistema para abrir o GUI)

package me.fajardo.farjchain;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;

public class Eventos implements Listener {
	public Config loc = Main.loc;
	private static Main plugin = Main.getInstance();
	public static String prefix = plugin.getConfig().getString("Mensagens.Prefix").replace("&", "§");
	public static String Seta = plugin.getConfig().getString("Mensagens.Seta");

	@EventHandler
	public void Chain(InventoryClickEvent e) {
		if (e.getWhoClicked() instanceof Player) {
			return;
		}
		@SuppressWarnings("unused")
		Player p = (Player)e.getWhoClicked();
		if (e.getInventory().getName().equals("§7» §cARENA CHAIN")){
			e.setCancelled(true);
			
			if (e.getCurrentItem() == null) return;
			if (e.getCurrentItem().getItemMeta().getDisplayName() == null) return;
			if (e.getCurrentItem().getType() == Material.AIR) return;
			ItemStack item = e.getCurrentItem();
			
			
			switch (item.getItemMeta().getDisplayName()) {
			case "§aKIT MEMBRO":
				World world = Bukkit.getWorld(loc.getConfig().getString("Chain.Entrada.world"));
				double x = loc.getConfig().getDouble("Chain.Entrada.x");
				double y = loc.getConfig().getDouble("Chain.Entrada.y");
				double z = loc.getConfig().getDouble("Chain.Entrada.z");
				float yaw = (float) loc.getConfig().getDouble("Chain.Entrada.yaw");
				float pitch = (float) loc.getConfig().getDouble("Chain.Entrada.pitch");
				Location loc = new Location(world, x, y, z, yaw, pitch);
				p.teleport(loc);
				p.sendMessage(plugin.getConfig().getString("Mensagens.EntrouArena").replace("&", "§").replace("@Prefix", prefix));
				
				break;

			default:
				return;
			}
		}
		
	}
}
	

 



ALGUÉM AI SABE ME AJUDAR COMO FAZER PRA NÃO PEGAR OS ITENS?! E SE TEM ALGO DE ERRADO NO CÓDIGO!

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

14 respostass a esta questão

Posts Recomendados

Tenta assim:

Troca e.getInventory().getName()

por

if (e.getInventory().getTittle().equalsIgnoreCase("oii")){

@Edit

Caso não funcionar checa se você registrou os eventos...

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

Tenta assim:

Troca e.getInventory().getName()

por

if (e.getInventory().getTittle().equalsIgnoreCase("oii")){

@Edit

Caso não funcionar checa se você registrou os eventos...

Troquei e ainda continua dando pra tirar o item :(

Link para o comentário
Compartilhar em outros sites

Troquei e ainda continua dando pra tirar o item :(

Descobri o erro kkk...

 

Você checou se era um player e retornou.

 

Ou seja, remove o if(e.getWhoClicker() instanceof Player)

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

MANO

MANO

MANO

 

if (e.getWhoClicked() instanceof Player) {
            return;
}

Esse é o problema, ele ta travando o codigo se for um player

Muda para isso

 

if (!(e.getWhoClicked() instanceof Player)) {
            return;
}
Link para o comentário
Compartilhar em outros sites

Eu e meu amigo conseguimos resolver, agora quando clica nos itens não executa o comando, sabe o que pode ser?

Sei não men, vou olhar melhor aqui...

 

Mas eu acho desnecessário o switch.. Vai checando 1 por 1..

Link para o comentário
Compartilhar em outros sites

		if (!e.getWhoClicked() instanceof Player) { //se nao for um player
			return;
		}


vc tava fazendo errado '-'

 

e tenta

		if (e.getSlot() == 5) {
                e.setCancelled(true);
                p.sendmessage("vc clico no slot 5")



			
		}
Link para o comentário
Compartilhar em outros sites

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