From c66983e623647853a00cc7246d0095bc1816150a Mon Sep 17 00:00:00 2001 From: alex <8379108+Alex33856@users.noreply.github.com> Date: Sun, 16 Nov 2025 20:36:00 -0500 Subject: [PATCH] Make Dungeon Map & Score Text Widgets --- .../config/categories/DungeonsCategory.java | 20 +++-- .../skyblock/dungeon/DungeonMap.java | 24 +---- .../dungeon/DungeonMapConfigScreen.java | 89 ------------------- .../skyblock/dungeon/DungeonMapWidget.java | 79 ++++++++++++++++ .../skyblock/dungeon/DungeonScoreHUD.java | 84 ++++++++++++----- .../tabhud/screenbuilder/WidgetManager.java | 19 +++- .../assets/skyblocker/lang/en_us.json | 2 +- 7 files changed, 176 insertions(+), 141 deletions(-) delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapWidget.java diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java index 9e4fa63c934..a5c797979a2 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java @@ -4,7 +4,10 @@ import de.hysky.skyblocker.config.ConfigUtils; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.configs.DungeonsConfig; -import de.hysky.skyblocker.skyblock.dungeon.DungeonMapConfigScreen; +import de.hysky.skyblocker.skyblock.dungeon.DungeonMapWidget; +import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; +import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.WidgetManager; +import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.waypoint.Waypoint.Type; import net.azureaaron.dandelion.systems.ButtonOption; import net.azureaaron.dandelion.systems.ConfigCategory; @@ -57,7 +60,7 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig newValue -> config.dungeons.onlyHighlightDonatedItems = newValue) .controller(ConfigUtils.createBooleanController()) .build()) - .option(Option.createBuilder() + .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.dungeons.sellableItemsHighlighter")) .description(Text.translatable("skyblocker.config.dungeons.sellableItemsHighlighter.@Tooltip")) .binding(defaults.dungeons.sellableItemsHighlighter, @@ -174,13 +177,16 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig .name(Text.translatable("skyblocker.config.dungeons.map.mapScaling")) .binding(defaults.dungeons.dungeonMap.mapScaling, () -> config.dungeons.dungeonMap.mapScaling, - newValue -> config.dungeons.dungeonMap.mapScaling = newValue) + newValue -> { + config.dungeons.dungeonMap.mapScaling = newValue; + DungeonMapWidget.INSTANCE.update(); + }) .controller(FloatController.createBuilder().build()) .build()) .option(ButtonOption.createBuilder() .name(Text.translatable("skyblocker.config.dungeons.map.mapScreen")) .prompt(Text.translatable("text.skyblocker.open")) - .action(screen -> MinecraftClient.getInstance().setScreen(new DungeonMapConfigScreen(screen))) + .action(screen -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.DUNGEON, WidgetManager.ScreenLayer.HUD, screen))) .build()) .build()) @@ -792,11 +798,7 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig .name(Text.translatable("skyblocker.config.dungeons.dungeonScore.scoreScaling")) .binding(defaults.dungeons.dungeonScore.scoreScaling, () -> config.dungeons.dungeonScore.scoreScaling, - newValue -> { - config.dungeons.dungeonScore.scoreX = config.dungeons.dungeonScore.scoreX + (int) ((config.dungeons.dungeonScore.scoreScaling - newValue) * 38.0); - config.dungeons.dungeonScore.scoreY = config.dungeons.dungeonScore.scoreY + (int) ((config.dungeons.dungeonScore.scoreScaling - newValue) * MinecraftClient.getInstance().textRenderer.fontHeight / 2.0); - config.dungeons.dungeonScore.scoreScaling = newValue; - }) + newValue -> config.dungeons.dungeonScore.scoreScaling = newValue) .controller(FloatController.createBuilder().build()) .build()) .build()) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java index 4a98be5c90a..abe8763bf96 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java @@ -1,21 +1,19 @@ package de.hysky.skyblocker.skyblock.dungeon; -import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.config.configs.DungeonsConfig; import de.hysky.skyblocker.mixins.accessors.MapStateAccessor; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonMapUtils; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonPlayerManager; -import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; +import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.WidgetManager; +import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.render.HudHelper; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.rendering.v1.hud.HudElementRegistry; -import net.fabricmc.fabric.api.client.rendering.v1.hud.VanillaHudElements; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.MapRenderState; @@ -29,7 +27,6 @@ import net.minecraft.item.map.MapDecoration; import net.minecraft.item.map.MapDecorationTypes; import net.minecraft.item.map.MapState; -import net.minecraft.util.Identifier; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -44,35 +41,22 @@ public class DungeonMap { private static final Logger LOGGER = LoggerFactory.getLogger(DungeonMap.class); - private static final Identifier DUNGEON_MAP = SkyblockerMod.id("dungeon_map"); private static final MapIdComponent DEFAULT_MAP_ID_COMPONENT = new MapIdComponent(1024); private static final MapRenderState MAP_RENDER_STATE = new MapRenderState(); private static MapIdComponent cachedMapIdComponent = null; @Init public static void init() { - HudElementRegistry.attachElementAfter(VanillaHudElements.STATUS_EFFECTS, DUNGEON_MAP, (context, tickCounter) -> render(context)); ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker") .then(ClientCommandManager.literal("hud") .then(ClientCommandManager.literal("dungeon") - .executes(Scheduler.queueOpenScreenCommand(DungeonMapConfigScreen::new)) + .executes(Scheduler.queueOpenScreenCommand(new WidgetsConfigurationScreen(Location.DUNGEON, WidgetManager.ScreenLayer.HUD, null))) ) ) )); ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> reset()); } - private static boolean shouldProcess() { - return Utils.isInDungeons() && DungeonScore.isDungeonStarted() && !DungeonManager.isInBoss(); - } - - private static void render(DrawContext context) { - DungeonsConfig.DungeonMap dungeonMap = SkyblockerConfigManager.get().dungeons.dungeonMap; - if (shouldProcess() && dungeonMap.enableMap) { - render(context, dungeonMap.mapX, dungeonMap.mapY, dungeonMap.mapScaling, dungeonMap.fancyMap); - } - } - public static void render(DrawContext context, int x, int y, float scale, boolean fancy) { render(context, x, y, scale, fancy, Integer.MIN_VALUE, Integer.MIN_VALUE, null); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java deleted file mode 100644 index 56634e390e7..00000000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java +++ /dev/null @@ -1,89 +0,0 @@ -package de.hysky.skyblocker.skyblock.dungeon; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.render.HudHelper; -import net.minecraft.client.gl.RenderPipelines; -import net.minecraft.client.gui.Click; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -import java.awt.*; - -public class DungeonMapConfigScreen extends Screen { - - private int mapX = SkyblockerConfigManager.get().dungeons.dungeonMap.mapX; - private int mapY = SkyblockerConfigManager.get().dungeons.dungeonMap.mapY; - private int scoreX = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreX; - private int scoreY = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreY; - private static final Identifier MAP_BACKGROUND = Identifier.ofVanilla("textures/map/map_background.png"); - private final Screen parent; - - protected DungeonMapConfigScreen() { - this(null); - } - - public DungeonMapConfigScreen(Screen parent) { - super(Text.literal("Dungeon Map Config")); - this.parent = parent; - } - - @Override - public void render(DrawContext context, int mouseX, int mouseY, float delta) { - super.render(context, mouseX, mouseY, delta); - renderHUDMap(context, mapX, mapY); - renderHUDScore(context, scoreX, scoreY); - context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width >> 1, height >> 1, Color.GRAY.getRGB()); - } - - @Override - public boolean mouseDragged(Click click, double offsetX, double offsetY) { - int mapSize = (int) (128 * SkyblockerConfigManager.get().dungeons.dungeonMap.mapScaling); - float scoreScaling = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreScaling; - int scoreWidth = (int) (textRenderer.getWidth(DungeonScoreHUD.getFormattedScoreText()) * scoreScaling); - int scoreHeight = (int) (textRenderer.fontHeight * scoreScaling); - if (HudHelper.pointIsInArea(click.x(), click.y(), mapX, mapY, mapX + mapSize, mapY + mapSize) && click.button() == 0) { - mapX = (int) Math.max(Math.min(click.x() - (mapSize >> 1), this.width - mapSize), 0); - mapY = (int) Math.max(Math.min(click.y() - (mapSize >> 1), this.height - mapSize), 0); - } else if (HudHelper.pointIsInArea(click.x(), click.y(), scoreX, scoreY, scoreX + scoreWidth, scoreY + scoreHeight) && click.button() == 0) { - scoreX = (int) Math.max(Math.min(click.x() - (scoreWidth >> 1), this.width - scoreWidth), 0); - scoreY = (int) Math.max(Math.min(click.y() - (scoreHeight >> 1), this.height - scoreHeight), 0); - } - return super.mouseDragged(click, offsetX, offsetY); - } - - @Override - public boolean mouseClicked(Click click, boolean doubled) { - if (click.button() == 1) { - mapX = 2; - mapY = 2; - scoreX = Math.max((int) ((mapX + (64 * SkyblockerConfigManager.get().dungeons.dungeonMap.mapScaling)) - textRenderer.getWidth(DungeonScoreHUD.getFormattedScoreText()) * SkyblockerConfigManager.get().dungeons.dungeonScore.scoreScaling / 2), 0); - scoreY = (int) (mapY + (128 * SkyblockerConfigManager.get().dungeons.dungeonMap.mapScaling) + 4); - } - - return super.mouseClicked(click, doubled); - } - - @Override - public void close() { - SkyblockerConfigManager.update(config -> { - config.dungeons.dungeonMap.mapX = mapX; - config.dungeons.dungeonMap.mapY = mapY; - config.dungeons.dungeonScore.scoreX = scoreX; - config.dungeons.dungeonScore.scoreY = scoreY; - }); - - this.client.setScreen(parent); - } - - public void renderHUDMap(DrawContext context, int x, int y) { - float scaling = SkyblockerConfigManager.get().dungeons.dungeonMap.mapScaling; - int size = (int) (128 * scaling); - context.drawTexture(RenderPipelines.GUI_TEXTURED, MAP_BACKGROUND, x, y, 0, 0, size, size, size, size); - } - - public void renderHUDScore(DrawContext context, int x, int y) { - DungeonScoreHUD.render(context, x, y); - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapWidget.java new file mode 100644 index 00000000000..77293915d02 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapWidget.java @@ -0,0 +1,79 @@ +package de.hysky.skyblocker.skyblock.dungeon; + +import de.hysky.skyblocker.annotations.RegisterWidget; +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.config.configs.DungeonsConfig; +import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; +import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; +import de.hysky.skyblocker.skyblock.tabhud.widget.HudWidget; +import de.hysky.skyblocker.utils.Location; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gl.RenderPipelines; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +import java.util.Set; + +@RegisterWidget +public class DungeonMapWidget extends HudWidget { + private static final Set AVAILABLE_LOCATIONS = Set.of(Location.DUNGEON); + private static final Identifier MAP_BACKGROUND = Identifier.ofVanilla("textures/map/map_background.png"); + public static DungeonMapWidget INSTANCE; + + public DungeonMapWidget() { + super("dungeon_map"); + INSTANCE = this; + update(); + } + + @Override + public Set availableLocations() { + return AVAILABLE_LOCATIONS; + } + + @Override + public void setEnabledIn(Location location, boolean enabled) { + if (!availableLocations().contains(location)) return; + SkyblockerConfigManager.get().dungeons.dungeonMap.enableMap = enabled; + } + + @Override + public boolean isEnabledIn(Location location) { + if (!availableLocations().contains(location)) return false; + return SkyblockerConfigManager.get().dungeons.dungeonMap.enableMap; + } + + @Override + public void update() { + float size = 128 * SkyblockerConfigManager.get().dungeons.dungeonMap.mapScaling; + setDimensions((int) size); + } + + private void renderConfig(DrawContext context) { + float scaling = SkyblockerConfigManager.get().dungeons.dungeonMap.mapScaling; + int size = (int) (128 * scaling); + context.drawTexture(RenderPipelines.GUI_TEXTURED, MAP_BACKGROUND, x, y, 0, 0, size, size, size, size); + } + + private boolean shouldRender() { + return DungeonScore.isDungeonStarted() && !DungeonManager.isInBoss(); + } + + @Override + protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { + // Show the default map texture if outside of Dungeons + if (MinecraftClient.getInstance().currentScreen instanceof WidgetsConfigurationScreen && !shouldRender()) { + renderConfig(context); + return; + } + if (!shouldRender()) return; + DungeonsConfig.DungeonMap dungeonMap = SkyblockerConfigManager.get().dungeons.dungeonMap; + DungeonMap.render(context, x, y, dungeonMap.mapScaling, dungeonMap.fancyMap); + } + + @Override + public Text getDisplayName() { + return Text.translatable("skyblocker.config.dungeons.map"); + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java index e1dadcc889c..100d8cc580f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java @@ -1,47 +1,89 @@ package de.hysky.skyblocker.skyblock.dungeon; -import org.joml.Matrix3x2fStack; - -import de.hysky.skyblocker.SkyblockerMod; -import de.hysky.skyblocker.annotations.Init; +import de.hysky.skyblocker.annotations.RegisterWidget; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; +import de.hysky.skyblocker.skyblock.tabhud.widget.HudWidget; +import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; -import net.fabricmc.fabric.api.client.rendering.v1.hud.HudElementRegistry; -import net.fabricmc.fabric.api.client.rendering.v1.hud.VanillaHudElements; +import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; +import org.joml.Matrix3x2fStack; + +import java.util.Set; + +@RegisterWidget +public class DungeonScoreHUD extends HudWidget { + private static final Set AVAILABLE_LOCATIONS = Set.of(Location.DUNGEON); + //This is 4+5 wide, needed to offset the extra width from bold numbers (3×1 wide) in S+ and the "+" (6 wide) so that it doesn't go off the screen if the score is S+ and the hud element is at the right edge of the screen + private static final Text extraSpace = Text.literal(" ").append(Text.literal(" ").formatted(Formatting.BOLD)); -public class DungeonScoreHUD { - private static final Identifier DUNGEON_SCORE = SkyblockerMod.id("dungeon_score"); + private static Text scoreText = getFormattedScoreText(); + private static float previousScale = -1f; - private DungeonScoreHUD() { + public DungeonScoreHUD() { + super("dungeon_score"); + Scheduler.INSTANCE.scheduleCyclic(this::updateFromScheduler, 5); } - @Init - public static void init() { - HudElementRegistry.attachElementAfter(VanillaHudElements.OVERLAY_MESSAGE, DUNGEON_SCORE, (context, tickCounter) -> render(context)); + @Override + public Set availableLocations() { + return AVAILABLE_LOCATIONS; } - //This is 4+5 wide, needed to offset the extra width from bold numbers (3×1 wide) in S+ and the "+" (6 wide) so that it doesn't go off the screen if the score is S+ and the hud element is at the right edge of the screen - private static final Text extraSpace = Text.literal(" ").append(Text.literal(" ").formatted(Formatting.BOLD)); + @Override + public void setEnabledIn(Location location, boolean enabled) { + if (!AVAILABLE_LOCATIONS.contains(location)) return; + SkyblockerConfigManager.get().dungeons.dungeonScore.enableScoreHUD = enabled; + } - private static void render(DrawContext context) { - if (Utils.isInDungeons() && DungeonScore.isDungeonStarted() && SkyblockerConfigManager.get().dungeons.dungeonScore.enableScoreHUD) { - int x = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreX; - int y = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreY; - render(context, x, y); + @Override + public boolean isEnabledIn(Location location) { + if (!AVAILABLE_LOCATIONS.contains(location)) return false; + return SkyblockerConfigManager.get().dungeons.dungeonScore.enableScoreHUD; + } + + private void updateFromScheduler() { + if (!shouldRender(Utils.getLocation())) return; + update(); + } + + @Override + public void update() { + scoreText = getFormattedScoreText(); + // Update widget size + float scale = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreScaling; + if (scale != previousScale) { + previousScale = scale; + TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; + setDimensions((int) (textRenderer.getWidth(scoreText) * scale), (int) (textRenderer.fontHeight * scale)); } } + @Override + protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { + if (MinecraftClient.getInstance().currentScreen instanceof WidgetsConfigurationScreen) { + if (previousScale == -1) update(); + } else if (!DungeonScore.isDungeonStarted()) return; + render(context, x, y); + } + + @Override + public Text getDisplayName() { + return Text.translatable("skyblocker.config.dungeons.dungeonScore"); + } + public static void render(DrawContext context, int x, int y) { float scale = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreScaling; Matrix3x2fStack matrixStack = context.getMatrices(); matrixStack.pushMatrix(); + matrixStack.translate(x, y); matrixStack.scale(scale, scale); - context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, getFormattedScoreText(), (int) (x / scale), (int) (y / scale), 0xFFFFFFFF); + context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, scoreText, 0, 0, 0xFFFFFFFF); matrixStack.popMatrix(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/WidgetManager.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/WidgetManager.java index a28e3bd23e3..d8491259d1b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/WidgetManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/WidgetManager.java @@ -26,7 +26,6 @@ import net.minecraft.client.util.Window; import net.minecraft.util.Identifier; import net.minecraft.util.StringIdentifiable; - import org.joml.Matrix3x2fStack; import org.slf4j.Logger; @@ -197,6 +196,24 @@ private static void fillDefaultConfig() { 0, WidgetManager.ScreenLayer.HUD) ); + screenBuilder.setPositionRule( + "dungeon_map", + new PositionRule( + "screen", + PositionRule.Point.DEFAULT, PositionRule.Point.DEFAULT, + SkyblockerConfigManager.get().dungeons.dungeonMap.mapX, SkyblockerConfigManager.get().dungeons.dungeonMap.mapY, + WidgetManager.ScreenLayer.HUD + ) + ); + screenBuilder.setPositionRule( + "dungeon_score", + new PositionRule( + "screen", + PositionRule.Point.DEFAULT, PositionRule.Point.DEFAULT, + SkyblockerConfigManager.get().dungeons.dungeonScore.scoreX, SkyblockerConfigManager.get().dungeons.dungeonScore.scoreY, + WidgetManager.ScreenLayer.HUD + ) + ); } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index b724a46ef80..6bcfaad5b83 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -169,7 +169,7 @@ "skyblocker.config.dungeons.livid.lividColorText": "Livid Color Chat Message", "skyblocker.config.dungeons.livid.lividColorText.@Tooltip": "Text for the chat message, the string \"[color]\" will be replaced with the livid color.", - "skyblocker.config.dungeons.map": "Map", + "skyblocker.config.dungeons.map": "Dungeon Map", "skyblocker.config.dungeons.map.enableMap": "Enable Map", "skyblocker.config.dungeons.map.fancyMap": "Fancy Dungeon Map", "skyblocker.config.dungeons.map.showSelfHead": "Show Self Head",