LeaveDecay.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package me.km.effects.passive;
  2. import java.util.Collection;
  3. import me.kt.KajetansTools;
  4. import me.kt.api.ItemStackBuilder;
  5. import me.kt.api.Module;
  6. import me.kt.api.ModuleListener;
  7. import me.kt.api.Utils;
  8. import me.kt.effects.Effect;
  9. import me.kt.effects.EffectUtils;
  10. import org.bukkit.Location;
  11. import org.bukkit.Material;
  12. import org.bukkit.block.Block;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.event.EventHandler;
  15. import org.bukkit.event.block.LeavesDecayEvent;
  16. public class LeaveDecay extends ModuleListener
  17. {
  18. public LeaveDecay(Module m)
  19. {
  20. super(m);
  21. }
  22. @EventHandler(ignoreCancelled = true)
  23. public void onLeaveDecay(LeavesDecayEvent e)
  24. {
  25. Location l = e.getBlock().getLocation();
  26. if(!KajetansTools.worldManager.getWorldPreferences(l.getWorld()).skills)
  27. {
  28. return;
  29. }
  30. Collection<Player> players = Utils.getNearbyEntities(l, 15, Player.class);
  31. if(players.isEmpty())
  32. {
  33. return;
  34. }
  35. Block b = e.getBlock();
  36. players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.TREE_PICKER)).forEach((p) ->
  37. {
  38. Utils.dropRandomTreeItem(b);
  39. });
  40. Material m = b.getType();
  41. if(m == Material.LEAVES)
  42. {
  43. players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.MORE_SAPLINGS)).forEach((p) ->
  44. {
  45. new ItemStackBuilder(Material.SAPLING, 1, (short) (b.getState().getData().toItemStack().getDurability() % 4)).drop(l);
  46. });
  47. }
  48. else if(m == Material.LEAVES_2)
  49. {
  50. players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.MORE_SAPLINGS)).forEach((p) ->
  51. {
  52. new ItemStackBuilder(Material.SAPLING, 1, (short) ((b.getState().getData().toItemStack().getDurability() % 4) + 4)).drop(l);
  53. });
  54. }
  55. }
  56. }