Event Cooldown Help

Discussion in 'Plugin Development' started by GizmoRay, Oct 20, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    GizmoRay

    Hello lovely Bukkiteers,
    I'm creating a plugin that teleports users to the location of an arrow hit event, I'm trying to create a cooldown period for the event so that it cannot be spammed. How would one efficiently create such a thing? Here's the one method that I tried:

    Code:
    public HashMap<String, Long> cooldowns = new HashMap<String, Long>();
    .
    .
    .
    if(cooldowns.containsKey(((Player) event.getEntity().getShooter()).getName())){
                      long secondsLeft = ((cooldowns.get(((HumanEntity) event.getEntity().getShooter()).getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
                          if(secondsLeft>0) {
                              ((Player) event.getEntity().getShooter()).sendMessage(ChatColor.GRAY + "Still cooling down. Seconds left: " + secondsLeft + " seconds.");
                              return;
                          }
                          cooldowns.put(((HumanEntity) event.getEntity().getShooter()).getName(), System.currentTimeMillis());
                          event.getEntity().getShooter().teleport(proj);
                        event.getEntity().getWorld().playEffect(event.getEntity().getShooter().getLocation(), Effect.SMOKE, 900);
                        int  test = ((Player) event.getEntity().getShooter()).getFoodLevel();
                        test = test-1;
                        ((Player) event.getEntity().getShooter()).setFoodLevel(test);
                                ((HumanEntity) event.getEntity().getShooter()).getItemInHand().setAmount(((HumanEntity) event.getEntity().getShooter()).getItemInHand().getAmount() - 10); 
                          }
                    }
    Thank you!
     
  2. Offline

    GizmoRay

  3. Offline

    Georgeto

    Does your method work or not?
     
  4. Offline

    GizmoRay

    Nope. That's why I'm asking here, doesn't do anything, at the moment.

    Thanks!
     
Thread Status:
Not open for further replies.

Share This Page