package me.km.effects.passive; import java.util.Random; 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 net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.NonNullList; import net.minecraft.world.WorldServer; import net.minecraft.world.storage.loot.LootContext; import net.minecraft.world.storage.loot.LootTableList; import net.minecraftforge.event.entity.player.ItemFishedEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class Fishing extends ModuleListener { public Fishing(Module m) { super(m); } @SubscribeEvent(receiveCanceled = false) public void onFishing(ItemFishedEvent e) { EntityPlayer p = e.getEntityPlayer(); if(!KajetansMod.worldManager.getWorldPreferences(p.world).skills) { return; } int fishing = EffectUtils.getEffectLevel(p, Effect.FISHING); if(fishing >= 1) { int random = Utils.randomInt(0, fishing); Random rand = new Random(); LootContext.Builder loot = new LootContext.Builder((WorldServer) p.world); loot.withLuck(p.getLuck()); LootContext context = loot.build(); NonNullList list = e.getDrops(); for(int i = 0; i < random; i++) { list.addAll(p.world.getLootTableManager().getLootTableFromLocation(LootTableList.GAMEPLAY_FISHING).generateLootForPools(rand, context)); } } } }