import java.util.ArrayList; import java.util.List; import java.util.Random; import net.minecraft.server.MinecraftServer; public class OWorldServer extends OWorld { public OChunkProviderServer u; public boolean v = false; public boolean w; private MinecraftServer x; private OMCHashTable y = new OMCHashTable(); public OWorldServer(MinecraftServer paramMinecraftServer, OISaveHandler paramOISaveHandler, String paramString, int paramInt, long paramLong) { super(paramOISaveHandler, paramString, paramLong, OWorldProvider.a(paramInt)); x = paramMinecraftServer; } @Override public void a(OEntity paramOEntity, boolean paramBoolean) { if ((!x.m) && (((paramOEntity instanceof OEntityAnimals)) || ((paramOEntity instanceof OEntityWaterMob)))) paramOEntity.D(); if ((paramOEntity.aE == null) || (!(paramOEntity.aE instanceof OEntityPlayer))) super.a(paramOEntity, paramBoolean); } public void b(OEntity paramOEntity, boolean paramBoolean) { super.a(paramOEntity, paramBoolean); } @Override protected OIChunkProvider b() { OIChunkLoader localOIChunkLoader = p.a(m); u = new OChunkProviderServer(this, localOIChunkLoader, m.c()); return u; } public List d(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6) { ArrayList localArrayList = new ArrayList(); for (int i = 0; i < c.size(); i++) { OTileEntity localOTileEntity = (OTileEntity) c.get(i); if ((localOTileEntity.e >= paramInt1) && (localOTileEntity.f >= paramInt2) && (localOTileEntity.g >= paramInt3) && (localOTileEntity.e < paramInt4) && (localOTileEntity.f < paramInt5) && (localOTileEntity.g < paramInt6)) localArrayList.add(localOTileEntity); } return localArrayList; } @Override public boolean a(OEntityPlayer paramOEntityPlayer, int paramInt1, int paramInt2, int paramInt3) { int i = (int) OMathHelper.e(paramInt1 - q.c()); int j = (int) OMathHelper.e(paramInt3 - q.e()); if (i > j) j = i; return (j > 16) || (x.f.h(paramOEntityPlayer.r)); } @Override protected void b(OEntity paramOEntity) { super.b(paramOEntity); y.a(paramOEntity.aB, paramOEntity); } @Override protected void c(OEntity paramOEntity) { super.c(paramOEntity); y.d(paramOEntity.aB); } public OEntity a(int paramInt) { return (OEntity) y.a(paramInt); } @Override public void a(OEntity paramOEntity, byte paramByte) { OPacket38 localOPacket38 = new OPacket38(paramOEntity.aB, paramByte); x.k.b(paramOEntity, localOPacket38); } @Override public OExplosion a(OEntity paramOEntity, double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat, boolean paramBoolean) { OExplosion localOExplosion = super.a(paramOEntity, paramDouble1, paramDouble2, paramDouble3, paramFloat, paramBoolean); x.f.a(paramDouble1, paramDouble2, paramDouble3, 64.0D, new OPacket60(paramDouble1, paramDouble2, paramDouble3, paramFloat, localOExplosion.g)); return localOExplosion; } @Override public void d(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5) { super.d(paramInt1, paramInt2, paramInt3, paramInt4, paramInt5); x.f.a(paramInt1, paramInt2, paramInt3, 64.0D, new OPacket54(paramInt1, paramInt2, paramInt3, paramInt4, paramInt5)); } public void t() { p.e(); } @Override public boolean a(OEntity entity) { if (entity instanceof OEntityLiving && !(entity instanceof OEntityPlayer)) // hMod: allow entities to spawn if ((etc.getInstance().getMobSpawnRate() < 100 && etc.getInstance().getMobSpawnRate() > 0 && etc.getInstance().getMobSpawnRate() <= k.nextInt(101)) || etc.getInstance().getMobSpawnRate() <= 0 || (Boolean) (etc.getLoader().callHook(PluginLoader.Hook.MOB_SPAWN, new Mob((OEntityLiving) entity)))) return false; return super.a(entity); } }