Posted July 2, 201411 yr So recently I've been trying to make it so mobs don't attack specific players. For some reason my code works on almost all mobs but not Spiders and Slimes. Would anyone have an idea as to why this isn't working the way I need it to? package darkevilmac.karma.effect import java.util.ArrayList import cpw.mods.fml.common.eventhandler.SubscribeEvent import cpw.mods.fml.relauncher.Side import darkevilmac.karma.tools.KarmaUtils import net.minecraft.entity.player.EntityPlayer import net.minecraft.entity.{EntityCreature, EntityLiving} import net.minecraftforge.event.entity.living.LivingSetAttackTargetEvent /** * Created by Darkevilmac on 6/25/2014. */ class MobIgnoreEffect extends KarmaEffect { var playersToCheck: ArrayList[string] = new ArrayList[string]() def init(player: String, side: Side) { if (!playersToCheck.contains(player)) { playersToCheck.add(player) } } def onUpdate(player: EntityPlayer, side: Side) { } def finish(player: String, side: Side) { var i: Int = 0 while (i < playersToCheck.size()) { if (playersToCheck.get(i) == player) { playersToCheck.remove(i) return } i = i + 1; } } def shouldContinue(player: EntityPlayer, side: Side): Boolean = { return KarmaUtils.getPlayerKarma(player) >= 950 } def canApply(player: EntityPlayer): Boolean = { return KarmaUtils.getPlayerKarma(player) >= 950 } @SubscribeEvent def onLivingSetAttackTarget(e: LivingSetAttackTargetEvent) { if (!e.entity.worldObj.isRemote && e.target.isInstanceOf[EntityPlayer]) { val player: EntityPlayer = e.target.asInstanceOf[EntityPlayer] if (playersToCheck.contains(player.getCommandSenderName)) { e.entityLiving.setRevengeTarget(null) if (e.entityLiving.isInstanceOf[EntityLiving]) { e.entityLiving.asInstanceOf[EntityLiving].setAttackTarget(null) if (e.entityLiving.isInstanceOf[EntityCreature]) { e.entityLiving.asInstanceOf[EntityCreature].setTarget(null) } } } } } }
July 2, 201411 yr It's because those mobs don't use AI; LivingSetAttackTarget only works with AI, and not necessarily all AI-enabled mobs -> for example, if a mod is using a modified version or completely custom AI, it may or may not obey the rules. http://i.imgur.com/NdrFdld.png[/img]
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.