diff --git a/src/main/java/com/overlord/qualityoflife/QualityOfLife.java b/src/main/java/com/overlord/qualityoflife/QualityOfLife.java index 0ae6673..173fcd0 100644 --- a/src/main/java/com/overlord/qualityoflife/QualityOfLife.java +++ b/src/main/java/com/overlord/qualityoflife/QualityOfLife.java @@ -24,7 +24,6 @@ public class QualityOfLife implements ModInitializer LOGGER.info("Initializing (server)."); - PurgeController.register(); // Clean-up for ServerCore mishaps AfflictionController.register(); // Nerve Agent & Cure Handling PingCommandController.register(); // ping-Command IgnoreCommandController.register(); // ignore-Command diff --git a/src/main/java/com/overlord/qualityoflife/classes/controller/IgnoreCommandController.java b/src/main/java/com/overlord/qualityoflife/classes/controller/IgnoreCommandController.java index e341ca8..d12dc9e 100644 --- a/src/main/java/com/overlord/qualityoflife/classes/controller/IgnoreCommandController.java +++ b/src/main/java/com/overlord/qualityoflife/classes/controller/IgnoreCommandController.java @@ -3,9 +3,6 @@ package com.overlord.qualityoflife.classes.controller; import java.util.*; import java.nio.file.Path; import java.io.IOException; - -import com.overlord.qualityoflife.classes.controller.util.CommandExceptionFactory; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.minecraft.text.Text; import com.mojang.brigadier.Command; import java.util.concurrent.ConcurrentHashMap; @@ -19,6 +16,8 @@ import net.minecraft.command.argument.EntityArgumentType; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.overlord.qualityoflife.classes.controller.util.Player; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; +import com.overlord.qualityoflife.classes.controller.util.CommandExceptionFactory; import com.overlord.qualityoflife.classes.controller.util.extension.IChatCommandController; public class IgnoreCommandController implements IChatCommandController diff --git a/src/main/java/com/overlord/qualityoflife/classes/controller/PurgeController.java b/src/main/java/com/overlord/qualityoflife/classes/controller/PurgeController.java deleted file mode 100644 index e852aeb..0000000 --- a/src/main/java/com/overlord/qualityoflife/classes/controller/PurgeController.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.overlord.qualityoflife.classes.controller; - -import java.util.Queue; -import java.util.LinkedList; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.world.ServerWorld; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerEntityEvents; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; - -public class PurgeController -{ - private static final int BATCH_SIZE = 20; - private static boolean purgeRegistered = true; - private static final Queue queue = new LinkedList<>(); - - public static void register() - { - ServerLifecycleEvents.SERVER_STARTED.register(PurgeController::iterateEntities); - ServerTickEvents.END_SERVER_TICK.register(PurgeController::iterateQueue); - ServerEntityEvents.ENTITY_LOAD.register(PurgeController::discardEntity); - } - - private static boolean validEntity(ServerWorld world, Entity entity) - { - NbtCompound nbt = new NbtCompound(); - entity.writeNbt(nbt); - - return (!world.isClient && nbt.getBoolean("NoAI")); - } - - private static void iterateEntities(MinecraftServer server) - { - for (ServerWorld world : server.getWorlds()) - world.iterateEntities().forEach(entity -> queueEntity(world, entity)); - } - - private static void iterateQueue(MinecraftServer server) - { - if (!purgeRegistered) return; - - if (queue.isEmpty()) - { - purgeRegistered = false; - return; - } - - int count = 0; - while (count < BATCH_SIZE && !queue.isEmpty()) - { - Entity entity = queue.poll(); - - if (entity != null && entity.isAlive()) - entity.remove(Entity.RemovalReason.DISCARDED); - - count++; - } - } - - private static void queueEntity(ServerWorld world, Entity entity) { - if (validEntity(world, entity)) - queue.add(entity); - } - - private static void discardEntity(Entity entity, ServerWorld world) { - if (validEntity(world, entity)) - entity.remove(Entity.RemovalReason.DISCARDED); - } -} diff --git a/src/main/java/com/overlord/qualityoflife/classes/controller/util/extension/INetworkUtility.java b/src/main/java/com/overlord/qualityoflife/classes/controller/util/extension/INetworkUtility.java index ff6c91f..86b48be 100644 --- a/src/main/java/com/overlord/qualityoflife/classes/controller/util/extension/INetworkUtility.java +++ b/src/main/java/com/overlord/qualityoflife/classes/controller/util/extension/INetworkUtility.java @@ -1,8 +1,8 @@ package com.overlord.qualityoflife.classes.controller.util.extension; import java.net.URL; -import java.util.HashMap; import java.util.Map; +import java.util.HashMap; import java.nio.file.Path; import java.io.IOException; import java.io.InputStream;