package carpet.mixins; import carpet.fakes.MobEntityInterface; import net.minecraft.entity.ai.goal.Goal; import net.minecraft.entity.ai.goal.GoalSelector; import net.minecraft.entity.mob.MobEntity; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import java.util.HashMap; import java.util.Map; @Mixin(MobEntity.class) public abstract class MobEntityMixin implements MobEntityInterface { @Shadow @Final protected GoalSelector targetSelector; @Shadow @Final protected GoalSelector goalSelector; @Shadow private boolean persistent; public final Map temporaryTasks = new HashMap<>(); @Override public GoalSelector getAI(boolean target) { return target?targetSelector:goalSelector; } @Override public Map getTemporaryTasks() { return temporaryTasks; } @Override public void setPersistence(boolean what) { persistent = what; } }