diff --git a/src/main/java/org/ultramine/server/MultiWorld.java b/src/main/java/org/ultramine/server/MultiWorld.java index 577a155..1a9e965 100644 --- a/src/main/java/org/ultramine/server/MultiWorld.java +++ b/src/main/java/org/ultramine/server/MultiWorld.java @@ -7,6 +7,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.ultramine.server.WorldsConfig.WorldConfig; +import org.ultramine.server.WorldsConfig.WorldConfig.MobSpawn.MobSpawnEngine; import org.ultramine.server.WorldsConfig.WorldConfig.Settings.WorldTime; import org.ultramine.server.util.BasicTypeParser; @@ -233,6 +234,7 @@ world.difficultySetting = BasicTypeParser.parseDifficulty(ConfigurationHandler.getWorldsConfig().global.settings.difficulty); world.setAllowedSpawnTypes(conf.mobSpawn.spawnMonsters, conf.mobSpawn.spawnAnimals); world.getGameRules().setOrCreateGameRule("doDaylightCycle", Boolean.toString(conf.settings.time != WorldTime.FIXED)); + world.getGameRules().setOrCreateGameRule("doMobSpawning", Boolean.toString(conf.mobSpawn.spawnEngine != MobSpawnEngine.NONE)); world.setConfig(conf); MinecraftForge.EVENT_BUS.post(new WorldEvent.Load(world)); diff --git a/src/main/java/org/ultramine/server/WorldsConfig.java b/src/main/java/org/ultramine/server/WorldsConfig.java index 4484f30..4cbb563 100644 --- a/src/main/java/org/ultramine/server/WorldsConfig.java +++ b/src/main/java/org/ultramine/server/WorldsConfig.java @@ -48,6 +48,7 @@ public static class PerTypeMobSpawnSettings { + public boolean enabled; public int minRadius; public int maxRadius; public int minPlayerDistance; diff --git a/src/main/java/org/ultramine/server/mobspawn/MobSpawner.java b/src/main/java/org/ultramine/server/mobspawn/MobSpawner.java index 2dad35a..48df972 100644 --- a/src/main/java/org/ultramine/server/mobspawn/MobSpawner.java +++ b/src/main/java/org/ultramine/server/mobspawn/MobSpawner.java @@ -74,7 +74,7 @@ public void performSpawn(long currentTick) { - if(set != null && shouldPerform()) + if(set != null && set.enabled && shouldPerform()) { if(listIndex == chunks.size()) { diff --git a/src/main/resources/org/ultramine/defaults/defaultworlds.yml b/src/main/resources/org/ultramine/defaults/defaultworlds.yml index 21a8775..2807b81 100644 --- a/src/main/resources/org/ultramine/defaults/defaultworlds.yml +++ b/src/main/resources/org/ultramine/defaults/defaultworlds.yml @@ -14,6 +14,7 @@ spawnEngine: NEW newEngineSettings: monsters: + enabled: true minRadius: 2 maxRadius: 2 minPlayerDistance: 0 @@ -22,6 +23,7 @@ localLimit: 3 nightlyLocalLimit: 5 water: + enabled: true minRadius: 3 maxRadius: 5 minPlayerDistance: 0 @@ -29,6 +31,7 @@ localCheckRadius: 4 localLimit: 3 animals: + enabled: true minRadius: 5 maxRadius: 6 minPlayerDistance: 0 @@ -36,6 +39,7 @@ localCheckRadius: 5 localLimit: 3 ambient: + enabled: true minPlayerDistance: 8 performInterval: 1203 localCheckRadius: 4