Fishing.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package me.km.effects.passive;
  2. import java.util.Random;
  3. import me.km.KajetansMod;
  4. import me.km.api.Module;
  5. import me.km.api.ModuleListener;
  6. import me.km.api.Utils;
  7. import me.km.effects.Effect;
  8. import me.km.effects.EffectUtils;
  9. import net.minecraft.entity.player.EntityPlayer;
  10. import net.minecraft.item.ItemStack;
  11. import net.minecraft.util.NonNullList;
  12. import net.minecraft.world.WorldServer;
  13. import net.minecraft.world.storage.loot.LootContext;
  14. import net.minecraft.world.storage.loot.LootTableList;
  15. import net.minecraftforge.event.entity.player.ItemFishedEvent;
  16. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  17. public class Fishing extends ModuleListener
  18. {
  19. public Fishing(Module m)
  20. {
  21. super(m);
  22. }
  23. @SubscribeEvent(receiveCanceled = false)
  24. public void onFishing(ItemFishedEvent e)
  25. {
  26. EntityPlayer p = e.getEntityPlayer();
  27. if(!KajetansMod.worldManager.getWorldPreferences(p.world).skills)
  28. {
  29. return;
  30. }
  31. int fishing = EffectUtils.getEffectLevel(p, Effect.FISHING);
  32. if(fishing >= 1)
  33. {
  34. int random = Utils.randomInt(0, fishing);
  35. Random rand = new Random();
  36. LootContext.Builder loot = new LootContext.Builder((WorldServer) p.world);
  37. loot.withLuck(p.getLuck());
  38. LootContext context = loot.build();
  39. NonNullList<ItemStack> list = e.getDrops();
  40. for(int i = 0; i < random; i++)
  41. {
  42. list.addAll(p.world.getLootTableManager().getLootTableFromLocation(LootTableList.GAMEPLAY_FISHING).generateLootForPools(rand, context));
  43. }
  44. }
  45. }
  46. }