Callback for extensions to contribute information to HUD loggers.

This commit is contained in:
gnembon committed 2020-07-12 22:34:10 -03:00
1 parent 4b8219281b
commit 3140a4fe53
4 files changed
+18 -6

No files matched your search

@@ -63,6 +63,4 @@ public interface CarpetExtension
default Map<String, String> canHasTranslations(String lang) { return null;}
default void onUpdateHUD(MinecraftServer server) {}
}
+1 -1
View File
@@ -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;
@@ -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<Consumer<MinecraftServer>> 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<MinecraftServer> listener)
{
HUDListeners.add(listener);
}
public static Map<PlayerEntity, List<BaseText>> 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())
{
@@ -1,6 +1,5 @@
package carpet.logging;
import carpet.utils.HUDController;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.BaseText;