ChimaeraWing.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. import com.gmail.nossr50.skills.utilities.SkillTools;
  10. public final class ChimaeraWing {
  11. private ChimaeraWing() {}
  12. /**
  13. * Check for item usage.
  14. *
  15. * @param player Player whose item usage to check
  16. */
  17. public static void activationCheck(Player player) {
  18. ItemStack inHand = player.getItemInHand();
  19. if (!Config.getInstance().getChimaeraEnabled() || inHand.getTypeId() != Config.getInstance().getChimaeraItemId()) {
  20. return;
  21. }
  22. PlayerProfile profile = Users.getPlayer(player).getProfile();
  23. Block block = player.getLocation().getBlock();
  24. int amount = inHand.getAmount();
  25. long recentlyHurt = profile.getRecentlyHurt();
  26. if (Permissions.chimaeraWing(player) && inHand.getTypeId() == Config.getInstance().getChimaeraItemId()) {
  27. if (SkillTools.cooldownOver(recentlyHurt, 60, player) && amount >= Config.getInstance().getChimaeraCost()) {
  28. player.setItemInHand(new ItemStack(Config.getInstance().getChimaeraItemId(), amount - Config.getInstance().getChimaeraCost()));
  29. for (int y = 1; block.getY() + y < player.getWorld().getMaxHeight(); y++) {
  30. if (!(block.getRelative(0, y, 0).getType() == Material.AIR)) {
  31. player.sendMessage(LocaleLoader.getString("Item.ChimaeraWing.Fail"));
  32. player.teleport(block.getRelative(0, y - 1, 0).getLocation());
  33. return;
  34. }
  35. }
  36. if (player.getBedSpawnLocation() != null && player.getBedSpawnLocation().getBlock().getType() == Material.BED_BLOCK) {
  37. player.teleport(player.getBedSpawnLocation());
  38. }
  39. else {
  40. player.teleport(player.getWorld().getSpawnLocation());
  41. }
  42. player.sendMessage(LocaleLoader.getString("Item.ChimaeraWing.Pass"));
  43. }
  44. else if (!SkillTools.cooldownOver(recentlyHurt, 60, player) && amount >= Config.getInstance().getChimaeraCost()) {
  45. player.sendMessage(LocaleLoader.getString("Item.Injured.Wait", SkillTools.calculateTimeLeft(recentlyHurt, 60, player)));
  46. }
  47. else if (amount <= Config.getInstance().getChimaeraCost()) {
  48. player.sendMessage(LocaleLoader.getString("Skills.NeedMore", StringUtils.getPrettyItemString(Config.getInstance().getChimaeraItemId())));
  49. }
  50. }
  51. }
  52. }