Solved Turtle Kit Help

Discussion in 'Plugin Development' started by Dead_Skeleton, Sep 28, 2013.

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

    Dead_Skeleton

    Hey, I'm making a turtle kit in my KitPvP Plugin. I've made it so that when you are a turtle, when you crouch, you take only half a heart of damage. I also (TRIED) to make it so that when you are crouching as a turtle, you cannot attack other players, but they can attack you. The environment and player damages work when you crouch. It's just that when you crouch, you can still attack people. Here's the code:

    Code:java
    1. package me.Dead_Skeleton.kits;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Color;
    7. import org.bukkit.Material;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandExecutor;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Entity;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.event.EventHandler;
    14. import org.bukkit.event.Listener;
    15. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    16. import org.bukkit.event.entity.EntityDamageEvent;
    17. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    18. import org.bukkit.inventory.ItemStack;
    19. import org.bukkit.inventory.meta.LeatherArmorMeta;
    20.  
    21. public class Turtle implements CommandExecutor, Listener {
    22.  
    23. @SuppressWarnings("unused")
    24. private Main main;
    25.  
    26. public Turtle(Main main) {
    27. this.main = main;
    28. }
    29.  
    30. private ArrayList<Player> hasAkit = Main.hasAkit;
    31. private ArrayList<Player> turtle = Main.turtle;
    32. private ArrayList<Player> crouching = Main.crouching;
    33.  
    34. public boolean onCommand(CommandSender sender, Command cmd,
    35. String CommandLabel, String[] args) {
    36. if (cmd.getName().equalsIgnoreCase("turtle")) {
    37. if (!(sender instanceof Player)) {
    38. sender.sendMessage(ChatColor.RED
    39. + "The console cannot receive kits!");
    40. return true;
    41. }
    42. Player p = (Player) sender;
    43. if (hasAkit.contains(p)) {
    44. p.sendMessage(ChatColor.RED
    45. + "You have already received a kit!");
    46. return true;
    47. }
    48. ItemStack helmet = new ItemStack(Material.IRON_HELMET);
    49. ItemStack chestplate = new ItemStack(Material.LEATHER_CHESTPLATE);
    50. LeatherArmorMeta chestplate_meta = (LeatherArmorMeta) chestplate
    51. .getItemMeta();
    52. chestplate_meta.setColor(Color.GREEN);
    53. chestplate.setItemMeta(chestplate_meta);
    54. ItemStack leggings = new ItemStack(Material.IRON_LEGGINGS);
    55. ItemStack boots = new ItemStack(Material.IRON_BOOTS);
    56. p.getInventory().setHelmet(helmet);
    57. p.getInventory().setChestplate(chestplate);
    58. p.getInventory().setLeggings(leggings);
    59. p.getInventory().setBoots(boots);
    60. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
    61. p.getInventory().addItem(sword);
    62. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    63. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    64. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    65. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    66. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    67. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    68. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    69. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    70. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    71. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    72. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    73. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    74. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    75. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    76. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    77. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    78. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    79. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    80. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    81. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    82. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    83. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    84. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    85. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    86. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    87. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    88. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    89. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    90. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    91. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    92. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    93. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    94. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    95. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    96. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
    97. p.sendMessage(ChatColor.GREEN + "Here is your Turtle kit!");
    98. turtle.add(p);
    99. hasAkit.add(p);
    100. }
    101. return true;
    102. }
    103.  
    104. @EventHandler
    105. public void onEntityDamage(EntityDamageEvent e) {
    106. if (!(e.getEntity() instanceof Player))
    107. return;
    108. Player p = (Player) e.getEntity();
    109. if (turtle.contains(p)) {
    110. if (p.isSneaking()) {
    111. if ((e.getCause() == DamageCause.BLOCK_EXPLOSION)
    112. || (e.getCause() == DamageCause.CONTACT)
    113. || (e.getCause() == DamageCause.CUSTOM)
    114. || (e.getCause() == DamageCause.DROWNING)
    115. || (e.getCause() == DamageCause.ENTITY_ATTACK)
    116. || (e.getCause() == DamageCause.ENTITY_EXPLOSION)
    117. || (e.getCause() == DamageCause.FALL)
    118. || (e.getCause() == DamageCause.FALLING_BLOCK)
    119. || (e.getCause() == DamageCause.FIRE)
    120. || (e.getCause() == DamageCause.FIRE_TICK)
    121. || (e.getCause() == DamageCause.LAVA)
    122. || (e.getCause() == DamageCause.LIGHTNING)
    123. || (e.getCause() == DamageCause.MAGIC)
    124. || (e.getCause() == DamageCause.MELTING)
    125. || (e.getCause() == DamageCause.POISON)
    126. || (e.getCause() == DamageCause.PROJECTILE)
    127. || (e.getCause() == DamageCause.STARVATION)
    128. || (e.getCause() == DamageCause.SUFFOCATION)
    129. || (e.getCause() == DamageCause.THORNS)
    130. || (e.getCause() == DamageCause.VOID)
    131. || (e.getCause() == DamageCause.WITHER)) {
    132. e.setDamage(1);
    133. return;
    134. }
    135. }
    136. }
    137. }
    138. @EventHandler
    139. public void onPlayerDamage(EntityDamageByEntityEvent e) {
    140. @SuppressWarnings("unused")
    141. Entity damager = (Player) e.getDamager();
    142. Entity victim = (Player) e.getEntity();
    143. if(crouching.contains(victim)) {
    144. e.setDamage(0);
    145. }
    146. if(!(crouching.contains(victim))) {
    147. return;
    148. }
    149. }
    150. }
    151.  


    Here's my Main class:
    Code:java
    1. package me.Dead_Skeleton.kits;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import me.Dead_Skeleton.cmds.ClearKit;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.Listener;
    11. import org.bukkit.event.entity.PlayerDeathEvent;
    12. import org.bukkit.plugin.java.JavaPlugin;
    13.  
    14. public class Main extends JavaPlugin implements Listener {
    15.  
    16. public static Main plugin;
    17.  
    18. public static ArrayList<Player> hasAkit = new ArrayList<Player>( );
    19. public static ArrayList<Player> crouching = new ArrayList<Player>();
    20. public static ArrayList<Player> turtle = new ArrayList<Player>();
    21.  
    22. public void onEnable() {
    23. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    24. Bukkit.getServer().getPluginManager().registerEvents(new PvP(this), this);
    25. Bukkit.getServer().getPluginManager().registerEvents(new Archer(this), this);
    26. Bukkit.getServer().getPluginManager().registerEvents(new Turtle(this), this);
    27. getCommand("pvp").setExecutor(new PvP(this));
    28. getCommand("archer").setExecutor(new Archer(this));
    29. getCommand("turtle").setExecutor(new Turtle(this));
    30. getCommand("clearkit").setExecutor(new ClearKit(this));
    31. }
    32.  
    33.  
    34. @EventHandler
    35. public void onPlayerDeath(PlayerDeathEvent e) {
    36. Player p = e.getEntity();
    37. hasAkit.remove(p);
    38. crouching.remove(p);
    39. turtle.remove(p);
    40. if(turtle.contains(p)) {
    41. if(!(p.isSneaking())) {
    42. crouching.remove(p);
    43. }
    44. if(p.isSneaking()) {
    45. crouching.add(p);
    46. }
    47. }
    48. }
    49.  
    50. }
    51.  


    Everything is registered and all of that, it's just that I need help with the last EventHandler. Thanks!

    bump?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  2. Offline

    Gopaintman

    Well first of all use a loop to give your player's soup. That whole block of adding soup is just redundant.
    Code:java
    1. for(int i = 1; i <= 32;i++){
    2. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1))
    3. }
     
  3. Offline

    Dead_Skeleton

    Thanks, sorry for doing that, hadn't thought of it.

    Bump?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  4. Offline

    Dead_Skeleton

    I fixed it on my own! Thanks for the help though, @Gopaintmain
     
Thread Status:
Not open for further replies.

Share This Page