From 3140a4fe537edeb40ab2241432de7b2b6b535196 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 12 Jul 2020 22:34:10 -0300 Subject: [PATCH] Callback for extensions to contribute information to HUD loggers. --- src/main/java/carpet/CarpetExtension.java | 2 -- src/main/java/carpet/CarpetServer.java | 2 +- .../{utils => logging}/HUDController.java | 19 +++++++++++++++++-- src/main/java/carpet/logging/HUDLogger.java | 1 - 4 files changed, 18 insertions(+), 6 deletions(-) rename src/main/java/carpet/{utils => logging}/HUDController.java (88%) diff --git a/src/main/java/carpet/CarpetExtension.java b/src/main/java/carpet/CarpetExtension.java index 74a9e48f..749fbb14 100644 --- a/src/main/java/carpet/CarpetExtension.java +++ b/src/main/java/carpet/CarpetExtension.java @@ -63,6 +63,4 @@ public interface CarpetExtension default Map canHasTranslations(String lang) { return null;} - default void onUpdateHUD(MinecraftServer server) {} - } diff --git a/src/main/java/carpet/CarpetServer.java b/src/main/java/carpet/CarpetServer.java index 57afe91e..45afa86d 100644 --- a/src/main/java/carpet/CarpetServer.java +++ b/src/main/java/carpet/CarpetServer.java @@ -11,7 +11,7 @@ import carpet.helpers.TickSpeed; import carpet.logging.LoggerRegistry; import carpet.script.CarpetScriptServer; import carpet.settings.SettingsManager; -import carpet.utils.HUDController; +import carpet.logging.HUDController; import carpet.utils.MobAI; import com.mojang.brigadier.CommandDispatcher; import net.fabricmc.loader.api.FabricLoader; diff --git a/src/main/java/carpet/utils/HUDController.java b/src/main/java/carpet/logging/HUDController.java similarity index 88% rename from src/main/java/carpet/utils/HUDController.java rename to src/main/java/carpet/logging/HUDController.java index a587fe9f..4383c258 100644 --- a/src/main/java/carpet/utils/HUDController.java +++ b/src/main/java/carpet/logging/HUDController.java @@ -1,4 +1,4 @@ -package carpet.utils; +package carpet.logging; import carpet.CarpetServer; import carpet.helpers.HopperCounter; @@ -6,6 +6,8 @@ import carpet.helpers.TickSpeed; import carpet.logging.LoggerRegistry; import carpet.logging.logHelpers.PacketCounter; import carpet.mixins.PlayerListHeaderS2CPacketMixin; +import carpet.utils.Messenger; +import carpet.utils.SpawnReporter; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.network.packet.s2c.play.PlayerListHeaderS2CPacket; @@ -21,9 +23,21 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.function.Consumer; public class HUDController { + private static List> HUDListeners = new ArrayList<>(); + + /** + * Adds listener to be called when HUD is updated for logging information + * @param listener - a method to be called when new HUD inforation are collected + */ + public void register(Consumer listener) + { + HUDListeners.add(listener); + } + public static Map> player_huds = new HashMap<>(); public static void addMessage(PlayerEntity player, BaseText hudMessage) @@ -81,7 +95,8 @@ public class HUDController if (LoggerRegistry.__packets) LoggerRegistry.getLogger("packets").log(()-> packetCounter()); - CarpetServer.extensions.forEach(e -> e.onUpdateHUD(server)); + // extensions have time to pitch in. + HUDListeners.forEach(l -> l.accept(server)); for (PlayerEntity player: player_huds.keySet()) { diff --git a/src/main/java/carpet/logging/HUDLogger.java b/src/main/java/carpet/logging/HUDLogger.java index aff046de..018a3dfe 100644 --- a/src/main/java/carpet/logging/HUDLogger.java +++ b/src/main/java/carpet/logging/HUDLogger.java @@ -1,6 +1,5 @@ package carpet.logging; -import carpet.utils.HUDController; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.BaseText;