From 286dbead140f898ce5f37ebf839e536dd101954b Mon Sep 17 00:00:00 2001 From: Fx Morin Date: Mon, 27 Jun 2022 08:04:11 -0400 Subject: [PATCH] Logger Improvements (#1399) * Null checks & using getOptions * Removed useless variable, and made HashMap's final * This list & Map should not be modified. Plus small changes * Small things * Fix #1398 * Apply suggestions from code review * Remove Dead call * Handle options being null * Remove redundant field explainers Those were there for when they were intermediary fields, they now have a proper name --- .../java/carpet/logging/HUDController.java | 25 ++++++--------- src/main/java/carpet/logging/Logger.java | 22 ++++++------- .../java/carpet/logging/LoggerRegistry.java | 7 ++--- .../logHelpers/ExplosionLogHelper.java | 2 +- .../logging/logHelpers/PacketCounter.java | 2 +- .../logging/logHelpers/TNTLogHelper.java | 31 ++++++++----------- .../logHelpers/TrajectoryLogHelper.java | 31 ++++++++----------- 7 files changed, 51 insertions(+), 69 deletions(-) diff --git a/src/main/java/carpet/logging/HUDController.java b/src/main/java/carpet/logging/HUDController.java index e714851e..61f5c9b2 100644 --- a/src/main/java/carpet/logging/HUDController.java +++ b/src/main/java/carpet/logging/HUDController.java @@ -29,7 +29,7 @@ import java.util.function.Consumer; public class HUDController { - private static List> HUDListeners = new ArrayList<>(); + private static final List> HUDListeners = new ArrayList<>(); /** * Adds listener to be called when HUD is updated for logging information @@ -40,7 +40,7 @@ public class HUDController HUDListeners.add(listener); } - public static Map> player_huds = new HashMap<>(); + public static final Map> player_huds = new HashMap<>(); //keyed with player names so unlogged players don't hold the reference public static final Map scarpet_headers = new HashMap<>(); @@ -91,19 +91,12 @@ public class HUDController if (LoggerRegistry.__mobcaps) LoggerRegistry.getLogger("mobcaps").log((option, player) -> { - ResourceKey dim = player.level.dimension(); //getDimType - switch (option) - { - case "overworld": - dim = Level.OVERWORLD; // OW - break; - case "nether": - dim = Level.NETHER; // nether - break; - case "end": - dim = Level.END; // end - break; - } + ResourceKey dim = switch (option) { + case "overworld" -> Level.OVERWORLD; + case "nether" -> Level.NETHER; + case "end" -> Level.END; + default -> player.level.dimension(); + }; return new Component[]{SpawnReporter.printMobcapsForDimension(server.getLevel(dim), false).get(0)}; }); @@ -111,7 +104,7 @@ public class HUDController LoggerRegistry.getLogger("counter").log((option)->send_counter_info(server, option)); if (LoggerRegistry.__packets) - LoggerRegistry.getLogger("packets").log(()-> packetCounter()); + LoggerRegistry.getLogger("packets").log(HUDController::packetCounter); // extensions have time to pitch in. HUDListeners.forEach(l -> l.accept(server)); diff --git a/src/main/java/carpet/logging/Logger.java b/src/main/java/carpet/logging/Logger.java index 94bd14ff..86cf5c91 100644 --- a/src/main/java/carpet/logging/Logger.java +++ b/src/main/java/carpet/logging/Logger.java @@ -62,7 +62,7 @@ public class Logger this.acceleratorField = acceleratorField; this.logName = logName; this.default_option = def; - this.options = options; + this.options = options == null ? new String[0] : options; this.strictOptions = strictOptions; if (acceleratorField == null) CarpetSettings.LOG.error("[CM] Logger "+getLogName()+" is missing a specified accelerator"); @@ -74,10 +74,6 @@ public class Logger } public String [] getOptions() { - if (options == null) - { - return new String[0]; - } return options; } public String getLogName() @@ -219,9 +215,13 @@ public class Logger else if(firstTime) { Set loggingOptions = new HashSet<>(Arrays.asList(CarpetSettings.defaultLoggers.split(","))); - if (loggingOptions.contains(getLogName())) - { - LoggerRegistry.subscribePlayer(playerName, getLogName(), getDefault()); + String logName = getLogName(); + for (String str : loggingOptions) { + String[] vars = str.split(" ", 2); + if (vars[0].equals(logName)) { + LoggerRegistry.subscribePlayer(playerName, getLogName(), vars.length == 1 ? getDefault() : vars[1]); + break; + } } } LoggerRegistry.setAccess(this); @@ -241,15 +241,15 @@ public class Logger public String getAcceptedOption(String arg) { - if (options != null && Arrays.asList(options).contains(arg)) return arg; + if (Arrays.asList(this.getOptions()).contains(arg)) return arg; return null; } public boolean isOptionValid(String option) { if (strictOptions) { - return Arrays.asList(this.options).contains(option); + return Arrays.asList(this.getOptions()).contains(option); } - return true; + return option != null; } } diff --git a/src/main/java/carpet/logging/LoggerRegistry.java b/src/main/java/carpet/logging/LoggerRegistry.java index 19a5ca2a..0b448e29 100644 --- a/src/main/java/carpet/logging/LoggerRegistry.java +++ b/src/main/java/carpet/logging/LoggerRegistry.java @@ -14,9 +14,9 @@ import net.minecraft.world.item.DyeColor; public class LoggerRegistry { // Map from logger names to loggers. - private static Map loggerRegistry = new HashMap<>(); + private static final Map loggerRegistry = new HashMap<>(); // Map from player names to the set of names of the logs that player is subscribed to. - private static Map> playerSubscriptions = new HashMap<>(); + private static final Map> playerSubscriptions = new HashMap<>(); //statics to quickly asses if its worth even to call each one public static boolean __tnt; public static boolean __projectiles; @@ -116,7 +116,6 @@ public class LoggerRegistry protected static void setAccess(Logger logger) { - String name = logger.getLogName(); boolean value = logger.hasOnlineSubscribers(); try { @@ -137,7 +136,7 @@ public class LoggerRegistry setAccess(logger); } - private static Set seenPlayers = new HashSet<>(); + private final static Set seenPlayers = new HashSet<>(); public static void stopLoggers() { diff --git a/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java b/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java index 96d99777..7d6edacd 100644 --- a/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java +++ b/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java @@ -23,7 +23,7 @@ public class ExplosionLogHelper public final Entity entity; private final float power; private boolean affectBlocks = false; - private Object2IntMap impactedEntities = new Object2IntOpenHashMap<>(); + private final Object2IntMap impactedEntities = new Object2IntOpenHashMap<>(); private static long lastGametime = 0; private static int explosionCountInCurretGT = 0; diff --git a/src/main/java/carpet/logging/logHelpers/PacketCounter.java b/src/main/java/carpet/logging/logHelpers/PacketCounter.java index 1e5bf00f..e5ca6cc5 100644 --- a/src/main/java/carpet/logging/logHelpers/PacketCounter.java +++ b/src/main/java/carpet/logging/logHelpers/PacketCounter.java @@ -4,5 +4,5 @@ public class PacketCounter { public static long totalOut=0; public static long totalIn=0; - public static void reset() {totalIn = 0l; totalOut = 0L; } + public static void reset() {totalIn = 0L; totalOut = 0L; } } diff --git a/src/main/java/carpet/logging/logHelpers/TNTLogHelper.java b/src/main/java/carpet/logging/logHelpers/TNTLogHelper.java index bdcc1e69..78272a2a 100644 --- a/src/main/java/carpet/logging/logHelpers/TNTLogHelper.java +++ b/src/main/java/carpet/logging/logHelpers/TNTLogHelper.java @@ -33,24 +33,19 @@ public class TNTLogHelper lastGametime = gametime; } tntCount++; - LoggerRegistry.getLogger("tnt").log( (option) -> { - switch (option) - { - case "brief": - return new Component[]{Messenger.c( - "l P ",Messenger.dblt("l",primedX,primedY,primedZ), - "w ",Messenger.dblt("l", primedAngle.x, primedAngle.y, primedAngle.z), - "r E ",Messenger.dblt("r",x, y, z))}; - case "full": - return new Component[]{Messenger.c( - "r #" + tntCount, - "m @" + gametime, - "g : ", - "l P ",Messenger.dblf("l",primedX,primedY,primedZ), - "w ",Messenger.dblf("l", primedAngle.x, primedAngle.y, primedAngle.z), - "r E ",Messenger.dblf("r",x, y, z))}; - } - return null; + LoggerRegistry.getLogger("tnt").log( (option) -> switch (option) { + case "brief" -> new Component[]{Messenger.c( + "l P ", Messenger.dblt("l", primedX, primedY, primedZ), + "w ", Messenger.dblt("l", primedAngle.x, primedAngle.y, primedAngle.z), + "r E ", Messenger.dblt("r", x, y, z))}; + case "full" -> new Component[]{Messenger.c( + "r #" + tntCount, + "m @" + gametime, + "g : ", + "l P ", Messenger.dblf("l", primedX, primedY, primedZ), + "w ", Messenger.dblf("l", primedAngle.x, primedAngle.y, primedAngle.z), + "r E ", Messenger.dblf("r", x, y, z))}; + default -> null; }); } } diff --git a/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java b/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java index dadf856f..064510dd 100644 --- a/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java +++ b/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java @@ -17,10 +17,10 @@ public class TrajectoryLogHelper private static final int MAX_TICKS_PER_LINE = 20; private boolean doLog; - private Logger logger; + private final Logger logger; - private ArrayList positions = new ArrayList<>(); - private ArrayList motions = new ArrayList<>(); + private final ArrayList positions = new ArrayList<>(); + private final ArrayList motions = new ArrayList<>(); public TrajectoryLogHelper(String logName) { @@ -40,37 +40,32 @@ public class TrajectoryLogHelper if (!doLog) return; logger.log( (option) -> { List comp = new ArrayList<>(); - switch (option) - { - case "brief": + switch (option) { + case "brief" -> { comp.add(Messenger.s("")); List line = new ArrayList<>(); - - for (int i = 0; i < positions.size(); i++) - { + for (int i = 0; i < positions.size(); i++) { Vec3 pos = positions.get(i); Vec3 mot = motions.get(i); line.add("w x"); line.add(String.format("^w Tick: %d\nx: %f\ny: %f\nz: %f\n------------\nmx: %f\nmy: %f\nmz: %f", i, pos.x, pos.y, pos.z, mot.x, mot.y, mot.z)); - if ((((i+1) % MAX_TICKS_PER_LINE)==0) || i == positions.size()-1) - { + if ((((i + 1) % MAX_TICKS_PER_LINE) == 0) || i == positions.size() - 1) { comp.add(Messenger.c(line.toArray(new Object[0]))); line.clear(); } } - break; - case "full": + } + case "full" -> { comp.add(Messenger.c("w ---------")); - for (int i = 0; i < positions.size(); i++) - { + for (int i = 0; i < positions.size(); i++) { Vec3 pos = positions.get(i); Vec3 mot = motions.get(i); comp.add(Messenger.c( - String.format("w tick: %3d pos",i),Messenger.dblt("w",pos.x, pos.y, pos.z), - "w mot",Messenger.dblt("w",mot.x, mot.y, mot.z))); + String.format("w tick: %3d pos", i), Messenger.dblt("w", pos.x, pos.y, pos.z), + "w mot", Messenger.dblt("w", mot.x, mot.y, mot.z))); } - break; + } } return comp.toArray(new Component[0]); });