Item.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.gmail.nossr50;
  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.locale.mcLocale;
  7. import com.gmail.nossr50.skills.Skills;
  8. import com.gmail.nossr50.config.LoadProperties;
  9. import com.gmail.nossr50.datatypes.PlayerProfile;
  10. public class Item {
  11. /**
  12. * Check for item usage.
  13. *
  14. * @param player Player whose item usage to check
  15. */
  16. public static void itemchecks(Player player) {
  17. ItemStack inhand = player.getItemInHand();
  18. if (LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId) {
  19. chimaerawing(player);
  20. }
  21. }
  22. private static void chimaerawing(Player player) {
  23. PlayerProfile PP = Users.getProfile(player);
  24. ItemStack is = player.getItemInHand();
  25. Block block = player.getLocation().getBlock();
  26. int amount = is.getAmount();
  27. if (mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId) {
  28. if (Skills.cooldownOver(PP.getRecentlyHurt(), 60) && amount >= LoadProperties.feathersConsumedByChimaeraWing) {
  29. player.setItemInHand(new ItemStack(LoadProperties.chimaeraId, amount - LoadProperties.feathersConsumedByChimaeraWing));
  30. for (int y = 0; block.getY() + y < player.getWorld().getMaxHeight(); y++) {
  31. if (!block.getRelative(0, y, 0).getType().equals(Material.AIR)) {
  32. player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail"));
  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(mcLocale.getString("Item.ChimaeraWingPass"));
  44. }
  45. else if (!Skills.cooldownOver(PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing) {
  46. player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(PP.getRecentlyHurt(), 60)}));
  47. }
  48. else if (is.getAmount() <= LoadProperties.feathersConsumedByChimaeraWing) {
  49. player.sendMessage(mcLocale.getString("Item.NeedFeathers"));
  50. }
  51. }
  52. }
  53. }