Solved Kit help :D

Discussion in 'Plugin Development' started by TCO_007, Mar 16, 2014.

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

    TCO_007

    I am making the kit stomper and just renaming it Trampler. For whatever reason, the trampler doesnt take any damage at all. They can dish but they just dont take it. If I put the trampler into lava or hava a player repeatedly hit them it still doesnt kill them. I have no idea how to fix it. Any help?

    Trampler Kit Code:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Color;
    5. import org.bukkit.Material;
    6. import org.bukkit.command.Command;
    7. import org.bukkit.command.CommandExecutor;
    8. import org.bukkit.command.CommandSender;
    9. import org.bukkit.enchantments.Enchantment;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.meta.LeatherArmorMeta;
    13.  
    14. public class Trampler implements CommandExecutor{
    15. private Main plugin;
    16. public Trampler(Main instance){
    17. plugin = instance;}
    18.  
    19. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String [] args){
    20. Player p = (Player) sender;
    21. if(commandLabel.equalsIgnoreCase("Trampler")){
    22. if(p.hasPermission("Trampler.use")){
    23. if(!plugin.kitused.contains(p.getName())){
    24. if(!plugin.Trampler.contains(p.getName())){
    25. plugin.Trampler.add(p.getName());
    26. plugin.kitused.add(p.getName());
    27.  
    28. p.sendMessage("You have received the..." + ChatColor.GOLD+ " Trampler " + ChatColor.WHITE + "kit!");
    29. p.getInventory().clear();
    30. ItemStack TSword = new ItemStack(Material.STONE_SWORD, 1);
    31. TSword.addEnchantment(Enchantment.DAMAGE_ALL , 1);
    32. p.getInventory().addItem(TSword);
    33. for (int i=0; i<32; i++){
    34. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP ));}
    35. p.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
    36.  
    37. ItemStack ChestplateAqua = new ItemStack(Material.LEATHER_CHESTPLATE, 1);
    38. LeatherArmorMeta chestplatemeta = (LeatherArmorMeta) ChestplateAqua.getItemMeta();
    39. chestplatemeta.setColor(Color.AQUA);
    40. ChestplateAqua.setItemMeta(chestplatemeta);
    41. p.getInventory().setChestplate(ChestplateAqua);
    42.  
    43. p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
    44.  
    45. p.getInventory().setBoots(new ItemStack(Material.CHAINMAIL_BOOTS));
    46.  
    47.  
    48. } else {
    49. p.sendMessage(ChatColor.RED + "You have already selected the Trampler kit!");}
    50. } else {
    51. p.sendMessage(ChatColor.RED + "You have already selected a kit!");}
    52. } else {
    53. p.sendMessage(ChatColor.GOLD + "Donate for this kit online!");
    54. }
    55. }
    56. return false;
    57.  
    58. }
    59. }


    Event code:
    Code:java
    1. @EventHandler
    2. public void onPlayerDamage(EntityDamageEvent e) {
    3. if (e.getEntity() instanceof Player) {
    4. Player p = (Player) e.getEntity();
    5. if (plugin.Trampler.contains(p.getName())) {
    6. e.setDamage((double) p.getFallDistance() / 8);
    7. if (p.getFallDistance() > 3) {
    8. List<Entity> nearby = p.getNearbyEntities(5, 5, 5);
    9. for (Entity tmp : nearby)
    10. if (tmp instanceof Player) {
    11. ((Player) tmp).damage((double) p.getFallDistance() / 2);
    12. }
    13. }
    14. }
    15. }
    16. }
    17. }


    Kit GUI:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    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.enchantments.Enchantment;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.inventory.Inventory;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.meta.ItemMeta;
    16.  
    17. public class Kit implements CommandExecutor{
    18. private Main plugin;
    19. public Kit(Main instance){
    20. plugin = instance;
    21. }
    22. public static Inventory kits = Bukkit.createInventory(null, 18, ChatColor.GOLD + "Kits");
    23.  
    24. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    25. Player p = (Player) sender;
    26. if(commandLabel.equalsIgnoreCase("kit")){
    27. kits.clear();
    28. p.sendMessage(ChatColor.GREEN + "You have opened your kits!");
    29.  
    30. ItemStack PvP = new ItemStack(Material.DIAMOND_SWORD);
    31. PvP.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    32. ItemMeta PvPMeta = PvP.getItemMeta();
    33. PvPMeta.setDisplayName(ChatColor.GRAY + "PvP");
    34. ArrayList<String> PvPLore = new ArrayList<String>();
    35. PvPLore.add(ChatColor.RED + "Diamond Sword - Sharpness 1");
    36. PvPLore.add(ChatColor.GRAY + "Full iron armour!");
    37. PvPMeta.setLore(PvPLore);
    38. PvP.setItemMeta(PvPMeta);
    39. kits.setItem(0 , PvP);
    40.  
    41.  
    42.  
    43. ItemStack Fisherman = new ItemStack(Material.FISHING_ROD);
    44. Fisherman.addUnsafeEnchantment(Enchantment.DURABILITY, 10);
    45. ItemMeta FishermanMeta = Fisherman.getItemMeta();
    46. FishermanMeta.setDisplayName(ChatColor.GOLD + "Fisherman");
    47. ArrayList<String> FishermanLore = new ArrayList<String>();
    48. FishermanLore.add(ChatColor.AQUA + "Stone Sword - Sharpness 1");
    49. FishermanLore.add(ChatColor.GOLD + "Hook your enemies and pull them to you!");
    50. FishermanMeta.setLore(FishermanLore);
    51. Fisherman.setItemMeta(FishermanMeta);
    52. kits.setItem(1, Fisherman);
    53.  
    54. ItemStack Venom = new ItemStack(Material.SPIDER_EYE);
    55. Venom.addUnsafeEnchantment(Enchantment.LUCK, 1);
    56. ItemMeta VenomMeta = Venom.getItemMeta();
    57. VenomMeta.setDisplayName(ChatColor.GOLD + "Venom");
    58. ArrayList<String> VenomLore = new ArrayList<String>();
    59. VenomLore.add(ChatColor.AQUA + "Stone Sword");
    60. VenomLore.add(ChatColor.GREEN + "33% chance of giving poison to your enemy!");
    61. VenomMeta.setLore(VenomLore);
    62. Venom.setItemMeta(VenomMeta);
    63. kits.setItem(2, Venom);
    64.  
    65. ItemStack Trampler = new ItemStack(Material.CHAINMAIL_BOOTS);
    66. Trampler.addEnchantment(Enchantment.PROTECTION_FALL, 1);
    67. ItemMeta TramplerMeta = Trampler.getItemMeta();
    68. TramplerMeta.setDisplayName(ChatColor.GOLD + "Trampler");
    69. ArrayList<String> TramplerLore = new ArrayList<String>();
    70. TramplerLore.add(ChatColor.GRAY + "Stone Sword - Sharpness 1");
    71. TramplerLore.add(ChatColor.GOLD + "Trample your enemies by transfering your fall damage to theirs!");
    72. TramplerMeta.setLore(TramplerLore);
    73. Trampler.setItemMeta(TramplerMeta);
    74. kits.setItem(3, Trampler);
    75.  
    76.  
    77.  
    78. p.openInventory(kits);
    79.  
    80.  
    81.  
    82. }
    83. return false;
    84. }
    85. }
    86.  


    GUIListener:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.inventory.InventoryClickEvent;
    9. import org.bukkit.inventory.Inventory;
    10.  
    11. public class GUIListener implements Listener{
    12. private Main plugin;
    13. public GUIListener(Main instance){
    14. plugin = instance;
    15. }
    16. @EventHandler
    17. public void onClick(InventoryClickEvent event){
    18. if ((event.getCurrentItem() != null) && (event.getCurrentItem().getItemMeta() != null)){
    19. Inventory inv = event.getInventory();
    20. Player p = (Player)event.getWhoClicked();
    21. if ((inv.getTitle().equals(ChatColor.GOLD + "Kits"))){
    22. if (event.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GRAY + "PvP")){
    23. Bukkit.dispatchCommand(p, "PvP");
    24. event.setCancelled(true);
    25. p.closeInventory();
    26.  
    27. }
    28. if (event.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "Fisherman")){
    29. Bukkit.dispatchCommand(p, "Fisherman");
    30. event.setCancelled(true);
    31. p.closeInventory();
    32. }
    33. if (event.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "Venom")){
    34. Bukkit.dispatchCommand(p, "Venom");
    35. event.setCancelled(true);
    36. p.closeInventory();
    37. }
    38. if (event.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "Trampler")){
    39. Bukkit.dispatchCommand(p, "Trampler");
    40. event.setCancelled(true);
    41. p.closeInventory();
    42. }
    43.  
    44. }
    45.  
    46. }
    47.  
    48. }
    49. }
    50.  
     
  2. Offline

    Pimp_like_me

    You aren't checking if the damage is done by fall damage, therefore if their fall distance is 0 and it's divided by 8, then it will set the damage to 0, thus doing no damage at all
     
  3. Offline

    TCO_007

    This probably sounds very noobish but how would I do that? Im very new to coding and I still have a lot to learn. Sorry. Pimp_like_me
     
  4. Offline

    hubeb

    TCO_007
    in your PlayerDamage event do this check:
    Code:java
    1. if(e.getCause().equals(DamageCause.FALL)){
    2. //Do stuff
    3. }
     
  5. Offline

    TCO_007

    Thanks guys! Its fixed now!
     
  6. Offline

    hubeb

    TCO_007
    Yw, remember to set the topic to solved.
     
Thread Status:
Not open for further replies.

Share This Page