diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
5 files changed, 49 insertions, 59 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java index 6b26d043..59d70405 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java @@ -14,6 +14,7 @@ import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; import java.awt.*; import java.util.Arrays; @@ -67,7 +68,7 @@ public class CrystalsHud { drawTexture(MAP_TEXTURE,hudX,hudY,0,0,62,62,62,62); //if enabled add waypoint locations to map if (SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.showLocations){ - Map<String,CrystalsWaypoint> ActiveWaypoints= SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.ActiveWaypoints; + Map<String,CrystalsWaypoint> ActiveWaypoints= CrystalsLocationsManager.ActiveWaypoints; for (CrystalsWaypoint waypoint : ActiveWaypoints.values()){ Color waypointColor = waypoint.category.color; Pair<Integer, Integer> renderPos = transformLocation(waypoint.pos.getX(),waypoint.pos.getZ()); @@ -106,9 +107,8 @@ public class CrystalsHud { //converts an x and z to a location on the map int transformedX = (int)((x-202)/621 * 62); int transformedY = (int)((z -202)/621 * 62); - transformedX = Math.max(0, Math.min(62, transformedX)); - transformedY = Math.max(0, Math.min(62, transformedY)); - + transformedX = MathHelper.clamp(transformedX,0, 62); + transformedY = MathHelper.clamp(transformedY,0, 62); return Pair.of(transformedX,transformedY); } /** diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java index eb68ed9f..74730315 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java @@ -1,14 +1,11 @@ package de.hysky.skyblocker.skyblock.dwarven; -import com.mojang.authlib.GameProfile; import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.StringArgumentType; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; -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.command.v2.FabricClientCommandSource; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; @@ -17,19 +14,14 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.command.CommandRegistryAccess; import net.minecraft.command.argument.BlockPosArgumentType; -import net.minecraft.command.argument.DefaultPosArgument; import net.minecraft.command.argument.PosArgument; -import net.minecraft.network.message.MessageType; -import net.minecraft.network.message.SignedMessage; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.text.ClickEvent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import java.awt.*; -import java.time.Instant; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -47,16 +39,17 @@ public class CrystalsLocationsManager { * A look-up table to convert between location names and waypoint in the {@link CrystalsWaypoint.Category} values. */ public static final Map<String, CrystalsWaypoint.Category> WAYPOINTLOCATIONS = Map.of( - "Jungle Temple", CrystalsWaypoint.Category.JUNGLETEMPLE, - "Mines Of Divan", CrystalsWaypoint.Category.MINESOFDIVAN, - "Goblin Queen's Den", CrystalsWaypoint.Category.GOBLINQUEENSDEN, - "Lost Precursor City", CrystalsWaypoint.Category.LOSTPRECURSORCITY, + "Jungle Temple", CrystalsWaypoint.Category.JUNGLE_TEMPLE, + "Mines Of Divan", CrystalsWaypoint.Category.MINES_OF_DIVAN, + "Goblin Queen's Den", CrystalsWaypoint.Category.GOBLIN_QUEENS_DEN, + "Lost Precursor City", CrystalsWaypoint.Category.LOST_PRECURSOR_CITY, "Khazad-dûm", CrystalsWaypoint.Category.KHAZADUM, - "Fairy Grotto", CrystalsWaypoint.Category.FAIRYGROTTO, - "Dragon's Lair", CrystalsWaypoint.Category.DRAGONSLAIR, + "Fairy Grotto", CrystalsWaypoint.Category.FAIRY_GROTTO, + "Dragon's Lair", CrystalsWaypoint.Category.DRAGONS_LAIR, "Corleone", CrystalsWaypoint.Category.CORLEONE, "King", CrystalsWaypoint.Category.KING ); + protected static Map<String, CrystalsWaypoint> ActiveWaypoints = new HashMap<>() {}; private static final Pattern TEXT_CWORDS_PATTERN = Pattern.compile("([0-9][0-9][0-9]) ([0-9][0-9][0-9]?) ([0-9][0-9][0-9])"); @@ -149,13 +142,11 @@ public class CrystalsLocationsManager { private static void addCustomWaypoint( Text waypointName, BlockPos pos) { CrystalsWaypoint.Category category = WAYPOINTLOCATIONS.get(waypointName.getString()); CrystalsWaypoint waypoint = new CrystalsWaypoint(category, waypointName, pos); - Map<String,CrystalsWaypoint> ActiveWaypoints= SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.ActiveWaypoints; ActiveWaypoints.put(waypointName.getString(),waypoint); } public static void render(WorldRenderContext context) { if (SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.enabled ) { - Map<String,CrystalsWaypoint> ActiveWaypoints= SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.ActiveWaypoints; for (CrystalsWaypoint crystalsWaypoint : ActiveWaypoints.values()) { if (crystalsWaypoint.shouldRender()) { crystalsWaypoint.render(context); @@ -166,13 +157,11 @@ public class CrystalsLocationsManager { public static void update() { if (client.player == null || client.getNetworkHandler() == null || !SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.enabled || !Utils.isInCrystals()) { - SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.ActiveWaypoints= new HashMap<>(); return; } //get if the player is in the crystals String location = Utils.getIslandArea().replace("⏣ ",""); //if new location and needs waypoint add waypoint - Map<String,CrystalsWaypoint> ActiveWaypoints= SkyblockerConfigManager.get().locations.dwarvenMines.crystalsWaypoints.ActiveWaypoints; if (!location.equals("Unknown") && WAYPOINTLOCATIONS.containsKey(location) && !ActiveWaypoints.containsKey(location)){ //add waypoint at player location BlockPos playerLocation = client.player.getBlockPos(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsWaypoint.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsWaypoint.java index 3ae56c47..f9016f3a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsWaypoint.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsWaypoint.java @@ -1,20 +1,16 @@ package de.hysky.skyblocker.skyblock.dwarven; import com.google.gson.JsonObject; -import com.mojang.brigadier.context.CommandContext; import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; -import com.mojang.serialization.codecs.RecordCodecBuilder; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.render.RenderHelper; import de.hysky.skyblocker.utils.waypoint.Waypoint; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.client.MinecraftClient; -import net.minecraft.command.argument.EnumArgumentType; import net.minecraft.entity.Entity; import net.minecraft.text.Text; -import net.minecraft.text.TextCodecs; import net.minecraft.util.Formatting; import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; @@ -23,8 +19,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.*; -import java.util.List; -import java.util.Map; import java.util.function.Predicate; import java.util.function.Supplier; import java.util.function.ToDoubleFunction; @@ -84,13 +78,13 @@ public class CrystalsWaypoint extends Waypoint { * enum for the different waypoints used int the crystals hud each with a {@link Category#name} and associated {@link Category#color} */ enum Category implements StringIdentifiable { - JUNGLETEMPLE("Jungle Temple",Color.GREEN), - MINESOFDIVAN("Mines Of Divan",Color.CYAN), - GOBLINQUEENSDEN("Goblin Queen's Den",Color.ORANGE), - LOSTPRECURSORCITY("Lost Precursor City",Color.BLUE), + JUNGLE_TEMPLE("Jungle Temple",Color.GREEN), + MINES_OF_DIVAN("Mines Of Divan",Color.CYAN), + GOBLIN_QUEENS_DEN("Goblin Queen's Den",Color.ORANGE), + LOST_PRECURSOR_CITY("Lost Precursor City",Color.BLUE), KHAZADUM("Khazad-dûm",Color.RED), - FAIRYGROTTO("Fairy Grotto",Color.PINK), - DRAGONSLAIR("Dragon's Lair",Color.BLACK), + FAIRY_GROTTO("Fairy Grotto",Color.PINK), + DRAGONS_LAIR("Dragon's Lair",Color.BLACK), CORLEONE("Corleone",Color.gray), KING("King",Color.yellow), DEFAULT("Default",Color.BLACK); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java index fb055b87..5c3498bc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java @@ -15,6 +15,7 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import java.awt.*; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; @@ -27,8 +28,8 @@ public class DwarvenHud { public static final MinecraftClient client = MinecraftClient.getInstance(); public static List<Commission> commissionList = new ArrayList<>(); - public static int mithrilPowder = 0; - public static int gemStonePowder = 0; + public static String mithrilPowder = "0"; + public static String gemStonePowder = "0"; public static final List<Pattern> COMMISSIONS = Stream.of( "(?:Titanium|Mithril|Hard Stone) Miner", @@ -44,6 +45,8 @@ public class DwarvenHud { "(?:Amber|Sapphire|Jade|Amethyst|Topaz) Crystal Hunter", "Chest Looter").map(s -> Pattern.compile("^.*(" + s + "): (\\d+\\.?\\d*%|DONE)")) .collect(Collectors.toList()); + public static final Pattern MITHRIL_PATTERN = Pattern.compile("Mithril Powder: [0-9,]+"); + public static final Pattern GEMSTONE_PATTERN = Pattern.compile("Gemstone Powder: [0-9,]+"); public static void init() { ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker") @@ -59,11 +62,11 @@ public class DwarvenHud { return; } render(HudCommsWidget.INSTANCE,HudPowderWidget.INSTANCE, context, - SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsX, - SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsY, + SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x, + SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y, SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderX, SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderY, - commissionList,mithrilPowder,gemStonePowder); + commissionList); }); } @@ -107,11 +110,11 @@ public class DwarvenHud { }; } - public static void render(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions,int mithril, int gemStone) { + public static void render(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions) { switch (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.style) { - case SIMPLE -> renderSimple(hcw,hpw, context, comHudX, comHudY,powderHudX,powderHudY, commissions,mithril,gemStone); - case FANCY -> renderFancy(hcw,hpw, context, comHudX, comHudY,powderHudX,powderHudY, commissions,mithril,gemStone); + case SIMPLE -> renderSimple(hcw,hpw, context, comHudX, comHudY,powderHudX,powderHudY, commissions); + case FANCY -> renderFancy(hcw,hpw, context, comHudX, comHudY,powderHudX,powderHudY, commissions); case CLASSIC -> renderClassic(context, comHudX, comHudY,powderHudX,powderHudY, commissions); } } @@ -142,10 +145,8 @@ public class DwarvenHud { context .drawTextWithShadow(client.textRenderer, - Text.literal(commission.commission + ": ") - .styled(style -> style.withColor(Formatting.AQUA)) - .append(Text.literal(commission.progression) - .styled(style -> style.withColor(Colors.hypixelProgressColor(percentage)))), + Text.literal(commission.commission + ": ").formatted(Formatting.AQUA) + .append(Text.literal(commission.progression).formatted(Colors.hypixelProgressColor(percentage))), comHudX + 5, comHudY + y + 5, 0xFFFFFFFF); y += 20; } @@ -154,18 +155,16 @@ public class DwarvenHud { //render mithril powder then gemstone context .drawTextWithShadow(client.textRenderer, - Text.literal("Mithril: " + mithrilPowder) - .styled(style -> style.withColor(Formatting.AQUA)), + Text.literal("Mithril: " + mithrilPowder).formatted(Formatting.AQUA), powderHudX + 5, powderHudY + 5, 0xFFFFFFFF); context .drawTextWithShadow(client.textRenderer, - Text.literal("Gemstone: " + gemStonePowder) - .styled(style -> style.withColor(Formatting.DARK_PURPLE)), + Text.literal("Gemstone: " + gemStonePowder).formatted(Formatting.DARK_PURPLE), powderHudX + 5, powderHudY + 25, 0xFFFFFFFF); } } - public static void renderSimple(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions,int mithril, int gemStone) { + public static void renderSimple(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions) { if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions) { hcw.updateData(commissions, false); hcw.update(); @@ -183,7 +182,7 @@ public class DwarvenHud { } } - public static void renderFancy(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions,int mithril, int gemStone) { + public static void renderFancy(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions) { if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions) { hcw.updateData(commissions, true); hcw.update(); @@ -208,6 +207,7 @@ public class DwarvenHud { client.getNetworkHandler().getPlayerList().forEach(playerListEntry -> { if (playerListEntry.getDisplayName() != null) { + //find commissions for (Pattern pattern : COMMISSIONS) { Matcher matcher = pattern.matcher(playerListEntry.getDisplayName().getString()); if (matcher.find()) { @@ -215,6 +215,15 @@ public class DwarvenHud { } } + //find powder + Matcher mithrilMatcher = MITHRIL_PATTERN.matcher(playerListEntry.getDisplayName().getString()); + if (mithrilMatcher.find()){ + mithrilPowder = mithrilMatcher.group(0).split(": ")[1]; + } + Matcher gemstoneMatcher = GEMSTONE_PATTERN.matcher(playerListEntry.getDisplayName().getString()); + if (gemstoneMatcher.find()){ + gemStonePowder = gemstoneMatcher.group(0).split(": ")[1]; + } } }); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java index 5efa9c03..4214ca89 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java @@ -17,10 +17,8 @@ import java.util.List; public class DwarvenHudConfigScreen extends Screen { private static final List<DwarvenHud.Commission> CFG_COMMS = List.of(new Commission("Test Commission 1", "1%"), new DwarvenHud.Commission("Test Commission 2", "2%")); - private static final int CFG_MITHRIL = 100; - private static final int CFG_GEMSTONE = 1010; - private int commissionsHudX = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsX; - private int commissionsHudY = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsY; + private int commissionsHudX = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x; + private int commissionsHudY = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y; private int powderHudX = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderX; private int powderHudY = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderY; @@ -39,7 +37,7 @@ public class DwarvenHudConfigScreen extends Screen { public void render(DrawContext context, int mouseX, int mouseY, float delta) { super.render(context, mouseX, mouseY, delta); renderBackground(context, mouseX, mouseY, delta); - DwarvenHud.render(HudCommsWidget.INSTANCE_CFG, HudPowderWidget.INSTANCE_CFG, context, commissionsHudX, commissionsHudY,powderHudX,powderHudY,CFG_COMMS,CFG_MITHRIL,CFG_GEMSTONE); + DwarvenHud.render(HudCommsWidget.INSTANCE_CFG, HudPowderWidget.INSTANCE_CFG, context, commissionsHudX, commissionsHudY,powderHudX,powderHudY,CFG_COMMS); context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); } @@ -71,8 +69,8 @@ public class DwarvenHudConfigScreen extends Screen { @Override public void close() { - SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsX = commissionsHudX; - SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsY = commissionsHudY; + SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x = commissionsHudX; + SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y = commissionsHudY; SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderX = powderHudX; SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderY = powderHudY; SkyblockerConfigManager.save(); |