Item.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.gmail.nossr50.util;
  2. import org.bukkit.Material;
  3. import org.bukkit.block.Block;
  4. import org.bukkit.entity.Player;
  5. import org.bukkit.inventory.ItemStack;
  6. import com.gmail.nossr50.config.Config;
  7. import com.gmail.nossr50.datatypes.PlayerProfile;
  8. import com.gmail.nossr50.locale.LocaleLoader;
  9. public class Item {
  10. /**
  11. * Check for item usage.
  12. *
  13. * @param player Player whose item usage to check
  14. */
  15. public static void itemChecks(Player player) {
  16. ItemStack inHand = player.getItemInHand();
  17. if (Config.getInstance().getChimaeraEnabled() && inHand.getTypeId() == Config.getInstance().getChimaeraItemId()) {
  18. chimaeraWing(player);
  19. }
  20. }
  21. private static void chimaeraWing(Player player) {
  22. PlayerProfile profile = Users.getProfile(player);
  23. ItemStack inHand = player.getItemInHand();
  24. Block block = player.getLocation().getBlock();
  25. int amount = inHand.getAmount();
  26. long recentlyHurt = profile.getRecentlyHurt();
  27. if (Permissions.chimaeraWing(player) && inHand.getTypeId() == Config.getInstance().getChimaeraItemId()) {
  28. if (Skills.cooldownOver(recentlyHurt, 60, player) && amount >= Config.getInstance().getChimaeraCost()) {
  29. player.setItemInHand(new ItemStack(Config.getInstance().getChimaeraItemId(), amount - Config.getInstance().getChimaeraCost()));
  30. for (int y = 1; block.getY() + y < player.getWorld().getMaxHeight(); y++) {
  31. if (!block.getRelative(0, y, 0).getType().equals(Material.AIR)) {
  32. player.sendMessage(LocaleLoader.getString("Item.ChimaeraWing.Fail"));
  33. player.teleport(block.getRelative(0, y - 1, 0).getLocation());
  34. return;
  35. }
  36. }
  37. if (player.getBedSpawnLocation() != null && player.getBedSpawnLocation().getBlock().getType().equals(Material.BED_BLOCK)) {
  38. player.teleport(player.getBedSpawnLocation());
  39. }
  40. else {
  41. player.teleport(player.getWorld().getSpawnLocation());
  42. }
  43. player.sendMessage(LocaleLoader.getString("Item.ChimaeraWing.Pass"));
  44. }
  45. else if (!Skills.cooldownOver(recentlyHurt, 60, player) && amount >= Config.getInstance().getChimaeraCost()) {
  46. player.sendMessage(LocaleLoader.getString("Item.Injured.Wait", new Object[] {Skills.calculateTimeLeft(recentlyHurt, 60, player)}));
  47. }
  48. else if (amount <= Config.getInstance().getChimaeraCost()) {
  49. player.sendMessage(LocaleLoader.getString("Skills.NeedMore", new Object[] { Misc.prettyItemString(Config.getInstance().getChimaeraItemId()) }));
  50. }
  51. }
  52. }
  53. }