123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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<ItemStack> list = e.getDrops();
- for(int i = 0; i < random; i++)
- {
- list.addAll(p.world.getLootTableManager().getLootTableFromLocation(LootTableList.GAMEPLAY_FISHING).generateLootForPools(rand, context));
- }
- }
- }
- }
|