MiningBlockEventHandler.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.gmail.nossr50.skills.mining;
  2. import org.bukkit.Location;
  3. import org.bukkit.Material;
  4. import org.bukkit.block.Block;
  5. import org.bukkit.enchantments.Enchantment;
  6. import org.bukkit.entity.Player;
  7. import com.gmail.nossr50.util.Misc;
  8. public class MiningBlockEventHandler {
  9. private MiningManager manager;
  10. private Player player;
  11. private Block block;
  12. private Location blockLocation;
  13. private Material blockType;
  14. protected int skillModifier;
  15. protected MiningBlockEventHandler(MiningManager manager, Block block) {
  16. this.manager = manager;
  17. this.player = manager.getPlayer();
  18. this.block = block;
  19. this.blockLocation = block.getLocation();
  20. this.blockType = block.getType();
  21. calculateSkillModifier();
  22. }
  23. private void calculateSkillModifier() {
  24. this.skillModifier = Misc.skillCheck(manager.getSkillLevel(), Mining.DOUBLE_DROPS_MAX_BONUS_LEVEL);
  25. }
  26. /**
  27. * Process Mining block drops.
  28. *
  29. * @param player The player mining the block
  30. * @param block The block being broken
  31. */
  32. protected void processDrops() {
  33. if (player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
  34. Mining.silkTouchDrops(block, blockLocation, blockType);
  35. }
  36. else {
  37. Mining.miningDrops(block, blockLocation, blockType);
  38. }
  39. }
  40. protected void processXPGain() {
  41. Mining.miningXP(player, manager.getProfile(), block, blockType);
  42. }
  43. }