Posted May 26, 20205 yr Hi, i'm trying to implement a cooldown for an ability, and i found that every second a tick event is called 20 times. Here is my actual code: Decreasing the cooldown @SubscribeEvent public static void onSonarCooldown(TickEvent.PlayerTickEvent event) { PlayerEntity player = event.player; ISonarData data = player.getCapability(EntitySonarDataHandler.CAPABILITY_SONAR_DATA).orElse(null); if(data != null) { if(data.getCooldown() > 0) { data.setCooldown(data.getCooldown() - 1); } } } Setting the cooldown data.setCooldown(10 * 20); But the cooldown isn't 10sec but less. How can i implement it better? Edited May 26, 20205 yr by ArcaneDiver
May 26, 20205 yr 1 minute ago, ArcaneDiver said: But the cooldown isn't 10sec but less. Well, how long is it? How do you know? Also, the tick events usually have a Phase (START and END) as well as occasionally sub-events (Pre and Post) so if you don't pick one, your code runs more than once per tick. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.