yemiefi Postado Setembro 2, 2018 Denunciar Compartilhar Postado Setembro 2, 2018 (editado) Quero descontar da mão do jogador uma esmeralda com uma lore e nome específicos como eu faço isso? Editado Setembro 2, 2018 por yemiefi Resolvido! Link para o comentário Compartilhar em outros sites More sharing options...
1 Ygor Postado Setembro 2, 2018 Denunciar Compartilhar Postado Setembro 2, 2018 (editado) Olá, Para verificar se o item tem o nome específico você pode usar: Player p = (Player)sender; if(p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§aNome do item aqui") { // O nome confere } Para checar se o Lore confere você pode usar algo como: if(p.getItemInHand().getItemMeta().getLore().get(0).equals("§aLinha 1 do Lore")) { // Se a linha 1 do Lore for igual ao definido, executa o método } Ou você pode apenas comprar o getLore() do item com a ArrayList que você criou. Visto isso, basta juntar os dois códigos. E, caso queira verificar mais que a primeira linha do código, basta ir fazendo verificações com Lore 0, 1, 2 etc Qualquer dúvida fico à disposição Editado Setembro 2, 2018 por Ygor 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 yemiefi Postado Setembro 2, 2018 Autor Denunciar Compartilhar Postado Setembro 2, 2018 (editado) No meu plugin eu já fiz um comando que dê para o jogador o item, veja um pedaço do código que contém o item: ItemStack item = new ItemStack(Material.EMERALD, qnt); ItemMeta meta = item.getItemMeta(); meta.setDisplayName("§3§lANUNCIADOR"); { List<String> lore = new ArrayList<String>(); lore.add(""); lore.add(" §b* §fJunte 3 anunciadores para usar o /anunciar!"); lore.add(""); meta.setLore(lore); } item.setItemMeta(meta); p.getInventory().addItem(item); Editado Setembro 2, 2018 por yemiefi Link para o comentário Compartilhar em outros sites More sharing options...
0 RodriiN Postado Setembro 2, 2018 Denunciar Compartilhar Postado Setembro 2, 2018 @EventHandler public void aoClicar(PlayerInteractEvent e) { Player p = e.getPlayer(); ItemStack item = p.getItemInHand(); if (e.getAction() == org.bukkit.event.block.Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) { if (!item.hasItemMeta()) return; if (item.getType() == Material.EMERALD && item.getItemMeta().getDisplayName().equalsIgnoreCase("§6Nome do item") && item.getItemMeta.getLore.contains("Lore") { e.setCancelled(true); if (p.getItemInHand().getAmount() == 1) { p.setItemInHand(null); p.updateInventory(); } else { p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1); } //Código dps que descontar a Esmeralda Link para o comentário Compartilhar em outros sites More sharing options...
0 yemiefi Postado Setembro 2, 2018 Autor Denunciar Compartilhar Postado Setembro 2, 2018 14 minutos atrás, Ygor disse: Olá, Para verificar se o item tem o nome específico você pode usar: Player p = (Player)sender; if(p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§aNome do item aqui") { // O nome confere } Para checar se o Lore confere você pode usar algo como: if(p.getItemInHand().getItemMeta().getLore().get(0).equals("§aLinha 1 do Lore")) { // Se a linha 1 do Lore for igual ao definido, executa o método } Visto isso, basta juntar os dois códigos. E, caso queira verificar mais que a primeira linha do código, basta ir fazendo verificações com Lore 0, 1, 2 etc Qualquer dúvida fico à disposição Resolvido, muito obrigado! Link para o comentário Compartilhar em outros sites More sharing options...
0 Wolf_131 Postado Abril 8, 2019 Denunciar Compartilhar Postado Abril 8, 2019 Sua dúvida foi marcada como resolvida pela nossa equipe. Caso sua dúvida não tenha sido sanada, crie outro tópico. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
yemiefi
Quero descontar da mão do jogador uma esmeralda com uma lore e nome específicos como eu faço isso?
Editado por yemiefiResolvido!
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados