diff --git a/src/main/java/org/ultramine/server/WorldsConfig.java b/src/main/java/org/ultramine/server/WorldsConfig.java index ca168cd..c0c8ccd 100644 --- a/src/main/java/org/ultramine/server/WorldsConfig.java +++ b/src/main/java/org/ultramine/server/WorldsConfig.java @@ -106,6 +106,7 @@ public int chunkUpdateRadius = 7; public int chunkCacheSize; public boolean enableChunkLoaders = true; + public int maxSendRate = 4; } public static class LoadBalancer diff --git a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java index 4afa06e..0591ca1 100644 --- a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java +++ b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java @@ -39,7 +39,6 @@ private static final int MAX_QUEUE_SIZE = 8; private static final int DEFAULT_RATE = 3; private static final double MIN_RATE = 0.2d; - private static final double MAX_RATE = 8d; private final EntityPlayerMP player; private PlayerManager manager; @@ -204,8 +203,12 @@ else rate -= 0.07; } - if(rate < MIN_RATE) rate = MIN_RATE; - else if(rate > MAX_RATE) rate = MAX_RATE; + + int maxRate = manager.getWorldServer().getConfig().chunkLoading.maxSendRate; + if(rate < MIN_RATE) + rate = MIN_RATE; + else if(rate > maxRate) + rate = maxRate; if(queueSize == 0 || (queueSize != lastQueueSize && queueSize <= MAX_QUEUE_SIZE)) { diff --git a/src/main/resources/org/ultramine/defaults/defaultworlds.yml b/src/main/resources/org/ultramine/defaults/defaultworlds.yml index 2b63e24..c3c9d1e 100644 --- a/src/main/resources/org/ultramine/defaults/defaultworlds.yml +++ b/src/main/resources/org/ultramine/defaults/defaultworlds.yml @@ -61,6 +61,7 @@ chunkUpdateRadius: 7 chunkCacheSize: 1024 enableChunkLoaders: true + maxSendRate: 4 loadBalancer: limits: monsters: