yemiefi Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 Bom, parei de programar tem alguns anos... Voltei agora querendo aprender Python entre outras e estou dando uma treinada no raciocínio com o Java/Plugin de Minecraft. Fiz um plugin de /luz, estava dando vários erros então kibei um pouco do System do RUSH, no Eclipse não dá erro, já in-game quando uso o comando aparece no chat o comando, provavelmente é problema com return, mas não sei mexer com esse troço até hoje!!! Se alguém puder dar uma olhada no código pra me ajudar, ficarei muito grato! LINK: https://github.com/emiefi/kMFLuz/tree/master/kMFLuzGUI/src/br/com/emiefi/kmfluzgui Link para o comentário Compartilhar em outros sites More sharing options...
rubenlousada11 Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 50 minutos atrás, yemiefi disse: Bom, parei de programar tem alguns anos... Voltei agora querendo aprender Python entre outras e estou dando uma treinada no raciocínio com o Java/Plugin de Minecraft. Fiz um plugin de /luz, estava dando vários erros então kibei um pouco do System do RUSH, no Eclipse não dá erro, já in-game quando uso o comando aparece no chat o comando, provavelmente é problema com return, mas não sei mexer com esse troço até hoje!!! Se alguém puder dar uma olhada no código pra me ajudar, ficarei muito grato! LINK: https://github.com/emiefi/kMFLuz/tree/master/kMFLuzGUI/src/br/com/emiefi/kmfluzgui Tem que por um returnno segundo e terceiro if Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 18, 2020 Autor Denunciar Compartilhar Postado Julho 18, 2020 (editado) 2 horas atrás, rubenlousada11 disse: Tem que por um returnno segundo e terceiro if @rubenlousada11 tentei e não foi. Continuou no mesmo erro... EDIT: Os 3 "/stop" que dei, foi 3 tentativas de colocar return em if's diferentes... Sou muito leigo em questão de return, perdão. Editado Julho 18, 2020 por yemiefi Link para o comentário Compartilhar em outros sites More sharing options...
Álison👌 Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 public boolean onCommand(CommandSender s, Command cmd, String lbl, String[] args) { if(cmd.getName().equalsIgnoreCase("luz")) { if(!s.hasPermission("kmfluzgui.usar")) { s.sendMessage("§2* §cVocê não possui permissão para usar este comando!"); return true; } Player p = (Player) s; if(!(p instanceof Player)) { s.sendMessage("Você deve estar in-game para executar este comando!"); return true; } if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); } else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); } } return false; } creio que assim funcione Link para o comentário Compartilhar em outros sites More sharing options...
GuiguiloDeadly Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 34 minutos atrás, Álison? disse: public boolean onCommand(CommandSender s, Command cmd, String lbl, String[] args) { if(cmd.getName().equalsIgnoreCase("luz")) { if(!s.hasPermission("kmfluzgui.usar")) { s.sendMessage("§2* §cVocê não possui permissão para usar este comando!"); return true; } Player p = (Player) s; if(!(p instanceof Player)) { s.sendMessage("Você deve estar in-game para executar este comando!"); return true; } if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); } else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); } } return false; } creio que assim funcione p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 10000, 50), true); Se não me engano é assim Link para o comentário Compartilhar em outros sites More sharing options...
Ygor Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 @Override public boolean onCommand(CommandSender s, Command cmd, String lbl, String[] args) { if(cmd.getName().equalsIgnoreCase("luz")) { if(!s.hasPermission("kmfluzgui.usar")) { s.sendMessage("§2* §cVocê não possui permissão para usar este comando!"); return true; } if(!(s instanceof Player)) { s.sendMessage("Você deve estar in-game para executar este comando!"); return true; } Player p = (Player) s; if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); }else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); } } return false; } Este é o código Outra coisa, checa se o CommandSender é uma instância de jogador antes de atribuir o cast Player para uma variável Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 18, 2020 Autor Denunciar Compartilhar Postado Julho 18, 2020 8 horas atrás, Álison? disse: public boolean onCommand(CommandSender s, Command cmd, String lbl, String[] args) { if(cmd.getName().equalsIgnoreCase("luz")) { if(!s.hasPermission("kmfluzgui.usar")) { s.sendMessage("§2* §cVocê não possui permissão para usar este comando!"); return true; } Player p = (Player) s; if(!(p instanceof Player)) { s.sendMessage("Você deve estar in-game para executar este comando!"); return true; } if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); } else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); } } return false; } creio que assim funcione Pior que não funcionou, continuou com o mesmo problema... Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 18, 2020 Autor Denunciar Compartilhar Postado Julho 18, 2020 (editado) 4 horas atrás, Ygor disse: @Override public boolean onCommand(CommandSender s, Command cmd, String lbl, String[] args) { if(cmd.getName().equalsIgnoreCase("luz")) { if(!s.hasPermission("kmfluzgui.usar")) { s.sendMessage("§2* §cVocê não possui permissão para usar este comando!"); return true; } if(!(s instanceof Player)) { s.sendMessage("Você deve estar in-game para executar este comando!"); return true; } Player p = (Player) s; if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); }else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); } } return false; } Este é o código Outra coisa, checa se o CommandSender é uma instância de jogador antes de atribuir o cast Player para uma variável Valeu pela dica, irei usá-la a partir de agora. E essa seria a solução pro meu problema? Editado Julho 18, 2020 por yemiefi Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 18, 2020 Autor Denunciar Compartilhar Postado Julho 18, 2020 9 horas atrás, GuiguiloDeadly disse: p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 10000, 50), true); Se não me engano é assim Valeu! Agora só falta solucionar o erro de retorno '-' Link para o comentário Compartilhar em outros sites More sharing options...
RafaCarvalho Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 (editado) Tentarei dar uma explicada sobre os retornos. Basicamente, quando entra no onCommand, o sistema do bukkit fica esperando você retornar se o jogador colocou o comando corretamente ou não. Sendo assim, quando você da "return false" significa que o jogador não colocou o comando corretamente, então o bukkit envia a mensagem configurada em "usage" no seu plugin.yml, como se ele dissesse "ei, você não fez direito, usa o comando dessa maneira aqui:". Ja quando da um return true, é entendido pelo bukkit que o player usou corretamente, finalizando as aplicações, uma vez que ja foi executado de maneira correta. No seu codigo, quando você remove ou adiciona os efeitos (o ultimo if/else) você tem que dar return true, para o servidor entender que funcionou, caso contrario ele cairá no ultimo return false, e pois isso manda o usage ("/luz") Codigo: if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); return true; }else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); return true; } Editado Julho 18, 2020 por RafaCarvalho Usei citar ao invés de codigo 1 Link para o comentário Compartilhar em outros sites More sharing options...
rubenlousada11 Postado Julho 18, 2020 Denunciar Compartilhar Postado Julho 18, 2020 11 horas atrás, yemiefi disse: @rubenlousada11 tentei e não foi. Continuou no mesmo erro... EDIT: Os 3 "/stop" que dei, foi 3 tentativas de colocar return em if's diferentes... Sou muito leigo em questão de return, perdão. se tu executar outro comando, ele também aparece no chat? Link para o comentário Compartilhar em outros sites More sharing options...
Naghtrion Postado Julho 19, 2020 Denunciar Compartilhar Postado Julho 19, 2020 vc não registrou o comando na main (https://github.com/emiefi/kMFLuz/blob/master/kMFLuzGUI/src/br/com/emiefi/kmfluzgui/main.java) public void onEnable() { this.getCommand("luz").setExecutor(new command()); ConsoleCommandSender b = Bukkit.getConsoleSender(); b.sendMessage("§a[kMFLuzGUI] Plugin ativado com êxito!"); b.sendMessage("§a[kMFLuzGUI] Criado por yemiefi §fGamersBoard§a!"); } Link para o comentário Compartilhar em outros sites More sharing options...
GuiguiloDeadly Postado Julho 19, 2020 Denunciar Compartilhar Postado Julho 19, 2020 Em 18/07/2020 em 06:16, yemiefi disse: Bom, parei de programar tem alguns anos... Voltei agora querendo aprender Python entre outras e estou dando uma treinada no raciocínio com o Java/Plugin de Minecraft. Fiz um plugin de /luz, estava dando vários erros então kibei um pouco do System do RUSH, no Eclipse não dá erro, já in-game quando uso o comando aparece no chat o comando, provavelmente é problema com return, mas não sei mexer com esse troço até hoje!!! Se alguém puder dar uma olhada no código pra me ajudar, ficarei muito grato! LINK: https://github.com/emiefi/kMFLuz/tree/master/kMFLuzGUI/src/br/com/emiefi/kmfluzgui No ultimo return, bote return true; em vez de return false; Creio que assim irá funcionar, e registre o comando na main assim: this.getCommand("luz").setExecutor(new command()); Como o @Naghtrion mandou 1 Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 19, 2020 Autor Denunciar Compartilhar Postado Julho 19, 2020 21 horas atrás, RafaCarvalho disse: Tentarei dar uma explicada sobre os retornos. Basicamente, quando entra no onCommand, o sistema do bukkit fica esperando você retornar se o jogador colocou o comando corretamente ou não. Sendo assim, quando você da "return false" significa que o jogador não colocou o comando corretamente, então o bukkit envia a mensagem configurada em "usage" no seu plugin.yml, como se ele dissesse "ei, você não fez direito, usa o comando dessa maneira aqui:". Ja quando da um return true, é entendido pelo bukkit que o player usou corretamente, finalizando as aplicações, uma vez que ja foi executado de maneira correta. No seu codigo, quando você remove ou adiciona os efeitos (o ultimo if/else) você tem que dar return true, para o servidor entender que funcionou, caso contrario ele cairá no ultimo return false, e pois isso manda o usage ("/luz") Codigo: if(p.hasPotionEffect(PotionEffectType.NIGHT_VISION)){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.sendMessage("§2* §aLuz apagada com êxito."); return true; }else { p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 50), true); p.sendMessage("§2* §aLuz ligada com êxito!"); return true; } Agora entendi o retorno! Meu Deus, pensei que nunca ia compreender essa parada kkkkk Ajudou muito cara! 20 horas atrás, Naghtrion disse: vc não registrou o comando na main (https://github.com/emiefi/kMFLuz/blob/master/kMFLuzGUI/src/br/com/emiefi/kmfluzgui/main.java) public void onEnable() { this.getCommand("luz").setExecutor(new command()); ConsoleCommandSender b = Bukkit.getConsoleSender(); b.sendMessage("§a[kMFLuzGUI] Plugin ativado com êxito!"); b.sendMessage("§a[kMFLuzGUI] Criado por yemiefi §fGamersBoard§a!"); } Na real isso foi um teste que eu estava fazendo e acabei não corrigindo na hora de postar o código no Git porque estava sem paciência kkkkkk, mas valeu! 1 Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 19, 2020 Autor Denunciar Compartilhar Postado Julho 19, 2020 Tópico resolvido, podem fechar! Em breve postarei o plugin de /luz em GUI kkkkk Link para o comentário Compartilhar em outros sites More sharing options...
Marsh, o Lendário Postado Julho 19, 2020 Denunciar Compartilhar Postado Julho 19, 2020 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...
Posts Recomendados