Removing someone from an Array List

Discussion in 'Plugin Development' started by Brett Basinger, Apr 1, 2014.

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

    Brett Basinger

    I have this major problem, I am making this kitpvp plugin and right now I am focusing on this kit called reaper. This kit gives a diamond sword the power of giving its victim wither for 5 seconds. BUT I cannot figure out how to remove he/she off the array list after they die, thus having wither on the sword even if they dont have the kit. Could some help?


    Here is the listener
    Code:java
    1. @EventHandler
    2. public void OnClick(EntityDamageByEntityEvent e)
    3. {
    4. if(e.getEntity() instanceof Player && e.getDamager() instanceof Player){
    5. Player damager = (Player)e.getDamager();
    6. Player victim = (Player)e.getEntity();
    7. if(plugin.reaper.contains(damager.getName())){
    8. plugin.reaper.add(damager.getName());
    9. if(damager.getInventory().getItemInHand().getType() == Material.DIAMOND_SWORD){
    10. victim.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 100, 0));


    Here is my Command Executor
    Code:java
    1. @Override
    2. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    3. Player player = (Player) sender;
    4. if(plugin.used.contains(player.getName())){
    5. player.sendMessage(ChatColor.GREEN + "Forsaken" + ChatColor.WHITE + "Kits" + ChatColor.GRAY + "-" + ChatColor.DARK_RED + "You Already Have A Kit. Go Fight And Then Die");
    6. return true;
    7. }
    8.  
    9. if(commandLabel.equalsIgnoreCase("reaper")){
    10. if(player.hasPermission("kits.default")){
    11. plugin.clear.remove(player.getName());
    12. plugin.reaper.add(player.getName());
    13. player.getInventory().clear();
    14. ItemStack pvpsword = new ItemStack(Material.DIAMOND_SWORD, 1);
    15. ItemMeta im = pvpsword.getItemMeta();
    16. im.addEnchant(Enchantment.DAMAGE_ALL, 3, true);
    17. player.getInventory().addItem(pvpsword);
    18. player.sendMessage(ChatColor.GREEN + "Forsaken" + ChatColor.WHITE + "Kits" + ChatColor.GRAY + "-" + ChatColor.AQUA + "You Have Chosen Kit Reaper");
    19. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    20. ItemMeta sp = soup.getItemMeta();
    21. sp.setDisplayName(ChatColor.DARK_PURPLE + "Soup");
    22. player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1));
    23. player.getInventory().addItem(new ItemStack(Material.DIAMOND_HOE));
    24. player.getInventory().addItem(soup);
    25. player.getInventory().addItem(soup);
    26. player.getInventory().addItem(soup);
    27. player.getInventory().addItem(soup);
    28. player.getInventory().addItem(soup);
    29. player.getInventory().addItem(soup);
    30. player.getInventory().addItem(soup);
    31. player.getInventory().addItem(soup);
    32. player.getInventory().addItem(soup);
    33. player.getInventory().addItem(soup);
    34. player.getInventory().addItem(soup);
    35. player.getInventory().addItem(soup);
    36. player.getInventory().addItem(soup);
    37. player.getInventory().addItem(soup);
    38. player.getInventory().addItem(soup);
    39. player.getInventory().addItem(soup);
    40. player.getInventory().addItem(soup);
    41. player.getInventory().addItem(soup);
    42. player.getInventory().addItem(soup);
    43. player.getInventory().addItem(soup);
    44. player.getInventory().addItem(soup);
    45. player.getInventory().addItem(soup);
    46. player.getInventory().addItem(soup);
    47. player.getInventory().addItem(soup);
    48. player.getInventory().addItem(soup);
    49. player.getInventory().addItem(soup);
    50. player.getInventory().addItem(soup);
    51. player.getInventory().addItem(soup);
    52. player.getInventory().addItem(soup);
    53. player.getInventory().addItem(soup);
    54. player.getInventory().addItem(soup);
    55. player.getInventory().addItem(soup);
    56. }
    57. }
    58. return false;
    59. }
    60. }
    61.  
     
  2. Offline

    DrTURTLE2

    PlayerDeathEvent
     
  3. Brett Basinger
    all those addItem()'s gave me a heart attack

    Code:java
    1. for (int i = 0; i < yourAmount; i++)
    2. player.getInventory().addItem(soup);


    As for removing them from the list, refer to DrTURTLE2 's suggestion.
     
  4. Offline

    MooshViolet

    To remove someone from an arraylist, do this:
    Code:java
    1. @EventHandler
    2. public void onPlayerDeath(PlayerDeathEvent e){
    3. Player p = e.getPlayer();
    4. reaper.remove(p.getName());
    5. //"Reaper" is your arraylist name.
    6. //Obviously the getName will have to be depricated because of the new uuid system and how people can change them, but if you want to use UUID to prevent further breakage, there are many topics about it.

    What this is doing is creating an event handler stating if a player died, get the player, and remove them from the arraylist.

    And if you haven't created the arraylist yet:
    Code:java
    1. public ArrayList<String> reaper = new ArrayList<String>();

    This code just stores player names in the arraylists as strings.
    And as always, if you need any help with this code, just tahg me and I will figure it out.
     
Thread Status:
Not open for further replies.

Share This Page