From a5ca664a6a84014cc623eb74325c2f41026c88ee Mon Sep 17 00:00:00 2001 From: Mike <44955015+jdbool@users.noreply.github.com> Date: Wed, 21 Jun 2023 15:14:54 -0700 Subject: [PATCH 1/2] Add useMessageTag setting --- src/api/java/baritone/api/Settings.java | 8 +++++- src/api/java/baritone/api/utils/Helper.java | 28 ++++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index c815d89d3..ae8cb07fd 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -21,6 +21,7 @@ import baritone.api.utils.NotificationHelper; import baritone.api.utils.SettingsUtil; import baritone.api.utils.TypeUtils; import baritone.api.utils.gui.BaritoneToast; +import net.minecraft.client.GuiMessageTag; import net.minecraft.client.Minecraft; import net.minecraft.core.Vec3i; import net.minecraft.network.chat.Component; @@ -772,6 +773,11 @@ public final class Settings { */ public final Setting shortBaritonePrefix = new Setting<>(false); + /** + * Use a modern message tag instead of a prefix when logging to chat + */ + public final Setting useMessageTag = new Setting<>(false); + /** * Echo commands to chat when they are run */ @@ -1141,7 +1147,7 @@ public final class Settings { * via {@link Consumer#andThen(Consumer)} or it can completely be overriden via setting * {@link Setting#value}; */ - public final Setting> logger = new Setting<>(msg -> Minecraft.getInstance().gui.getChat().addMessage(msg)); + public final Setting> logger = new Setting<>((msg, tag) -> Minecraft.getInstance().gui.getChat().addMessage(msg, null, tag)); /** * The function that is called when Baritone will send a desktop notification. This function can be added to diff --git a/src/api/java/baritone/api/utils/Helper.java b/src/api/java/baritone/api/utils/Helper.java index 7e3c44607..f0709c1cc 100755 --- a/src/api/java/baritone/api/utils/Helper.java +++ b/src/api/java/baritone/api/utils/Helper.java @@ -18,8 +18,10 @@ package baritone.api.utils; import baritone.api.BaritoneAPI; +import baritone.api.Settings; import baritone.api.utils.gui.BaritoneToast; import net.minecraft.ChatFormatting; +import net.minecraft.client.GuiMessageTag; import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -48,6 +50,11 @@ public interface Helper { */ Minecraft mc = Minecraft.getInstance(); + /** + * The tag to assign to chat messages when {@link Settings#useMessageTag} is {@code true}. + */ + GuiMessageTag MESSAGE_TAG = new GuiMessageTag(0xFF55FF, null, Component.literal("Baritone message."), "Baritone"); + static Component getPrefix() { // Inner text component final Calendar now = Calendar.getInstance(); @@ -156,20 +163,33 @@ public interface Helper { * Send components to chat with the [Baritone] prefix * * @param logAsToast Whether to log as a toast notification + * @param useMessageTag Whether to use a message tag instead of a prefix * @param components The components to send */ - default void logDirect(boolean logAsToast, Component... components) { + default void logDirect(boolean logAsToast, boolean useMessageTag, Component... components) { MutableComponent component = Component.literal(""); - component.append(getPrefix()); - component.append(Component.literal(" ")); + if (!logAsToast && !useMessageTag) { + component.append(getPrefix()); + component.append(Component.literal(" ")); + } Arrays.asList(components).forEach(component::append); if (logAsToast) { logToast(getPrefix(), component); } else { - mc.execute(() -> BaritoneAPI.getSettings().logger.value.accept(component)); + mc.execute(() -> BaritoneAPI.getSettings().logger.value.accept(component, useMessageTag ? MESSAGE_TAG : null)); } } + /** + * Send components to chat with the [Baritone] prefix + * + * @param logAsToast Whether to log as a toast notification + * @param components The components to send + */ + default void logDirect(boolean logAsToast, Component... components) { + logDirect(logAsToast, BaritoneAPI.getSettings().useMessageTag.value, components); + } + /** * Send components to chat with the [Baritone] prefix * From 7ef4307ab7977432beae24c4965bcb2e573e6d00 Mon Sep 17 00:00:00 2001 From: Mike <44955015+jdbool@users.noreply.github.com> Date: Wed, 21 Jun 2023 18:25:24 -0700 Subject: [PATCH 2/2] Clean up useMessageTag --- src/api/java/baritone/api/Settings.java | 6 +++++- src/api/java/baritone/api/utils/Helper.java | 17 +++-------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index ae8cb07fd..2b7ebc288 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -17,6 +17,7 @@ package baritone.api; +import baritone.api.utils.Helper; import baritone.api.utils.NotificationHelper; import baritone.api.utils.SettingsUtil; import baritone.api.utils.TypeUtils; @@ -1147,7 +1148,10 @@ public final class Settings { * via {@link Consumer#andThen(Consumer)} or it can completely be overriden via setting * {@link Setting#value}; */ - public final Setting> logger = new Setting<>((msg, tag) -> Minecraft.getInstance().gui.getChat().addMessage(msg, null, tag)); + public final Setting> logger = new Setting<>((msg) -> { + final GuiMessageTag tag = useMessageTag.value ? Helper.MESSAGE_TAG : null; + Minecraft.getInstance().gui.getChat().addMessage(msg, null, tag); + }); /** * The function that is called when Baritone will send a desktop notification. This function can be added to diff --git a/src/api/java/baritone/api/utils/Helper.java b/src/api/java/baritone/api/utils/Helper.java index f0709c1cc..63ced2496 100755 --- a/src/api/java/baritone/api/utils/Helper.java +++ b/src/api/java/baritone/api/utils/Helper.java @@ -163,12 +163,11 @@ public interface Helper { * Send components to chat with the [Baritone] prefix * * @param logAsToast Whether to log as a toast notification - * @param useMessageTag Whether to use a message tag instead of a prefix * @param components The components to send */ - default void logDirect(boolean logAsToast, boolean useMessageTag, Component... components) { + default void logDirect(boolean logAsToast, Component... components) { MutableComponent component = Component.literal(""); - if (!logAsToast && !useMessageTag) { + if (!logAsToast && !BaritoneAPI.getSettings().useMessageTag.value) { component.append(getPrefix()); component.append(Component.literal(" ")); } @@ -176,20 +175,10 @@ public interface Helper { if (logAsToast) { logToast(getPrefix(), component); } else { - mc.execute(() -> BaritoneAPI.getSettings().logger.value.accept(component, useMessageTag ? MESSAGE_TAG : null)); + mc.execute(() -> BaritoneAPI.getSettings().logger.value.accept(component)); } } - /** - * Send components to chat with the [Baritone] prefix - * - * @param logAsToast Whether to log as a toast notification - * @param components The components to send - */ - default void logDirect(boolean logAsToast, Component... components) { - logDirect(logAsToast, BaritoneAPI.getSettings().useMessageTag.value, components); - } - /** * Send components to chat with the [Baritone] prefix *