1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package me.km.effects.passive;
- import java.util.Collection;
- import me.kt.KajetansTools;
- import me.kt.api.ItemStackBuilder;
- import me.kt.api.Module;
- import me.kt.api.ModuleListener;
- import me.kt.api.Utils;
- import me.kt.effects.Effect;
- import me.kt.effects.EffectUtils;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.block.LeavesDecayEvent;
- public class LeaveDecay extends ModuleListener
- {
- public LeaveDecay(Module m)
- {
- super(m);
- }
-
- @EventHandler(ignoreCancelled = true)
- public void onLeaveDecay(LeavesDecayEvent e)
- {
- Location l = e.getBlock().getLocation();
- if(!KajetansTools.worldManager.getWorldPreferences(l.getWorld()).skills)
- {
- return;
- }
- Collection<Player> players = Utils.getNearbyEntities(l, 15, Player.class);
- if(players.isEmpty())
- {
- return;
- }
- Block b = e.getBlock();
- players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.TREE_PICKER)).forEach((p) ->
- {
- Utils.dropRandomTreeItem(b);
- });
- Material m = b.getType();
- if(m == Material.LEAVES)
- {
- players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.MORE_SAPLINGS)).forEach((p) ->
- {
- new ItemStackBuilder(Material.SAPLING, 1, (short) (b.getState().getData().toItemStack().getDurability() % 4)).drop(l);
- });
- }
- else if(m == Material.LEAVES_2)
- {
- players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.MORE_SAPLINGS)).forEach((p) ->
- {
- new ItemStackBuilder(Material.SAPLING, 1, (short) ((b.getState().getData().toItemStack().getDurability() % 4) + 4)).drop(l);
- });
- }
- }
- }
|