FelipeDye Postado Agosto 28, 2017 Denunciar Compartilhar Postado Agosto 28, 2017 Bom, um amigo meu chamado Luccas me fez um plugin de cooldown, porém não está funcionando o sistema de cooldown de 24h, alguem poderia me ajudar? Resolvendo o problema? SRC: https://www.dropbox.com/s/wjxfsdyastds9g1/LuccasRECOMPENSA.zip?dl=0 Print Quando dou /recompensa: http://prntscr.com/gdlvvx Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Agosto 28, 2017 Denunciar Compartilhar Postado Agosto 28, 2017 (editado) Acabei de decompilar aqui e.. @Override public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(" §cVoce Não é um player!"); return true; } Player p = (Player)sender; p.sendMessage(""); p.sendMessage("§a§l RECOMPENSA"); p.sendMessage(""); p.sendMessage("§a* §7Você pegou uma recompensa!"); p.sendMessage("§a* §7Tempo pra pegar novamente: " + CooldownAPI.haveCooldown); p.sendMessage(""); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "crates give " + p.getName() + " básica 1"); return false; } public static HashMap<String, Integer> haveCooldown = new HashMap<String, Integer>(); // Digite o cooldown em minutos public static void addCooldown(String name, int cooldown) { // Caso queira remove o sistema de minutos coloque no lugar de: cooldown // * 160; apenas: cooldown // E sera em segundos! int realcooldown = cooldown * 160; haveCooldown.put(name, realcooldown); while (realcooldown > 0) { realcooldown--; } if (realcooldown == 0) { haveCooldown.remove(name); } } public static boolean inCooldown(String name) { return haveCooldown.containsKey(name); } public static void removeCooldown(String name) { haveCooldown.remove(name); } Isso me deu vontade de rir. 1º que você nunca adiciona cooldown nele, ele criou um comand que manda msg e executa um /crates give.. não adiciona cooldown nenhum. 2º memso que adicionasse cooldown, o cooldown seria removido em 1 nanosegundo .-. int realcooldown = cooldown * 160; haveCooldown.put(name, realcooldown); while (realcooldown > 0) { realcooldown--; } if (realcooldown == 0) { haveCooldown.remove(name); } Não sei quem fez isso dae, mas deve pensar que o java é lerdo e só é "executado" a cada segundo slá, nem sei o que deu para colocar o * 160 lá.. mesmo que colocasse cooldown de 1 dia, ele terminaria em menos de 1 segundo. 3º que ele nem salva em lugar nenhum.. dá /rl que já era @Edit Cooldown é o que é mais pedido nesse forum, só precisa isso @Override public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(" §cVoce Não é um player!"); return true; } Player p = (Player)sender; if(!p.hasPermission("plugin.bypass")) { Long delay = TimeUnit.MINUTES.toMillis(5); // 5 minutos if (cooldown.keySet().contains(p.getName().toLowerCase())) { if (cooldown.get(p.getName().toLowerCase()) > System.currentTimeMillis()) { p.sendMessage("Está em cooldown, aguarde " TimeUnit.MILLIS.toMinutes(cooldown.get(p.getName().toLowerCase()) - System.currentTimeMillis())); return; } cooldown.put(p.getName().toLowerCase(), System.currentTimeMillis() + delay); } cooldown.put(p.getName().toLowerCase(), System.currentTimeMillis() + delay); } p.sendMessage(""); p.sendMessage("§a§l RECOMPENSA"); p.sendMessage(""); p.sendMessage("§a§l §7Você pegou uma recompensa!"); p.sendMessage(""); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "crates give " + p.getName() + " básica 1"); return false; } private HashMap<String, Long> cooldown = new HashMap<>(); E algo para salvar a hashmap em algum lugar. Editado Agosto 28, 2017 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
VictorHeaven Postado Agosto 28, 2017 Denunciar Compartilhar Postado Agosto 28, 2017 O salvamento deste plugin é em flat file? se for, e queira eu faço um para você Link para o comentário Compartilhar em outros sites More sharing options...
FelipeDye Postado Agosto 28, 2017 Autor Denunciar Compartilhar Postado Agosto 28, 2017 O salvamento deste plugin é em flat file? se for, e queira eu faço um para você Pra quem disse que não sabia ne, srsrs @Topic Claro, quando terminar me mande MP. Link para o comentário Compartilhar em outros sites More sharing options...
FelipeDye Postado Agosto 28, 2017 Autor Denunciar Compartilhar Postado Agosto 28, 2017 Acabei de decompilar aqui e.. @Override public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(" §cVoce Não é um player!"); return true; } Player p = (Player)sender; p.sendMessage(""); p.sendMessage("§a§l RECOMPENSA"); p.sendMessage(""); p.sendMessage("§a* §7Você pegou uma recompensa!"); p.sendMessage("§a* §7Tempo pra pegar novamente: " + CooldownAPI.haveCooldown); p.sendMessage(""); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "crates give " + p.getName() + " básica 1"); return false; } public static HashMap<String, Integer> haveCooldown = new HashMap<String, Integer>(); // Digite o cooldown em minutos public static void addCooldown(String name, int cooldown) { // Caso queira remove o sistema de minutos coloque no lugar de: cooldown // * 160; apenas: cooldown // E sera em segundos! int realcooldown = cooldown * 160; haveCooldown.put(name, realcooldown); while (realcooldown > 0) { realcooldown--; } if (realcooldown == 0) { haveCooldown.remove(name); } } public static boolean inCooldown(String name) { return haveCooldown.containsKey(name); } public static void removeCooldown(String name) { haveCooldown.remove(name); } Isso me deu vontade de rir. 1º que você nunca adiciona cooldown nele, ele criou um comand que manda msg e executa um /crates give.. não adiciona cooldown nenhum. 2º memso que adicionasse cooldown, o cooldown seria removido em 1 nanosegundo .-. int realcooldown = cooldown * 160; haveCooldown.put(name, realcooldown); while (realcooldown > 0) { realcooldown--; } if (realcooldown == 0) { haveCooldown.remove(name); } Não sei quem fez isso dae, mas deve pensar que o java é lerdo e só é "executado" a cada segundo slá, nem sei o que deu para colocar o * 160 lá.. mesmo que colocasse cooldown de 1 dia, ele terminaria em menos de 1 segundo. 3º que ele nem salva em lugar nenhum.. dá /rl que já era @Edit Cooldown é o que é mais pedido nesse forum, só precisa isso @Override public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(" §cVoce Não é um player!"); return true; } Player p = (Player)sender; if(!p.hasPermission("plugin.bypass")) { Long delay = TimeUnit.MINUTES.toMillis(5); // 5 minutos if (cooldown.keySet().contains(p.getName().toLowerCase())) { if (cooldown.get(p.getName().toLowerCase()) > System.currentTimeMillis()) { p.sendMessage("Está em cooldown, aguarde " TimeUnit.MILLIS.toMinutes(cooldown.get(p.getName().toLowerCase()) - System.currentTimeMillis())); return; } cooldown.put(p.getName().toLowerCase(), System.currentTimeMillis() + delay); } cooldown.put(p.getName().toLowerCase(), System.currentTimeMillis() + delay); } p.sendMessage(""); p.sendMessage("§a§l RECOMPENSA"); p.sendMessage(""); p.sendMessage("§a§l §7Você pegou uma recompensa!"); p.sendMessage(""); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "crates give " + p.getName() + " básica 1"); return false; } private HashMap<String, Long> cooldown = new HashMap<>(); E algo para salvar a hashmap em algum lugar. Obrigado mano, se é foda... rsrsr Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Agosto 28, 2017 Denunciar Compartilhar Postado Agosto 28, 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
FelipeDye
Bom, um amigo meu chamado Luccas me fez um plugin de cooldown, porém não está funcionando o sistema de cooldown de 24h, alguem poderia me ajudar? Resolvendo o problema?
SRC:
https://www.dropbox.com/s/wjxfsdyastds9g1/LuccasRECOMPENSA.zip?dl=0
Print Quando dou /recompensa:
http://prntscr.com/gdlvvx
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados