1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package me.km.effects.passive;
- 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.events.PlayerHurtEvent;
- import me.km.events.ThrowableLaunchEvent;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.item.EntityEnderPearl;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.projectile.EntityPotion;
- import net.minecraft.entity.projectile.EntityThrowable;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- public class ThrowableEffects extends ModuleListener
- {
- public ThrowableEffects(Module m)
- {
- super(m);
- }
-
- @SubscribeEvent(receiveCanceled = false)
- public void preventEnderPearlDamage(PlayerHurtEvent e)
- {
- Entity ent = e.getSource().getImmediateSource();
- if(ent != null && ent.getClass() == EntityEnderPearl.class &&
- KajetansMod.worldManager.getWorldPreferences(ent.world).skills &&
- EffectUtils.getEffectLevel(e.getEntityPlayer(), Effect.NO_ENDERPEARL_DAMAGE) >= 1)
- {
- e.setCanceled(true);
- }
- }
-
- @SubscribeEvent(receiveCanceled = false)
- public void useThrowableEvent(ThrowableLaunchEvent e)
- {
- if(!KajetansMod.worldManager.getWorldPreferences(e.getWorld()).skills)
- {
- return;
- }
- EntityThrowable ent = e.getEntityThrowable();
- if(ent instanceof EntityEnderPearl)
- {
- EntityPlayer p = e.getEntityPlayer();
- if(Utils.randomBoolean() && EffectUtils.getEffectLevel(p, Effect.PEARL_SAVER) >= 1)
- {
- p.getHeldItemMainhand().grow(1);
- }
- int speed = EffectUtils.getEffectLevel(p, Effect.FAST_ENDERPEARL_SHOOT);
- if(speed >= 1)
- {
- Utils.scaleVelocity(e.getEntityThrowable(), speed + 1);
- }
- }
- else if(ent instanceof EntityPotion)
- {
- EntityPlayer p = e.getEntityPlayer();
- int saver = EffectUtils.getEffectLevel(p, Effect.POTION_SAVER);
- if(saver >= 1 && saver >= Utils.randomInt(1, 5))
- {
- p.getHeldItemMainhand().grow(1);
- }
- }
- }
- }
|