Nevidomyy Postado Janeiro 5, 2019 Denunciar Compartilhar Postado Janeiro 5, 2019 (editado) Olá novamente, kk, então eu estou tentando colocar um cooldown em um código que fiz, todos os tutoriais que eu encontrei faziam com scheduler então fui tentar fazer igual, porém quando escrevi os códigos deu um erro na parte scheduleSyncDelayedTask, quando passei o mouse em cima tinha 3 opções para resolver o erro, implementar Plugin, quando implementei deu outro erro que so deu pra resolver criando varias coisas na classe, então descartei essa poção, outra forma de resolver foi colocando (Plugin) antes de this, deste jeito Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin) this,new Runnable() {, porém quando faço isso o cooldown n funciona, se alguém souber uma forma de me ajudar, to precisando muito por que já re-fiz varias vezes esse código e sempre da o mesmo erro. Citar public static ArrayList<String> cold = new ArrayList<String>(); @EventHandler public void Habilidade2 (PlayerInteractEvent e) { Player p = e.getPlayer(); if (p.getItemInHand().getType() == Material.BOW) { if (p.getInventory().contains(Material.FIREWORK_CHARGE)) { if (e.getAction() == Action.LEFT_CLICK_AIR) { if (p.isSneaking()) { if (arquer.contains(p.getName())) { if (!(cold.contains(p.getName()))) { p.setVelocity(p.getLocation().getDirection().multiply(+1)); p.playSound(p.getLocation(), Sound.BLOCK_STONE_HIT, 10, 1); p.playEffect(p.getLocation().add(+1, 0, 0), Effect.CLOUD, 20); p.playEffect(p.getLocation().add(-1, 0, 0), Effect.CLOUD, 20); p.playEffect(p.getLocation().add(0, 0, +1), Effect.CLOUD, 20); p.playEffect(p.getLocation().add(0, 0, -1), Effect.CLOUD, 20); p.getInventory().removeItem(new ItemStack(Material.FIREWORK_CHARGE)); cold.add(p.getName()); Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin) this,new Runnable() { public void run() { cold.remove(p.getName()); p.sendMessage("§aVocê pode usar o Salto Foguete agora!"); } }, 5 * 20); } else { p.sendMessage("§cVocê esta cansado para usar essa habilidade!"); } } } } } } Editado Janeiro 5, 2019 por Nevidomyy Link para o comentário Compartilhar em outros sites More sharing options...
FelipinhoSS Postado Janeiro 6, 2019 Denunciar Compartilhar Postado Janeiro 6, 2019 (editado) Creio que o erro está acontecendo por que esse "this" tem que ser a main do seu plugin, e você está declarando this para sua classe atual. Tenta criar uma extensão da sua main(não sei se é uma extensão necessariamente.) mas tipo faz coloca isso na sua main: public static Main plugin; Depois vc coloca dentro do onenable isso: plugin = this; declarando o plugin para a classe atual, no caso a main. Então em Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin) this,new Runnable() { vc coloca 'Main.plugin' no lugar de '(Plugin) this'. (Lembrando que o nome main no 'public static Main plugin;' tem que o nome da sua classe. Se sua classe for Principalteria que ser 'public static Principal plugin;' Se não entendeu chama ai ? Editado Janeiro 6, 2019 por FelipinhoLindo 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