diff --git a/src/main/java/carpet/CarpetServer.java b/src/main/java/carpet/CarpetServer.java index c024b3f9..7ab91327 100644 --- a/src/main/java/carpet/CarpetServer.java +++ b/src/main/java/carpet/CarpetServer.java @@ -13,6 +13,7 @@ import carpet.script.CarpetScriptServer; import carpet.settings.SettingsManager; import carpet.utils.HUDController; import carpet.utils.MobAI; +import carpet.utils.SpawnReporter; import com.mojang.brigadier.CommandDispatcher; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.server.command.ServerCommandSource; @@ -51,6 +52,9 @@ public class CarpetServer // static for now - easier to handle all around the co public static void onServerLoaded(MinecraftServer server) { CarpetServer.minecraft_server = server; + // shoudl not be needed - that bit needs refactoring, but not now. + SpawnReporter.reset_spawn_stats(server, true); + settingsManager.attachServer(server); extensions.forEach(e -> { SettingsManager sm = e.customSettingsManager(); diff --git a/src/main/java/carpet/commands/SpawnCommand.java b/src/main/java/carpet/commands/SpawnCommand.java index 46a80aea..d67fd7b9 100644 --- a/src/main/java/carpet/commands/SpawnCommand.java +++ b/src/main/java/carpet/commands/SpawnCommand.java @@ -150,7 +150,7 @@ public class SpawnCommand Math.max(a.getY(), b.getY()), Math.max(a.getZ(), b.getZ()) ); } - SpawnReporter.reset_spawn_stats(false); + SpawnReporter.reset_spawn_stats(source.getMinecraftServer(), false); SpawnReporter.track_spawns = (long) source.getMinecraftServer().getTicks(); SpawnReporter.lower_spawning_limit = lsl; SpawnReporter.upper_spawning_limit = usl; @@ -161,7 +161,7 @@ public class SpawnCommand private static int stopTracking(ServerCommandSource source) { Messenger.send(source, SpawnReporter.tracking_report(source.getWorld())); - SpawnReporter.reset_spawn_stats(false); + SpawnReporter.reset_spawn_stats(source.getMinecraftServer(),false); SpawnReporter.track_spawns = 0L; SpawnReporter.lower_spawning_limit = null; SpawnReporter.upper_spawning_limit = null; @@ -179,7 +179,7 @@ public class SpawnCommand private static int runTest(ServerCommandSource source, int ticks, String counter) { //stop tracking - SpawnReporter.reset_spawn_stats(false); + SpawnReporter.reset_spawn_stats(source.getMinecraftServer(),false); //start tracking SpawnReporter.track_spawns = (long) source.getMinecraftServer().getTicks(); //counter reset diff --git a/src/main/java/carpet/utils/SpawnReporter.java b/src/main/java/carpet/utils/SpawnReporter.java index 040eccbb..1d716c28 100644 --- a/src/main/java/carpet/utils/SpawnReporter.java +++ b/src/main/java/carpet/utils/SpawnReporter.java @@ -13,6 +13,7 @@ import net.minecraft.entity.SpawnRestriction; import net.minecraft.entity.SpawnReason; import net.minecraft.entity.mob.MobEntity; import net.minecraft.entity.passive.OcelotEntity; +import net.minecraft.server.MinecraftServer; import net.minecraft.text.BaseText; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.DyeColor; @@ -60,7 +61,7 @@ public class SpawnReporter public static HashSet first_chunk_marker = null; static { - reset_spawn_stats(true); + reset_spawn_stats(null, true); } public static void registerSpawn(MobEntity mob, SpawnGroup cat, BlockPos pos) @@ -299,7 +300,7 @@ public class SpawnReporter { mock_spawns = false; } - public static void reset_spawn_stats(boolean full) + public static void reset_spawn_stats(MinecraftServer server, boolean full) { spawn_stats.clear(); @@ -310,7 +311,7 @@ public class SpawnReporter { spawn_tries.put(enumcreaturetype, 1); } - for (RegistryKey dim : Arrays.asList(World.OVERWORLD, World.NETHER, World.END)) + if (server != null) for (RegistryKey dim : server.getWorldRegistryKeys()) { Pair, SpawnGroup> key = Pair.of(dim, enumcreaturetype); overall_spawn_ticks.put(key, 0L);