Fajardo Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 (editado) 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 Maio 24, 2017 por Fajardo Link para o comentário Compartilhar em outros sites More sharing options...
Lelfe Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 e.setCancelled(true); Link para o comentário Compartilhar em outros sites More sharing options...
Fajardo Postado Maio 24, 2017 Autor Denunciar Compartilhar Postado Maio 24, 2017 e.setCancelled(true); Ja coloquei na classe onde fica o evento de abrir o GUI e não funcionou :c Onde exatamente eu coloco? Link para o comentário Compartilhar em outros sites More sharing options...
iVictor777z Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 (editado) 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 Maio 24, 2017 por iVictor777z Link para o comentário Compartilhar em outros sites More sharing options...
Fajardo Postado Maio 24, 2017 Autor Denunciar Compartilhar Postado Maio 24, 2017 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 More sharing options...
iVictor777z Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 (editado) 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 Maio 24, 2017 por iVictor777z Link para o comentário Compartilhar em outros sites More sharing options...
Fajardo Postado Maio 24, 2017 Autor Denunciar Compartilhar Postado Maio 24, 2017 Registrou os eventos? Envia a classe principal... Eu e meu amigo conseguimos resolver, agora quando clica nos itens não executa o comando, sabe o que pode ser? Link para o comentário Compartilhar em outros sites More sharing options...
DevSrSouza Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 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; } 1 Link para o comentário Compartilhar em outros sites More sharing options...
iVictor777z Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 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 More sharing options...
Lelfe Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 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 More sharing options...
Fajardo Postado Maio 24, 2017 Autor Denunciar Compartilhar Postado Maio 24, 2017 Consegui resolver esse problema ja, agora todos meus comandos tão dando erro sauhsa Link para o comentário Compartilhar em outros sites More sharing options...
iVictor777z Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 Consegui resolver esse problema ja, agora todos meus comandos tão dando erro sauhsa Que comandos? Link para o comentário Compartilhar em outros sites More sharing options...
Fajardo Postado Maio 24, 2017 Autor Denunciar Compartilhar Postado Maio 24, 2017 Que comandos? /chain setentrada /chain setsaida /chain sair Agora não consigo pegar itens no inventario '-' Link para o comentário Compartilhar em outros sites More sharing options...
iVictor777z Postado Maio 24, 2017 Denunciar Compartilhar Postado Maio 24, 2017 Resolvido via skype. Link para o comentário Compartilhar em outros sites More sharing options...
Langsdorf Postado Maio 25, 2017 Denunciar Compartilhar Postado Maio 25, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.Atenciosamente,Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fajardo
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)
Classe : Eventos (Onde fica o sistema para abrir o GUI)
Editado por FajardoALGUÉM AI SABE ME AJUDAR COMO FAZER PRA NÃO PEGAR OS ITENS?! E SE TEM ALGO DE ERRADO NO CÓDIGO!
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados