FluxMiningEventHandler.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.gmail.nossr50.skills.smelting;
  2. import org.bukkit.Location;
  3. import org.bukkit.Material;
  4. import org.bukkit.block.Block;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.block.BlockBreakEvent;
  7. import org.bukkit.inventory.ItemStack;
  8. import com.gmail.nossr50.locale.LocaleLoader;
  9. import com.gmail.nossr50.skills.mining.Mining;
  10. import com.gmail.nossr50.skills.utilities.SkillType;
  11. import com.gmail.nossr50.util.Misc;
  12. import com.gmail.nossr50.util.Permissions;
  13. public class FluxMiningEventHandler {
  14. private SmeltingManager manager;
  15. private Player player;
  16. private BlockBreakEvent event;
  17. private Block block;
  18. protected FluxMiningEventHandler(SmeltingManager manager, BlockBreakEvent event) {
  19. this.manager = manager;
  20. this.player = manager.getPlayer();
  21. this.event = event;
  22. this.block = event.getBlock();
  23. }
  24. protected void processDrops() {
  25. ItemStack item = null;
  26. switch (block.getType()) {
  27. case IRON_ORE:
  28. item = new ItemStack(Material.IRON_INGOT);
  29. break;
  30. case GOLD_ORE:
  31. item = new ItemStack(Material.GOLD_INGOT);
  32. break;
  33. default:
  34. break;
  35. }
  36. if (item == null) {
  37. return;
  38. }
  39. Location location = block.getLocation();
  40. Misc.dropItem(location, item);
  41. if (Permissions.secondSmelt(player)) {
  42. int chance = (int) ((Mining.doubleDropsMaxChance / Mining.doubleDropsMaxLevel) * (Misc.skillCheck(manager.getProfile().getSkillLevel(SkillType.MINING), Mining.doubleDropsMaxLevel)));
  43. Misc.randomDropItem(location, item, chance);
  44. }
  45. }
  46. protected void eventCancellationAndProcessing() {
  47. event.setCancelled(true);
  48. block.setType(Material.AIR);
  49. }
  50. protected void sendAbilityMessage() {
  51. player.sendMessage(LocaleLoader.getString("Smelting.FluxMining.Success"));
  52. }
  53. }