TargetEntity.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package me.km.effects.passive;
  2. import me.km.KajetansMod;
  3. import me.km.api.Module;
  4. import me.km.api.ModuleListener;
  5. import me.km.api.Utils;
  6. import me.km.effects.Effect;
  7. import me.km.effects.EffectUtils;
  8. import net.minecraft.entity.EntityLivingBase;
  9. import net.minecraft.entity.monster.EntityMob;
  10. import net.minecraft.entity.player.EntityPlayer;
  11. import net.minecraft.init.MobEffects;
  12. import net.minecraftforge.event.entity.living.LivingSetAttackTargetEvent;
  13. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  14. public class TargetEntity extends ModuleListener
  15. {
  16. public TargetEntity(Module m)
  17. {
  18. super(m);
  19. }
  20. @SubscribeEvent(receiveCanceled = false)
  21. public void avoidTargetting(LivingSetAttackTargetEvent e)
  22. {
  23. EntityLivingBase ent = e.getTarget();
  24. if(!(ent instanceof EntityPlayer) || !KajetansMod.worldManager.getWorldPreferences(ent.world).skills)
  25. {
  26. return;
  27. }
  28. EntityPlayer p = (EntityPlayer) ent;
  29. if(EffectUtils.getEffectLevel(p, Effect.SNEAKING) >= 1 && p.isPotionActive(MobEffects.INVISIBILITY))
  30. {
  31. e.setCanceled(true);
  32. }
  33. else if(EffectUtils.getEffectLevel(p, Effect.SCENT) >= 1 && e.getEntity() instanceof EntityMob)
  34. {
  35. this.getModule().send(p, "Ein " + Utils.formatString(e.getEntity().getName()) + " hat dich bemerkt!");
  36. }
  37. }
  38. }