diff --git a/src/main/java/net/minecraft/server/management/PlayerManager.java b/src/main/java/net/minecraft/server/management/PlayerManager.java index d4c62b3..4d45ac2 100644 --- a/src/main/java/net/minecraft/server/management/PlayerManager.java +++ b/src/main/java/net/minecraft/server/management/PlayerManager.java @@ -202,7 +202,9 @@ public void func_152622_a(int p_152622_1_) { p_152622_1_ = MathHelper.clamp_int(p_152622_1_, 3, 20); - + + this.playerViewRadius = p_152622_1_; +/* if (p_152622_1_ != this.playerViewRadius) { int j = p_152622_1_ - this.playerViewRadius; @@ -248,6 +250,7 @@ this.playerViewRadius = p_152622_1_; } +*/ } public static int getFurthestViewableBlock(int p_72686_0_) diff --git a/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java b/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java index e0ead6e..d299118 100644 --- a/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java +++ b/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java @@ -1106,6 +1106,9 @@ public void func_152611_a(int p_152611_1_) { + if(viewDistance == p_152611_1_) + return; + this.viewDistance = p_152611_1_; if (this.mcServer.worldServers != null) @@ -1119,7 +1122,7 @@ if (worldserver != null) { - worldserver.getPlayerManager().func_152622_a(p_152611_1_); + worldserver.getPlayerManager().func_152622_a(worldserver.getViewDistance()); } } } diff --git a/src/main/java/net/minecraft/world/WorldServer.java b/src/main/java/net/minecraft/world/WorldServer.java index e32f047..a123a38 100644 --- a/src/main/java/net/minecraft/world/WorldServer.java +++ b/src/main/java/net/minecraft/world/WorldServer.java @@ -1,6 +1,8 @@ package net.minecraft.world; import com.google.common.collect.Lists; + +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gnu.trove.iterator.TIntByteIterator; @@ -983,6 +985,7 @@ /* ======================================== ULTRAMINE START =====================================*/ + private static final boolean isServer = FMLCommonHandler.instance().getSide().isServer(); private WorldConfig config; @Override @@ -1051,6 +1054,11 @@ return config; } + public int getViewDistance() + { + return isServer ? config.chunkLoading.viewDistance : mcServer.getConfigurationManager().getViewDistance(); + } + @Override protected boolean isChunkLoaderEnabled() { diff --git a/src/main/java/org/ultramine/server/chunk/ChunkGC.java b/src/main/java/org/ultramine/server/chunk/ChunkGC.java index 9ed48f1..00863c3 100644 --- a/src/main/java/org/ultramine/server/chunk/ChunkGC.java +++ b/src/main/java/org/ultramine/server/chunk/ChunkGC.java @@ -38,7 +38,7 @@ public void onTick() { int confCacheSize = world.getConfig().chunkLoading.chunkCacheSize; - int chunksPerPlayer = (int)Math.pow(world.getConfig().chunkLoading.viewDistance*2 + 1, 2); + int chunksPerPlayer = (int)Math.pow(world.getViewDistance()*2 + 1, 2); int boundChunks = world.playerEntities.size()*chunksPerPlayer + world.getPersistentChunks().size(); int chunkLimit = boundChunks + confCacheSize + MAX_CHUNKS_PER_OP; diff --git a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java index e3be59e..23877dc 100644 --- a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java +++ b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java @@ -61,7 +61,7 @@ private int getViewDistance() { - return Math.min(manager.getWorldServer().getConfig().chunkLoading.viewDistance, player.getRenderDistance()); + return Math.min(manager.getWorldServer().getViewDistance(), player.getRenderDistance()); } private void sortSendQueue()