Archery.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.gmail.nossr50.skills.archery;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. import org.bukkit.Material;
  6. import org.bukkit.entity.LivingEntity;
  7. import org.bukkit.inventory.ItemStack;
  8. import com.gmail.nossr50.config.AdvancedConfig;
  9. import com.gmail.nossr50.config.Config;
  10. import com.gmail.nossr50.util.Misc;
  11. public class Archery {
  12. private static List<TrackedEntity> trackedEntities = new ArrayList<TrackedEntity>();
  13. public static int retrieveMaxBonusLevel = AdvancedConfig.getInstance().getRetrieveMaxBonusLevel();
  14. public static double retrieveMaxChance = AdvancedConfig.getInstance().getRetrieveChanceMax();
  15. public static int skillShotIncreaseLevel = AdvancedConfig.getInstance().getSkillShotIncreaseLevel();
  16. public static double skillShotIncreasePercentage = AdvancedConfig.getInstance().getSkillShotIncreasePercentage();
  17. public static double skillShotMaxBonusPercentage = AdvancedConfig.getInstance().getSkillShotBonusMax();
  18. public static int dazeMaxBonusLevel = AdvancedConfig.getInstance().getDazeMaxBonusLevel();
  19. public static double dazeMaxBonus = AdvancedConfig.getInstance().getDazeBonusMax();
  20. public static int dazeModifier = AdvancedConfig.getInstance().getDazeModifier();
  21. public static boolean pvpEnabled = Config.getInstance().getArcheryPVP();
  22. public static boolean pveEnabled = Config.getInstance().getArcheryPVE();
  23. protected static void incrementTrackerValue(LivingEntity livingEntity) {
  24. for (TrackedEntity trackedEntity : trackedEntities) {
  25. if (trackedEntity.getLivingEntity().getEntityId() == livingEntity.getEntityId()) {
  26. trackedEntity.incrementArrowCount();
  27. return;
  28. }
  29. }
  30. addToTracker(livingEntity); //If the entity isn't tracked yet
  31. }
  32. protected static void addToTracker(LivingEntity livingEntity) {
  33. TrackedEntity trackedEntity = new TrackedEntity(livingEntity);
  34. trackedEntity.incrementArrowCount();
  35. trackedEntities.add(trackedEntity);
  36. }
  37. protected static void removeFromTracker(TrackedEntity trackedEntity) {
  38. trackedEntities.remove(trackedEntity);
  39. }
  40. /**
  41. * Check for arrow retrieval.
  42. *
  43. * @param entity The entity hit by the arrows
  44. */
  45. public static void arrowRetrievalCheck(LivingEntity livingEntity) {
  46. for (Iterator<TrackedEntity> entityIterator = trackedEntities.iterator(); entityIterator.hasNext(); ) {
  47. TrackedEntity trackedEntity = entityIterator.next();
  48. if (trackedEntity.getLivingEntity().getEntityId() == livingEntity.getEntityId()) {
  49. Misc.dropItems(livingEntity.getLocation(), new ItemStack(Material.ARROW), trackedEntity.getArrowCount());
  50. entityIterator.remove();
  51. return;
  52. }
  53. }
  54. }
  55. }