From 70f2952d8439afb08889f36e8ac81237c6448079 Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Sat, 13 Sep 2025 12:35:57 +0200 Subject: [PATCH] Small changes and added mixin to suppress coords in logs when a player joins. --- .../java/tf/jsw/mcadmintracker/Config.java | 12 +++------ .../mcadmintracker/mixin/GameModeMixin.java | 2 +- .../mixin/SuppressCoordsMixin.java | 22 ++++++++++++++++ src/main/resources/mcadmintracker.mixins.json | 25 ++++++++++--------- 4 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 src/main/java/tf/jsw/mcadmintracker/mixin/SuppressCoordsMixin.java diff --git a/src/main/java/tf/jsw/mcadmintracker/Config.java b/src/main/java/tf/jsw/mcadmintracker/Config.java index da3230d..54b6fb6 100644 --- a/src/main/java/tf/jsw/mcadmintracker/Config.java +++ b/src/main/java/tf/jsw/mcadmintracker/Config.java @@ -8,13 +8,13 @@ import net.fabricmc.loader.api.FabricLoader; public final class Config { public static final Path MAIN_DIR = FabricLoader.getInstance().getConfigDir().resolve("mcadmintracker"); - private static final Path FILE; + private static final Path FILE = MAIN_DIR.resolve("port.txt"); public static void createDir() { try { Files.createDirectories(FILE.getParent()); } catch (NumberFormatException | IOException e) { - ((Exception)e).printStackTrace(); + e.printStackTrace(); } } @@ -22,14 +22,14 @@ public final class Config { public static int port() { try { Files.createDirectories(FILE.getParent()); - if (Files.notExists(FILE, new LinkOption[0])) { + if (Files.notExists(FILE)) { write(8080); return 8080; } else { return Integer.parseInt(Files.readString(FILE).trim()); } } catch (NumberFormatException | IOException e) { - ((Exception)e).printStackTrace(); + e.printStackTrace(); return 8080; } } @@ -37,8 +37,4 @@ public final class Config { public static void write(int port) throws IOException { Files.writeString(FILE, String.valueOf(port)); } - - static { - FILE = MAIN_DIR.resolve("config.txt"); - } } diff --git a/src/main/java/tf/jsw/mcadmintracker/mixin/GameModeMixin.java b/src/main/java/tf/jsw/mcadmintracker/mixin/GameModeMixin.java index a668304..b733cd0 100644 --- a/src/main/java/tf/jsw/mcadmintracker/mixin/GameModeMixin.java +++ b/src/main/java/tf/jsw/mcadmintracker/mixin/GameModeMixin.java @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import tf.jsw.mcadmintracker.Db; -@Mixin({ServerPlayerInteractionManager.class}) +@Mixin(ServerPlayerInteractionManager.class) public abstract class GameModeMixin { @Final @Shadow diff --git a/src/main/java/tf/jsw/mcadmintracker/mixin/SuppressCoordsMixin.java b/src/main/java/tf/jsw/mcadmintracker/mixin/SuppressCoordsMixin.java new file mode 100644 index 0000000..3c611d4 --- /dev/null +++ b/src/main/java/tf/jsw/mcadmintracker/mixin/SuppressCoordsMixin.java @@ -0,0 +1,22 @@ +package tf.jsw.mcadmintracker.mixin; + +import org.slf4j.Logger; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(value = net.minecraft.server.PlayerManager.class) // <-- fixed +public abstract class SuppressCoordsMixin { + + @Redirect(method = "onPlayerConnect", + at = @At(value = "INVOKE", + target = "Lorg/slf4j/Logger;info(Ljava/lang/String;[Ljava/lang/Object;)V", + remap = false)) + private void stripCoords(Logger logger, String format, Object[] args) { + String newFormat = format.substring(0, format.lastIndexOf(" at (")); + Object[] newArgs = new Object[args.length - 3]; + System.arraycopy(args, 0, newArgs, 0, newArgs.length); + logger.info(newFormat + " at REDACTED", newArgs); + } +} + diff --git a/src/main/resources/mcadmintracker.mixins.json b/src/main/resources/mcadmintracker.mixins.json index 86ffb06..a266c64 100644 --- a/src/main/resources/mcadmintracker.mixins.json +++ b/src/main/resources/mcadmintracker.mixins.json @@ -1,15 +1,16 @@ { - "required": true, - "package": "tf.jsw.mcadmintracker.mixin", - "compatibilityLevel": "JAVA_21", - "mixins": [ - "CommandMixin", - "GameModeMixin" - ], - "injectors": { - "defaultRequire": 1 - }, - "overwrites": { - "requireAnnotations": true + "required": true, + "package": "tf.jsw.mcadmintracker.mixin", + "compatibilityLevel": "JAVA_21", + "mixins": [ + "CommandMixin", + "GameModeMixin", + "SuppressCoordsMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true } } \ No newline at end of file