Compare commits

1 Commits

Author SHA1 Message Date
73495a0f35 removed purge controller due to server core issues being fixed 2025-12-19 14:48:12 +01:00
4 changed files with 3 additions and 76 deletions

View File

@@ -24,7 +24,6 @@ public class QualityOfLife implements ModInitializer
LOGGER.info("Initializing (server)."); LOGGER.info("Initializing (server).");
PurgeController.register(); // Clean-up for ServerCore mishaps
AfflictionController.register(); // Nerve Agent & Cure Handling AfflictionController.register(); // Nerve Agent & Cure Handling
PingCommandController.register(); // ping-Command PingCommandController.register(); // ping-Command
IgnoreCommandController.register(); // ignore-Command IgnoreCommandController.register(); // ignore-Command

View File

@@ -3,9 +3,6 @@ package com.overlord.qualityoflife.classes.controller;
import java.util.*; import java.util.*;
import java.nio.file.Path; import java.nio.file.Path;
import java.io.IOException; 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 net.minecraft.text.Text;
import com.mojang.brigadier.Command; import com.mojang.brigadier.Command;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -19,6 +16,8 @@ import net.minecraft.command.argument.EntityArgumentType;
import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.overlord.qualityoflife.classes.controller.util.Player; import com.overlord.qualityoflife.classes.controller.util.Player;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; 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; import com.overlord.qualityoflife.classes.controller.util.extension.IChatCommandController;
public class IgnoreCommandController implements IChatCommandController public class IgnoreCommandController implements IChatCommandController

View File

@@ -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<Entity> 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);
}
}

View File

@@ -1,8 +1,8 @@
package com.overlord.qualityoflife.classes.controller.util.extension; package com.overlord.qualityoflife.classes.controller.util.extension;
import java.net.URL; import java.net.URL;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.HashMap;
import java.nio.file.Path; import java.nio.file.Path;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;