@SubscribeEvent public static void onCheckSpawn(@Nonnull CheckSpawn evt) { if (evt.isSpawner()) { return; } final EntityLivingBase entityLiving = evt.getEntityLiving(); if (entityLiving == null) { return; } ResourceLocation resourceLocation = EntityList.getKey(entityLiving); if (resourceLocation == null) { return; } for (ISpawnEntry ent : MobSpawns.instance.getEntries()) { if (resourceLocation.toString().equals(ent.getMobName())) { if (!ent.canSpawnInDimension(evt.getWorld())) { // Log.debug(resourceLocation, " may not spawn in dimension ", evt.getWorld().provider.getDimensionType().getName()); evt.setResult(Result.DENY); return; } else { // Log.debug(resourceLocation, " is allowed to spawn in dimension ", evt.getWorld().provider.getDimensionType().getName()); } } } }
@SubscribeEvent public void onEntitySpawn(LivingSpawnEvent.CheckSpawn evt) { if (evt.getResult() == Result.DENY || evt.isSpawner()) { return; } if (InhibitorConfig.stopAllSlimes.get() && evt.getEntity() instanceof EntitySlime) { evt.setResult(Result.DENY); return; } if (InhibitorConfig.stopAllSquid.get() && evt.getEntity().getClass() == EntitySquid.class) { evt.setResult(Result.DENY); return; } Map<BlockPos, ISpawnCallback> guards = getGuardsForWorld(evt.getWorld()); for (ISpawnCallback guard : guards.values()) { ISpawnCallback.Result result = guard.isSpawnPrevented(evt.getEntityLiving()); if (result == ISpawnCallback.Result.DENY) { evt.setResult(Result.DENY); return; } else if (result == ISpawnCallback.Result.DONE) { return; } } }
@SubscribeEvent public static void onEntitySpawn(LivingSpawnEvent.CheckSpawn evt) { if (evt.getResult() != Result.DENY && EntitySpawnPlacementRegistry .getPlacementForEntity(evt.getEntity().getClass()) == EntityLiving.SpawnPlacementType.IN_WATER && evt.getWorld().getBlockState(evt.getEntityLiving().getPosition()).getBlock() instanceof BlockFluidEnder) { evt.setResult(Result.DENY); } return; }
@SubscribeEvent public static void onSpawn(final LivingSpawnEvent.CheckSpawn event) { if (event.getEntity() instanceof EntityMobPassive || event.getEntity() instanceof EntityMobHostileBase) { if(GaiaConfig.DIMENSIONS.dimensionBlacklist.length > 0) { event.setResult(Event.Result.DEFAULT); for (int i : GaiaConfig.DIMENSIONS.dimensionBlacklist) { if (i == event.getWorld().provider.getDimension()) { event.setResult(Event.Result.DENY); } } } } } }
@SubscribeEvent public void onEntityCheckSpawn(LivingSpawnEvent.CheckSpawn event) { IBlockState blockState = event.getWorld().getBlockState(new BlockPos(event.getX() - 0.4F, event.getY(), event.getZ() - 0.4F).down()); if (blockState.getBlock().equals(ModBlocks.castle_block)) { if (BlockCastleBlock.EnumType.DARK_STONE.equals(blockState.getValue(BlockCastleBlock.VARIANT)) || !event.getEntity().isCreatureType(VReference.VAMPIRE_CREATURE_TYPE, false)) { event.setResult(Event.Result.DENY); } } else if (blockState.getBlock() instanceof BlockCastleStairs) { if (ModBlocks.castle_stairs_dark_stone.equals(blockState.getBlock()) || !event.getEntity().isCreatureType(VReference.VAMPIRE_CREATURE_TYPE, false)) { event.setResult(Event.Result.DENY); } } }
@SubscribeEvent public void onSpawn(LivingSpawnEvent.CheckSpawn event) { if(event.getResult() != Result.ALLOW && event.getEntityLiving() instanceof IMob && event.getWorld() instanceof WorldServer) { List<EntityPlayer> players = ((WorldServer) event.getWorld()).playerEntities; for(EntityPlayer player : players) if(player.getActivePotionEffect(curse) != null && player.getDistanceSq(event.getEntity()) < curseRange * curseRange) { if(!(event.getEntity() instanceof EntityCreeper)) event.getEntityLiving().addPotionEffect(new PotionEffect(MobEffects.FIRE_RESISTANCE, Integer.MAX_VALUE, 0, false, false)); event.setResult(Result.ALLOW); return; } } }
@SubscribeEvent public void onSpawnCheck(LivingSpawnEvent.CheckSpawn event) { Entity e = event.getEntity(); World world = event.getWorld(); BlockPos pos = e.getPosition(); if(world.getBlockState(pos).getBlock() == black_ash || world.getBlockState(pos.down(2)).getBlock() == black_ash) event.setResult(Result.DENY); }
@SubscribeEvent public void onSpawn(LivingSpawnEvent.CheckSpawn event) { if(event.getResult() != Result.ALLOW && event.getEntityLiving() instanceof IMob) { AxisAlignedBB aabb = new AxisAlignedBB(event.getX() - RANGE, event.getY() - RANGE, event.getZ() - RANGE, event.getX() + RANGE, event.getY() + RANGE, event.getZ() + RANGE); for(EntityPlayer player : event.getWorld().playerEntities) { if(hasEffect(player) && player.getEntityBoundingBox().intersects(aabb)) { event.setResult(Result.DENY); return; } } } }
@SubscribeEvent public void onSpawn(LivingSpawnEvent.CheckSpawn event) { if(event.getResult() != Result.ALLOW && event.getEntityLiving() instanceof IMob) { AxisAlignedBB aabb = new AxisAlignedBB(event.getX() - RANGE, event.getY() - RANGE, event.getZ() - RANGE, event.getX() + RANGE, event.getY() + RANGE, event.getZ() + RANGE); for(EntityPlayer player : event.getWorld().playerEntities) { if(hasEffect(player) && !hasEffect(player, ModPotions.emptiness) && player.getEntityBoundingBox().intersects(aabb)) { event.setResult(Result.ALLOW); return; } } } }