package openblocks.enchantments.flimflams; import java.util.List; import net.minecraft.command.IEntitySelector; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.passive.EntitySquid; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import openblocks.api.IFlimFlamAction; import openmods.utils.CollectionUtils; import openmods.utils.WorldUtils; public class MountFlimFlam implements IFlimFlamAction { private static final IEntitySelector SAFE_SELECTOR = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { return !(entity instanceof EntityCreeper) && !(entity instanceof EntitySquid); } }; @Override public boolean execute(EntityPlayerMP target) { final World world = target.worldObj; AxisAlignedBB around = target.boundingBox.expand(40, 40, 40); List<EntityCreature> mobs = WorldUtils.getEntitiesWithinAABB(world, EntityCreature.class, around, SAFE_SELECTOR); if (mobs.isEmpty()) return false; EntityLiving selected = CollectionUtils.getRandom(mobs); target.mountEntity(selected); return true; } }