12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package me.km.effects.passive;
- import java.util.List;
- import me.km.KajetansMod;
- import me.km.api.Module;
- import me.km.api.ModuleListener;
- import me.km.api.Utils;
- import me.km.effects.Effect;
- import me.km.effects.EffectUtils;
- import me.km.utils.ItemStackBuilder;
- import net.minecraft.block.Block;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.Blocks;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- import net.minecraftforge.event.world.BlockEvent;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- public class LeaveDecay extends ModuleListener
- {
- public LeaveDecay(Module m)
- {
- super(m);
- }
-
- @SubscribeEvent(receiveCanceled = false)
- public void onLeaveDecay(BlockEvent.HarvestDropsEvent e)
- {
- if(!KajetansMod.worldManager.getWorldPreferences(e.getWorld()).skills)
- {
- return;
- }
- IBlockState state = e.getState();
- Block b = state.getBlock();
- if(b == Blocks.LEAVES)
- {
- World w = e.getWorld();
- BlockPos pos = e.getPos();
- List<EntityPlayer> players = Utils.getNearbyPlayers(w, pos.getX(), pos.getY(), pos.getZ(), 15);
- int i = (int) players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.MORE_SAPLINGS)).count();
- if(i >= 1)
- {
- new ItemStackBuilder(Blocks.SAPLING, i, (Blocks.LEAVES.getMetaFromState(state) % 4)).drop(w, pos);
- }
- if(players.stream().anyMatch((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.TREE_PICKER)))
- {
- Utils.dropRandomTreeItem(w, pos, state);
- }
- }
- else if(b == Blocks.LEAVES2)
- {
- World w = e.getWorld();
- BlockPos pos = e.getPos();
- List<EntityPlayer> players = Utils.getNearbyPlayers(w, pos.getX(), pos.getY(), pos.getZ(), 15);
- int i = (int) players.stream().filter((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.MORE_SAPLINGS)).count();
- if(i >= 1)
- {
- new ItemStackBuilder(Blocks.SAPLING, i, (Blocks.LEAVES.getMetaFromState(state) % 4) + 4).drop(w, pos);
- }
- if(players.stream().anyMatch((p) -> Utils.randomInt(1, 25) <= EffectUtils.getEffectLevel(p, Effect.TREE_PICKER)))
- {
- Utils.dropRandomTreeItem(w, pos, state);
- }
- }
- }
- }
|