Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 (editado) Quero saber como faço abrir um gui e qnd eu botar por exemplo um diamante e fechar o gui ou na hora que eu botar mesmo, mandar uma mensagem, "Upou para rank diamante!" para o player Editado Maio 8, 2017 por iDimaDev Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 14:07, -DimaBR disse: Sim, gostaria de saber como coloco lapis lazulli no eclipse Dye d = new Dye(); d.setColor(DyeColor.BLUE); ItemStack i = d.toItemStack(); i.setAmount(10); p.getInventory().addItem(i); Link para o comentário Compartilhar em outros sites More sharing options...
Lelfe Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 UP, também preciso Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 15:01, Luscau disse: UP, também preciso psé kkkk Link para o comentário Compartilhar em outros sites More sharing options...
kFlash_ Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Explica direito? Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 20:51, kFlash_ disse: Explica direito? o player vai dar /upar e qnd ele dar esse comando vai abrir um inventory, nesse inventory qnd ele colocar 1 diamante da uma mensagem que ele upou, se for outro minerio manda uma mensagem "item invalido" Link para o comentário Compartilhar em outros sites More sharing options...
Reityy Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 (editado) Em 08/05/2017 em 21:21, -DimaBR disse: o player vai dar /upar e qnd ele dar esse comando vai abrir um inventory, nesse inventory qnd ele colocar 1 diamante da uma mensagem que ele upou, se for outro minerio manda uma mensagem "item invalido" @Override public boolean onCommand(CommandSender sender, Command cmd, String lb, String[] args) { if(cmd.getName().equalsIgnoreCase("upar")){ Inventory inv = Bukkit.createInventory(null, 3*9, "§cRankUp"); Player p = (Player)sender; p.openInventory(inv); if(inv.getItem(13) == new ItemStack(Material.DIAMOND)){ inv.remove(new ItemStack(Material.DIAMOND)); // Sistema pra upar de rank aqui p.closeInventory(); p.sendMessage("§aVocê upou!"); }else{ if(inv.getItem(13) != null && inv.getItem(13) != new ItemStack(Material.AIR)){ p.closeInventory(); p.sendMessage("§cItem inválido!"); } } } return false; } Obs: Não sei se vai funcionar, não testei, não sou o melhor pra te ajudar nisso, mas acho que tá certo ;-; Obs2: inv.getItem(13) << Esse 13 é o slot q o diamante tem que ser colocado Editado Maio 8, 2017 por Reityy Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 22:01, Reityy disse: @Override public boolean onCommand(CommandSender sender, Command cmd, String lb, String[] args) { if(cmd.getName().equalsIgnoreCase("upar")){ Inventory inv = Bukkit.createInventory(null, 3*9, "§cRankUp"); Player p = (Player)sender; p.openInventory(inv); if(inv.getItem(13) == new ItemStack(Material.DIAMOND)){ inv.remove(new ItemStack(Material.DIAMOND)); // Sistema pra upar de rank aqui p.closeInventory(); p.sendMessage("§aVocê upou!"); }else{ if(inv.getItem(13) != null && inv.getItem(13) != new ItemStack(Material.AIR)){ p.closeInventory(); p.sendMessage("§cItem inválido!"); } } } return false; } Obs: Não sei se vai funcionar, não testei, não sou o melhor pra te ajudar nisso, mas acho que tá certo ;-; Obs2: inv.getItem(13) << Esse 13 é o slot q o diamante tem que ser colocado é nao funcionou Link para o comentário Compartilhar em outros sites More sharing options...
Reityy Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 22:44, -DimaBR disse: é nao funcionou kskssksks ja imaginava ;-; como eu disse, "não sou o melhor pra te ajudar nisso" :v Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 22:56, Reityy disse: kskssksks ja imaginava ;-; como eu disse, "não sou o melhor pra te ajudar nisso" :v mas e o unico que tento realmente ajudar.... o resto ta pouco se @%$#~&I isos que vale, vc ajudou Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Na parte do comando, você cria um inventario e abre ele ex: if (command.getName().equalsIgnoreCase("up")) { if (sender instanceof Player) { Inventory inv = Bukkit.createInventory(null, 9, "UP!"); ((Player) sender).openInventory(inv); } } Agora, crie o evento chamado InventoryCloseEvent e adicione esse código: if (e.getInventory().getTitle().equalsIgnoreCase("UP!")) { if (e.getInventory().contains(Material.DIAMOND)) { e.getPlayer().sendMessage("Você upou com sucesso!"); return; } else { e.getPlayer().sendMessage("Item invalido."); return; } } Para verificar o item em ''tempo real'', tente fazer essa verificação com os eventos InventoryMoveItemEvent e InventoryDragEvent(eu recomendo o InventoryMoveItemEvent) Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 23:20, GabrielSm_ disse: Na parte do comando, você cria um inventario e abre ele ex: if (command.getName().equalsIgnoreCase("up")) { if (sender instanceof Player) { Inventory inv = Bukkit.createInventory(null, 9, "UP!"); ((Player) sender).openInventory(inv); } } Agora, crie o evento chamado InventoryCloseEvent e adicione esse código: if (e.getInventory().getTitle().equalsIgnoreCase("UP!")) { if (e.getInventory().contains(Material.DIAMOND)) { e.getPlayer().sendMessage("Você upou com sucesso!"); return; } else { e.getPlayer().sendMessage("Item invalido."); return; } } Para verificar o item em ''tempo real'', tente fazer essa verificação com os eventos InventoryMoveItemEvent e InventoryDragEvent(eu recomendo o InventoryMoveItemEvent) Sem erros, porem não funcionou ;-; https://pastebin.com/kMxxuDv5meu codigo atual Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 23:28, -DimaBR disse: Sem erros, porem não funcionou ;-; https://pastebin.com/kMxxuDv5meu codigo atual InventoryClickEvent só é ''ativado'' quando o player clica em um inventario, portanto, se o player colocar o item no inventario criado, ele ta clicando no inventario dele, então, não acontecerá nada. Use InventoryCloseEvent ou use os outros eventos que eu mencionei... Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 8, 2017 Denunciar Compartilhar Postado Maio 8, 2017 Em 08/05/2017 em 23:33, GabrielSm_ disse: InventoryClickEvent só é ''ativado'' quando o player clica em um inventario, portanto, se o player colocar o item no inventario criado, ele ta clicando no inventario dele, então, não acontecerá nada. Use InventoryCloseEvent ou use os outros eventos que eu mencionei... Eu n to conseguindo tipo, qnd muda o evento por exemplo para InventoryMoveEvent, n consigo pegar o player, e etc... @EventHandler public void OnFechar3(InventoryMoveItemEvent e){ if (e.getInventory().getTitle().equalsIgnoreCase("UP!")) { if (e.getInventory().contains(Material.DIAMOND)) { } } } ;-; Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 08/05/2017 em 23:36, -DimaBR disse: Eu n to conseguindo tipo, qnd muda o evento por exemplo para InventoryMoveEvent, n consigo pegar o player, e etc... @EventHandler public void OnFechar3(InventoryMoveItemEvent e){ if (e.getInventory().getTitle().equalsIgnoreCase("UP!")) { if (e.getInventory().contains(Material.DIAMOND)) { } } } ;-; Bem, eu não sabia da existência do InventoryAction no InventoryClickEvent, então eu fiz uma gambiarra, utilizando o evento InventoryClickEvent, tente isso: Bukkit.broadcastMessage("1"); Player p = (Player) e.getWhoClicked(); if (p.getOpenInventory().getTitle().equalsIgnoreCase("UP!")) { Bukkit.broadcastMessage("2"); if(e.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY){ if (e.getCurrentItem() != null && e.getCurrentItem().getType().equals(Material.DIAMOND)) { Bukkit.broadcastMessage("3"); p.sendMessage("Você upou com sucesso!"); p.closeInventory(); return; } else { Bukkit.broadcastMessage("4"); p.sendMessage("Item invalido."); return; } } } Introdução rápida: Quando o player usar o SHIFT + Item(o diamante), o item será movido para o inventario e vai fazer essa verificação se é um diamante ou não, se sim, fecha o inventario. Eu acho que se ele mover o item com o mouse não vai dar mt certo, tente verificar os ENUMs se tem algum com essa função, caso não tenha, use o InventoryDragEvent. Acabei de observar que o InventoryMoveItemEvent não é utilizável para isso. Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Tambem não funcionou nem envia os broadcasts '-' Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 00:36, -DimaBR disse: Tambem não funcionou nem envia os broadcasts '-' Mostre seu código. Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 00:38, GabrielSm_ disse: Mostre seu código. https://pastebin.com/4w47X2jt Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 00:42, -DimaBR disse: https://pastebin.com/4w47X2jt Não enviou nem se quer o primeiro broadcast? "Bukkit.broadcastMessage("1");" se não, verifique se você registrou o evento e se seu método esta correto, pois eu testei e funcionou perfeitamente. Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Eu registrei usando @EventHandler, qual a forma que você registrou o evento? Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 (editado) Em 09/05/2017 em 00:47, -DimaBR disse: Eu registrei usando @EventHandler, qual a forma que você registrou o evento? Tem que registrar na classe principal também(geralmente denominada de Main) getServer().getPluginManager().registerEvents(this/*classe do evento*/, this/*classe principal*/); Editado Maio 9, 2017 por GabrielSm_ Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 00:50, GabrielSm_ disse: Tem que registrar na classe principal também(geralmente denominada de Main) getServer().getPluginManager().registerEvents(this/*classe do evento*/, this/*classe principal*/); ah sim, eu registrei desse jeito tbm.. Bukkit.getServer().getPluginManager().registerEvents(this, this); Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 00:55, -DimaBR disse: ah sim, eu registrei desse jeito tbm.. Bukkit.getServer().getPluginManager().registerEvents(this, this); Conseguiu? o que falta? ainda precisa de ajuda? Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 13:19, leonardosc disse: Conseguiu? o que falta? ainda precisa de ajuda? Sim, gostaria de saber como coloco lapis lazulli no eclipse Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 (editado) Em 09/05/2017 em 14:07, -DimaBR disse: Sim, gostaria de saber como coloco lapis lazulli no eclipse Tenta ItemStack lapiz = new ItemStack(Material.INK_SACK, 1, (short) 4); Editado Maio 9, 2017 por leonardosc Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 15:28, GabrielSm_ disse: Dye d = new Dye(); d.setColor(DyeColor.BLUE); ItemStack i = d.toItemStack(); i.setAmount(10); p.getInventory().addItem(i); Resolvido, vlw mais uma duvida, porque minha config fica assim? http://i.imgur.com/If7WB02.png Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 22:36, -DimaBR disse: Resolvido, vlw mais uma duvida, porque minha config fica assim? http://i.imgur.com/If7WB02.png Usa saveConfig() e reloadConfig()? se sim, talvez seja o motivo, eu lembro que quando eu usei deu muito trabalho... Se eu não tou enganado, minha solução foi usar uma classe que o @Lüigi! me passou(não lembro qual foi e onde eu achei, tente perguntar a ele, na real, lembro que o nome era mais ou menos simpleconfig). Se não for isso, tente ver a formatação do seu projeto. Link para o comentário Compartilhar em outros sites More sharing options...
Guest iDimaDev Postado Maio 9, 2017 Denunciar Compartilhar Postado Maio 9, 2017 Em 09/05/2017 em 23:07, GabrielSm_ disse: Usa saveConfig() e reloadConfig()? se sim, talvez seja o motivo, eu lembro que quando eu usei deu muito trabalho... Se eu não tou enganado, minha solução foi usar uma classe que o @Lüigi! me passou(não lembro qual foi e onde eu achei, tente perguntar a ele, na real, lembro que o nome era mais ou menos simpleconfig). Se não for isso, tente ver a formatação do seu projeto. Aqui nao funfou ,-, Link para o comentário Compartilhar em outros sites More sharing options...
Gutyerrez Postado Maio 10, 2017 Denunciar Compartilhar Postado Maio 10, 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
Guest iDimaDev
Quero saber como faço abrir um gui e qnd eu botar por exemplo um diamante e fechar o gui ou na hora que eu botar mesmo, mandar uma mensagem, "Upou para rank diamante!" para o player
Editado por iDimaDevLink para o comentário
Compartilhar em outros sites
28 respostass a esta questão
Posts Recomendados