TequilAxBr Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 Olá humanos, bom estou fazendo meu Plugin aqui (BLojaPotions) mas ele não funciona de metodo algum, quando digito "/lojapot" ele não abre o menu que deveria abrir não possui erro quando ligo o servidor e nem quando digito /lojapot. Print da prova que não possui erros: http://prntscr.com/87x6ac Codigo: package tequilaxbr.blojapotions; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin{ @Override public void onEnable() { } @Override public void onDisable() { } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(!(sender instanceof Player)){ System.out.println("Apenas in-game"); } Player p = (Player)sender; if(command.getName().equalsIgnoreCase("lojapot")){ if(p.hasPermission("lojapot.usar")){ Inventory inv = Bukkit.createInventory(null, 18, "§9§lLoja de Poção"); ItemStack item1 = new ItemStack(Material.MILK_BUCKET); ItemStack item2 = new ItemStack(Material.GLASS_BOTTLE,1, (short) 8257); ItemMeta meta2 = item2.getItemMeta(); ItemMeta meta = item1.getItemMeta(); meta.setDisplayName("§4§lRetire seus efeitos"); meta2.setDisplayName("§4§lRegeneração"); item1.setItemMeta(meta); item2.setItemMeta(meta2); inv.setItem(12,item1); inv.setItem(1, item2); //COMPRA ItemStack i = getCurrentItem(); if (inv.getTitle().equalsIgnoreCase("§9§lLoja de Poção")) { if (i != null) if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) { p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257)); p.closeInventory(); p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins"); } } } } return false; } private ItemStack getCurrentItem() { // TODO Auto-generated method stub return null; } } Link para o comentário Compartilhar em outros sites More sharing options...
Karamujo Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 (editado) Como ficaria pra quando ele clicar na pot ele receber um item? @EventHandler public void clickItem(InventoryClickEvent ev) { Player p = (Player) ev.getWhoClicked(); if(ev.getInventory().getName().equalsIgnoreCase("§9§lLoja de Poção")) { ItemStack x = ev.getCurrentItem(); p.getInventory().addItem(x); p.updateInventory(); } } Editado Agosto 24, 2015 por Karamujo 1 Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 Se coloco o comando no plugin.yml? E esse método sempre retorna null private ItemStack getCurrentItem() { // TODO Auto-generated method stub return null; } Ou seja, ele nunca vai entrar nesse bloco if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) { p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257)); p.closeInventory(); p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins"); } E como você quer que ele abra o inventario se não colocou pra fazer isso... ? falto o p.openInventory(inv); Link para o comentário Compartilhar em outros sites More sharing options...
Guest zInkubi Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 Erro de iniciante, as vezes eu esqueço também: Faltou o: p.openInventory(inv); Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Agosto 23, 2015 Autor Denunciar Compartilhar Postado Agosto 23, 2015 Se coloco o comando no plugin.yml? E esse método sempre retorna null private ItemStack getCurrentItem() { // TODO Auto-generated method stub return null; } Ou seja, ele nunca vai entrar nesse bloco if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) { p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257)); p.closeInventory(); p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins"); } E como você quer que ele abra o inventario se não colocou pra fazer isso... ? falto o p.openInventory(inv); Então só tenho que por o p.openInventory(inv); ? Agora ele abriu, mas não acontece nd qnd clico na pot '-' era pra acontecer Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 Então só tenho que por o p.openInventory(inv); ? Agora ele abriu, mas não acontece nd qnd clico na pot '-' era pra acontecer Não, não era, tu não definiu pra ele fazer isso, tu precisa criar o evento de quando o cara clica no inventario, fazer a checagens e pa... Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Agosto 23, 2015 Autor Denunciar Compartilhar Postado Agosto 23, 2015 Não, não era, tu não definiu pra ele fazer isso, tu precisa criar o evento de quando o cara clica no inventario, fazer a checagens e pa... Utilizando o evento: InventoryClickEvent ? Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 Utilizando o evento: InventoryClickEvent ? Sim, você somente fez com que ele abra, a parte de comprar ao clicar no item etc, precisa utilizar o evento InventoryClickEvent Link para o comentário Compartilhar em outros sites More sharing options...
Langsdorf Postado Agosto 23, 2015 Denunciar Compartilhar Postado Agosto 23, 2015 Já falaram tudo '-' Resolvido? Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Agosto 23, 2015 Autor Denunciar Compartilhar Postado Agosto 23, 2015 Como ficaria pra quando ele clicar na pot ele receber um item? Link para o comentário Compartilhar em outros sites More sharing options...
Guest ~iNotLinduh. Postado Agosto 24, 2015 Denunciar Compartilhar Postado Agosto 24, 2015 (editado) Como ficaria pra quando ele clicar na pot ele receber um item? Você Tem Que Usar O Evento InventoryClickEvent , Não Pode Fazer Direto Pelo Comando -'. Ex: @EventHandler public void onClick(InventoryClickEvent e){ Player p =(Player)e.getWhoClicked(); if(e.getInventory().getName().equalsIgnoreCase("NomeDaGui")){ \\Continua Com O Codigo :S } } OBS: Não Se Esqueça De Registrar Os Eventos No onEnable :) Editado Agosto 24, 2015 por ~iNotLinduh. Link para o comentário Compartilhar em outros sites More sharing options...
Paack ▸ @PaackB Postado Agosto 24, 2015 Denunciar Compartilhar Postado Agosto 24, 2015 Olá humanos, bom estou fazendo meu Plugin aqui (BLojaPotions) mas ele não funciona de metodo algum, quando digito "/lojapot" ele não abre o menu que deveria abrir não possui erro quando ligo o servidor e nem quando digito /lojapot. Print da prova que não possui erros: http://prntscr.com/87x6ac Codigo: package tequilaxbr.blojapotions; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin{ @Override public void onEnable() { } @Override public void onDisable() { } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(!(sender instanceof Player)){ System.out.println("Apenas in-game"); } Player p = (Player)sender; if(command.getName().equalsIgnoreCase("lojapot")){ if(p.hasPermission("lojapot.usar")){ Inventory inv = Bukkit.createInventory(null, 18, "§9§lLoja de Poção"); ItemStack item1 = new ItemStack(Material.MILK_BUCKET); ItemStack item2 = new ItemStack(Material.GLASS_BOTTLE,1, (short) 8257); ItemMeta meta2 = item2.getItemMeta(); ItemMeta meta = item1.getItemMeta(); meta.setDisplayName("§4§lRetire seus efeitos"); meta2.setDisplayName("§4§lRegeneração"); item1.setItemMeta(meta); item2.setItemMeta(meta2); inv.setItem(12,item1); inv.setItem(1, item2); //COMPRA ItemStack i = getCurrentItem(); if (inv.getTitle().equalsIgnoreCase("§9§lLoja de Poção")) { if (i != null) if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) { p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257)); p.closeInventory(); p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins"); } } } } return false; } private ItemStack getCurrentItem() { // TODO Auto-generated method stub return null; } } Quanto você terminar esse plugin , me passa? Link para o comentário Compartilhar em outros sites More sharing options...
Karamujo Postado Agosto 26, 2015 Denunciar Compartilhar Postado Agosto 26, 2015 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
TequilAxBr
Olá humanos, bom estou fazendo meu Plugin aqui (BLojaPotions) mas ele não funciona de metodo algum, quando digito "/lojapot" ele não abre o menu que deveria abrir não possui erro quando ligo o servidor e nem quando digito /lojapot.
Print da prova que não possui erros: http://prntscr.com/87x6ac
Codigo:
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados