Problem with Kit Ability

Discussion in 'Plugin Development' started by VinexAx789, Dec 15, 2015.

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

    VinexAx789

    What the kit abilities should do:
    Rewind does this: Right-click your clock to rewind to where you were 30 seconds ago (30 second cooldown).
    Warper does this: Can warp enemies to where the warper was standing 10 seconds ago, 30 sec cooldown.

    Whats the issue:
    The issue is with both the kits instead of teleporting back 30 seconds/10 seconds it teleports you back to one spot everytime it's not like updating...

    Code:
    Warper:

    Code:
    HashMap<Player, Integer> warperCooldown = new HashMap<Player, Integer>();
        HashMap<Player, BukkitRunnable> warperTask = new HashMap<Player, BukkitRunnable>();
    
        @EventHandler
        public void useWarper(PlayerInteractEntityEvent event) {
            final Player player = event.getPlayer();
            if (plugin.kitselected.get(player).equals("warper")) {
                if (player.getInventory().getItemInHand() != null) {
                    if (!(event.getRightClicked() instanceof Player))
                        return;
                    Player clicked = (Player) event.getRightClicked();
    
                    if (warperCooldown.containsKey(player)) {
                        if (warperCooldown.get(player) <= 30) {
                            player.sendMessage(ChatColor.RED + "" + ChatColor.BOLD
                                    + "You must wait " + warperCooldown.get(player)
                                    + " seconds before using that skill");
                        }
    
                    } else {
                        if (player.getInventory().getItemInHand().getType() == Material.BLAZE_ROD) {
                            if (plugin.getPlayersTeam(player) != plugin
                                    .getPlayersTeam(clicked)) {
                                player.sendMessage(ChatColor.RED + "Warped "
                                        + ChatColor.YELLOW + clicked.getName());
                                player.playSound(player.getLocation(),
                                        Sound.ENDERMAN_TELEPORT, 1, 1);
                                clicked.sendMessage(ChatColor.RED + "Warped By: "
                                        + ChatColor.YELLOW + player.getName());
                                clicked.playSound(clicked.getLocation(),
                                        Sound.ENDERMAN_TELEPORT, 1, 1);
                                clicked.teleport((Location) plugin.warperLocations
                                        .get(player).get(10));
    
                                warperCooldown.put(player, 30);
                                warperTask.put(player, new BukkitRunnable() {
    
                                    public void run() {
                                        int sec = warperCooldown.get(player);
                                        warperCooldown.put(player, sec -= 1);
                                        if (warperCooldown.get(player) == 0) {
                                            warperTask.remove(player);
                                            warperCooldown.remove(player);
                                            cancel();
                                        }
                                    }
    
                                });
                                warperTask.get(player).runTaskTimer(plugin, 20, 20);
    
                            }
                        }
                    }
                }
            }
        }
    }
    
    // Here's the startWarper();
    public HashMap<Player, ArrayList<Location>> warperLocations = new HashMap<Player, ArrayList<Location>>();
    
        public void startWarper() {
            Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
                public void run() {
                    for (Player player : kitselected.keySet()) {
                        if (kitselected.containsKey(player)) {
                            if (kitselected.get(player).equals("warper")) {
                                ArrayList<Location> current = warperLocations
                                        .get(player);
                                if (current == null) {
                                    current = new ArrayList<Location>();
                                }
                                current.add(player.getLocation());
                                if (current.size() > 14) {
                                    current.remove(0);
                                }
                                warperLocations.put(player, current);
                            }
                        }
                    }
                }
            }, 0, 600);
        }
    Rewind
    Code:
    public void startRewind() {
            for (Player player : kitselected.keySet()) {
                if (kitselected.get(player).equals("rewind")) {
                    ArrayList<Location> locs = new ArrayList<Location>();
                    locs.add(player.getLocation());
                    rewind.put(player, locs);
                }
            }
    
            Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
    
                public void run() {
                    for (Player player : rewind.keySet()) {
                        if (kitselected.get(player).equals("rewind")) {
                            if (rewind.get(player).size() == 15) {
                                ArrayList<Location> locs = rewind.get(player);
                                locs.remove(0);
                                locs.add(player.getLocation());
                                rewind.put(player, locs);
                            } else {
                                ArrayList<Location> locs = rewind.get(player);
                                locs.add(player.getLocation());
                                rewind.put(player, locs);
                            }
                        }
                    }
                }
    
            }, 0, 600);
        }
    
    @EventHandler
        public void useRewind(PlayerInteractEvent event) {
            final Player player = event.getPlayer();
    
            if (event.getAction() == Action.RIGHT_CLICK_BLOCK
                    || event.getAction() == Action.RIGHT_CLICK_AIR) {
    
                if (event.getItem() != null) {
                    if (event.getItem().hasItemMeta()) {
                        if (event.getItem().getType() == Material.WATCH) {
                            if (rewindTiempo.containsKey(player)) {
                                if (rewindTiempo.get(player) <= 30) {
                                    player.sendMessage(ChatColor.RED + ""
                                            + ChatColor.BOLD + "You must wait "
                                            + rewindTiempo.get(player)
                                            + " seconds before using that skill");
                                }
    
                            } else {
    
                                // What to do
                                player.teleport((Location) rewind.get(player)
                                        .get(0));
    
                                rewindTiempo.put(player, 30);
                                rewindTask.put(player, new BukkitRunnable() {
    
                                    public void run() {
                                        int sec = rewindTiempo.get(player);
                                        rewindTiempo.put(player, sec -= 1);
                                        if (rewindTiempo.get(player) == 0) {
                                            rewindTask.remove(player);
                                            rewindTiempo.remove(player);
                                            cancel();
                                        }
                                    }
    
                                });
                                rewindTask.get(player).runTaskTimer(this, 20, 20);
    
                            }
                        }
                    }
                }
            }
    
        }





    Any help with this?
     
    Last edited: Dec 16, 2015
  2. Offline

    VinexAx789

    24 Hour Bump
     
  3. Offline

    mcdorli

    errors?
     
  4. Offline

    VinexAx789

    None. That I see.
     
Thread Status:
Not open for further replies.

Share This Page