Nevidomyy Postado Janeiro 4, 2019 Denunciar Compartilhar Postado Janeiro 4, 2019 Olá, eu sou bem novato na programação e estou tentando fazer um plugin pro minecraft, estou tendo alguns problemas como este que estou pedindo ajuda a vocês ._. seguinte, eu criei uma ArrayList do tipo String para salvar o nick de players que utilizassem determinado comando, e dps eu verificaria se um player que clicou no ar com uma flecha estava dentro da arraylist, se estivessem enviaria uma mensagem pro player, se nao nada acontecia. porém nada acontece nos 2 casos. aqui está o codigo se alguem puder me dar uma luz eu agradeceria ? o comando está funcionando perfeitamente porém oque nao funciona é a parte em que clico com a flecha. package Classes; import java.util.ArrayList; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Arqueiro implements Listener, CommandExecutor{ ArrayList<String> arquer = new ArrayList<String>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] arg3) { Player p = (Player)sender; if (cmd.getName().equalsIgnoreCase("arqueiro")) { if (!(sender instanceof Player)) { return true; } else { p.sendMessage("§f§l[§c§l!§f§l]§a§lVoce escolheu a classe ARQUEIRO!"); arquer.add(sender.getName()); } } return false; } @EventHandler public void Skill1 (PlayerInteractEvent e) { Player p = e.getPlayer(); if (p.getItemInHand().getType() == Material.ARROW) { if (e.getAction() == Action.LEFT_CLICK_AIR) { if (!(arquer.contains(p.getName()))) { return; } else { p.sendMessage("aaaa"); } } } } } Link para o comentário Compartilhar em outros sites More sharing options...
AlissonLopes Postado Janeiro 4, 2019 Denunciar Compartilhar Postado Janeiro 4, 2019 package Classes; import java.util.ArrayList; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Arqueiro implements Listener, CommandExecutor{ ArrayList<String> arquer = new ArrayList<String>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] arg3) { if(!(sender instanceof Player))return true; Player p = (Player)sender; if (cmd.getName().equalsIgnoreCase("arqueiro")) { p.sendMessage("§f§l[§c§l!§f§l]§a§lVoce escolheu a classe ARQUEIRO!"); arquer.add(sender.getName()); } return false; } @EventHandler public void Skill1 (PlayerInteractEvent e) { Player p = e.getPlayer(); if (p.getItemInHand().getType() == Material.ARROW) { if (e.getAction() == Action.LEFT_CLICK_AIR) { if (arquer.contains(p.getName())) { p.sendMessage("aaaa"); } } } } } eu refiz algumas coisas pra diminuir as linhas de código, mas testa agora, qualquer problema me avise que estarei ajudando. Link para o comentário Compartilhar em outros sites More sharing options...
Nevidomyy Postado Janeiro 4, 2019 Autor Denunciar Compartilhar Postado Janeiro 4, 2019 2 horas atrás, FortniteProperty disse: package Classes; import java.util.ArrayList; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Arqueiro implements Listener, CommandExecutor{ ArrayList<String> arquer = new ArrayList<String>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] arg3) { if(!(sender instanceof Player))return true; Player p = (Player)sender; if (cmd.getName().equalsIgnoreCase("arqueiro")) { p.sendMessage("§f§l[§c§l!§f§l]§a§lVoce escolheu a classe ARQUEIRO!"); arquer.add(sender.getName()); } return false; } @EventHandler public void Skill1 (PlayerInteractEvent e) { Player p = e.getPlayer(); if (p.getItemInHand().getType() == Material.ARROW) { if (e.getAction() == Action.LEFT_CLICK_AIR) { if (arquer.contains(p.getName())) { p.sendMessage("aaaa"); } } } } } eu refiz algumas coisas pra diminuir as linhas de código, mas testa agora, qualquer problema me avise que estarei ajudando. Ok, não funcionou porém eu fiz uma modificação pra quando o player nao estiver na ArrayList mandar outra mensagem, então fui testar e antes de eu dar o comando pra ser adicionado na ArrayList eu recebo a msg que programei, porém quando eu dou o comando pra entrar na ArrayList também recebo a mensagem que era pra ser recebida quando não estivesse na arrayList, acho que eu fiz algo errado no codigo pra entrar na arraylist e não sei oq é ._. Link para o comentário Compartilhar em outros sites More sharing options...
Trow_Games Postado Janeiro 4, 2019 Denunciar Compartilhar Postado Janeiro 4, 2019 Muda isso: ArrayList<String> arquer = new ArrayList<String>(); Para: public static ArrayList<String> arquer = new ArrayList<String>(); Dps me diz se funcionou ^^ 1 Link para o comentário Compartilhar em outros sites More sharing options...
Nevidomyy Postado Janeiro 4, 2019 Autor Denunciar Compartilhar Postado Janeiro 4, 2019 Agora, Trow_Games disse: Muda isso: ArrayList<String> arquer = new ArrayList<String>(); Para: public static ArrayList<String> arquer = new ArrayList<String>(); Dps me diz se funcionou ^^ Sim funcionou eu provavelmente vou precisar de ajuda futuramente, porém eu nao acredito que so faltava isso ._. me sinto triste e frustado kkk Link para o comentário Compartilhar em outros sites More sharing options...
Trow_Games Postado Janeiro 4, 2019 Denunciar Compartilhar Postado Janeiro 4, 2019 4 minutos atrás, Nevidomyy disse: Sim funcionou eu provavelmente vou precisar de ajuda futuramente, porém eu nao acredito que so faltava isso ._. me sinto triste e frustado kkk Opa, que bom que funcionou!! Sim, faltava só isso kkk Relaxa, quem tá aprendendo é assim mesmo... Tô desenvolvendo um e-book para ensinar meus clientes/interessados a como desenvolver seus próprios plugins ou então melhorar os que já tem. Foi bom ver sua dúvida hehe 1 ponto a mais pra eu recordar ^^ E, sentir-se frustrado e triste, é MEGA normal. Só não deixa isso tirar de você o desejo de aprender e a vontade de fazer. ? Feliz 2019, que tu tenha muito sucesso. Link para o comentário Compartilhar em outros sites More sharing options...
AlissonLopes Postado Janeiro 4, 2019 Denunciar Compartilhar Postado Janeiro 4, 2019 14 horas atrás, FortniteProperty disse: package Classes; import java.util.ArrayList; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Arqueiro implements Listener, CommandExecutor{ ArrayList<String> arquer = new ArrayList<String>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] arg3) { if(!(sender instanceof Player))return true; Player p = (Player)sender; if (cmd.getName().equalsIgnoreCase("arqueiro")) { p.sendMessage("§f§l[§c§l!§f§l]§a§lVoce escolheu a classe ARQUEIRO!"); arquer.add(sender.getName()); } return false; } @EventHandler public void Skill1 (PlayerInteractEvent e) { Player p = e.getPlayer(); if (p.getItemInHand().getType() == Material.ARROW) { if (e.getAction() == Action.LEFT_CLICK_AIR) { if (arquer.contains(p.getName())) { p.sendMessage("aaaa"); } } } } } eu refiz algumas coisas pra diminuir as linhas de código, mas testa agora, qualquer problema me avise que estarei ajudando. putz esqueci, se tu for criar arraylist sem "public", ela tem que ficar dentro do codigo Link para o comentário Compartilhar em outros sites More sharing options...
AnthBrian Postado Março 30, 2019 Denunciar Compartilhar Postado Março 30, 2019 Seu tópico está sendo avisado de Inatividade. Caso não haja respostas em 7 dias, ele será fechado. Link para o comentário Compartilhar em outros sites More sharing options...
CarlosFG Postado Abril 7, 2019 Denunciar Compartilhar Postado Abril 7, 2019 Seu tópico foi marcado como Inativo. Para reverter está ação, entre em contato com a equipe de Moderação. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados