diff --git a/build.gradle b/build.gradle index 4503fbe9..27d730cf 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } -version = "${project.mod_version}+${project.minecraft_version}-${project.minecraft_version_max}" +version = "${project.mod_version}+${project.minecraft_version}" group = "io.github.markassk.fishonmcextras" base { diff --git a/gradle.properties b/gradle.properties index 3214c5b0..7eb3baa5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,14 +3,13 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Properties -mod_version=2.4.7 +mod_version=2.4.8 maven_group=io.github.markassk.fishonmcextras archives_base_name=fishonmc-extras project_url=https://modrinth.com/project/fishonmc-extras # Versions minecraft_version=1.21.4 -minecraft_version_max=1.21.5 # Dependencies fabric_loader_version=0.15.7 fabric_api_version=0.110.5+1.21.4 diff --git a/src/main/java/io/github/markassk/fishonmcextras/FOMC/Constant.java b/src/main/java/io/github/markassk/fishonmcextras/FOMC/Constant.java index b6132ed4..5ec5e0b9 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/FOMC/Constant.java +++ b/src/main/java/io/github/markassk/fishonmcextras/FOMC/Constant.java @@ -22,6 +22,8 @@ public enum Constant { EPIC("epic", Text.literal("\uF035").formatted(Formatting.WHITE), 0x1CD832), LEGENDARY("legendary", Text.literal("\uF036").formatted(Formatting.WHITE), 0xD98103), MYTHICAL("mythical", Text.literal("\uF037").formatted(Formatting.WHITE), 0xC93832), + + // Event Rarities SPECIAL("special", Text.literal("\uF092").formatted(Formatting.WHITE), 0xDD7ACF), // Location @@ -35,6 +37,7 @@ public enum Constant { TOLEDO_BEND("toledobend", Text.literal("Toledo Bend Reservoir").withColor(0x99A7D0), Defaults.DEFAULT_COLOR), GREAT_LAKES("greatlakes", Text.literal("Great Lakes").withColor(0x3CABF3), Defaults.DEFAULT_COLOR), DANUBE_RIVER("danube", Text.literal("Danube River").withColor(0xFBC598), Defaults.DEFAULT_COLOR), + OIL_RIG("oilrig", Text.literal("Oil Rig").withColor(0xFCEB47), Defaults.DEFAULT_COLOR), AMAZON_RIVER("amazon", Text.literal("Amazon River").withColor(0x3EA729), Defaults.DEFAULT_COLOR), MEDITERRANEAN_SEA("mediterranean", Text.literal("Mediterranean Sea").withColor(0xF0FB37), Defaults.DEFAULT_COLOR), CAPE_COD("capecod", Text.literal("Cape Cod").withColor(0xBBF5FB), Defaults.DEFAULT_COLOR), @@ -59,7 +62,12 @@ public enum Constant { MELANISTIC("melanistic", Text.literal("\uF042").formatted(Formatting.WHITE), Defaults.DEFAULT_COLOR), TROPHY("trophy", Text.literal("\uF043").formatted(Formatting.WHITE), Defaults.DEFAULT_COLOR), FABLED("fabled", Text.literal("\uF044").formatted(Formatting.WHITE), Defaults.DEFAULT_COLOR), + + // Event Variants ALTERNATE("alternate", Text.literal("\uF098").formatted(Formatting.WHITE), Defaults.DEFAULT_COLOR), + SPOOKY("spooky", Text.literal("\uF102").formatted(Formatting.WHITE), Defaults.DEFAULT_COLOR), + FROZEN("frozen", Text.literal("\uF179").formatted(Formatting.WHITE), Defaults.DEFAULT_COLOR), + // Pet Rating SICKLY("sickly", Text.literal("sɪᴄᴋʟʏ").withColor(0xFF74403B), 0xFF74403B), @@ -140,6 +148,14 @@ public enum Constant { Text.literal("o").withColor(0x7C8083), Text.literal("l").withColor(0x787B7F), Text.literal("f Pet").withColor(0x73767B)), Defaults.DEFAULT_COLOR), + PELICAN("pelican", TextHelper.concat( + Text.literal("P").withColor(0xD9CBA6), + Text.literal("e").withColor(0xDFC59B), + Text.literal("l").withColor(0xE6BE90), + Text.literal("i").withColor(0xECB886), + Text.literal("c").withColor(0xF2B27B), + Text.literal("a").withColor(0xF9AB70), + Text.literal("n Pet").withColor(0xFFA565)), Defaults.DEFAULT_COLOR), CAPYBARA("capybara", TextHelper.concat( Text.literal("C").withColor(0x725E39), Text.literal("a").withColor(0x7F663F), diff --git a/src/main/java/io/github/markassk/fishonmcextras/FOMC/LocationInfo.java b/src/main/java/io/github/markassk/fishonmcextras/FOMC/LocationInfo.java index f7b9fa55..74003162 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/FOMC/LocationInfo.java +++ b/src/main/java/io/github/markassk/fishonmcextras/FOMC/LocationInfo.java @@ -11,6 +11,7 @@ public enum LocationInfo { TOLEDO_BEND("toledobend", ClimateConstant.SUBTROPICAL, Constant.FRESHWATER), GREAT_LAKES("greatlakes", ClimateConstant.CONTINENTAL, Constant.FRESHWATER), DANUBE_RIVER("danube", ClimateConstant.CONTINENTAL, Constant.FRESHWATER), + OIL_RIG("oilrig", ClimateConstant.SAVANNA, Constant.SALTWATER), AMAZON_RIVER("amazon", ClimateConstant.RAINFOREST, Constant.FRESHWATER), MEDITERRANEAN_SEA("mediterranean", ClimateConstant.MEDITERRANEAN, Constant.SALTWATER), CAPE_COD("capecod", ClimateConstant.OCEANIC, Constant.SALTWATER), diff --git a/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/FOMCItem.java b/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/FOMCItem.java index b66bdeee..6a100b01 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/FOMCItem.java +++ b/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/FOMCItem.java @@ -45,6 +45,7 @@ public static FOMCItem getFOMCItem(ItemStack itemStack) { || itemStack.getItem() == Items.GOLD_INGOT || itemStack.getItem() == Items.PRISMARINE_SHARD || itemStack.getItem() == Items.DRIED_KELP + || itemStack.getItem() == Items.LIGHT_BLUE_DYE ) { String line = Objects.requireNonNull(itemStack.getComponents().get(DataComponentTypes.LORE)).lines().get(15).getString(); return Fish.getFish(itemStack, Defaults.ItemTypes.FISH, line.substring(line.lastIndexOf(" ") + 1)); @@ -78,6 +79,7 @@ public static boolean isFOMCItem(ItemStack itemStack) { || itemStack.getItem() == Items.GOLD_INGOT || itemStack.getItem() == Items.PRISMARINE_SHARD || itemStack.getItem() == Items.DRIED_KELP + || itemStack.getItem() == Items.LIGHT_BLUE_DYE || itemStack.getItem() == Items.FISHING_ROD; } } @@ -102,7 +104,8 @@ public static boolean isFish(ItemStack itemStack) { || itemStack.getItem() == Items.GOLD_INGOT || itemStack.getItem() == Items.ROTTEN_FLESH || itemStack.getItem() == Items.PRISMARINE_SHARD - || itemStack.getItem() == Items.DRIED_KELP; + || itemStack.getItem() == Items.DRIED_KELP + || itemStack.getItem() == Items.LIGHT_BLUE_DYE; } return false; } diff --git a/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/Fish.java b/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/Fish.java index 85441061..dabe129a 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/Fish.java +++ b/src/main/java/io/github/markassk/fishonmcextras/FOMC/Types/Fish.java @@ -81,6 +81,8 @@ public static Fish getFish(ItemStack itemStack) { || itemStack.getItem() == Items.GOLD_INGOT || itemStack.getItem() == Items.PRISMARINE_SHARD || itemStack.getItem() == Items.DRIED_KELP + || itemStack.getItem() == Items.BONE + || itemStack.getItem() == Items.LIGHT_BLUE_DYE ) { String line = Objects.requireNonNull(itemStack.getComponents().get(DataComponentTypes.LORE)).lines().get(15).getString(); return Fish.getFish(itemStack, Defaults.ItemTypes.FISH, line.substring(line.lastIndexOf(" ") + 1)); diff --git a/src/main/java/io/github/markassk/fishonmcextras/config/TrackerFishHUDConfig.java b/src/main/java/io/github/markassk/fishonmcextras/config/TrackerFishHUDConfig.java index 534d9fe7..5aab4f2d 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/config/TrackerFishHUDConfig.java +++ b/src/main/java/io/github/markassk/fishonmcextras/config/TrackerFishHUDConfig.java @@ -41,7 +41,6 @@ public static class RarityToggles { public boolean showEpic = true; public boolean showLegendary = true; public boolean showMythical = true; - public boolean showSpecial = false; } @ConfigEntry.Gui.CollapsibleObject @@ -65,7 +64,6 @@ public static class VariantToggles { public boolean showMelanistic = true; public boolean showTrophy = true; public boolean showFabled = true; - public boolean showAlternate = false; } @ConfigEntry.Gui.CollapsibleObject @@ -77,7 +75,6 @@ public static class DryStreakToggles { public boolean showEpic = false; public boolean showLegendary = false; public boolean showMythical = false; - public boolean showSpecial = true; @ConfigEntry.Gui.PrefixText public boolean showBaby = false; public boolean showJuvenile = false; @@ -89,13 +86,43 @@ public static class DryStreakToggles { public boolean showMelanistic = true; public boolean showTrophy = true; public boolean showFabled = true; - public boolean showAlternate = true; @ConfigEntry.Gui.PrefixText public boolean showPet = false; public boolean showShard = false; public boolean showLightningBottle = false; } + @ConfigEntry.Gui.CollapsibleObject + public FishEventToggles fisheventToggles = new FishEventToggles(); + public static class FishEventToggles { + @ConfigEntry.Gui.CollapsibleObject + public RarityToggles rarityToggles = new RarityToggles(); + public static class RarityToggles { + @ConfigEntry.Gui.Tooltip + public boolean showSpecial = false; + } + + @ConfigEntry.Gui.CollapsibleObject + public VariantToggles variantToggles = new VariantToggles(); + public static class VariantToggles { + @ConfigEntry.Gui.Tooltip + public boolean showAlternate = false; + @ConfigEntry.Gui.Tooltip + public boolean showSpooky = false; + @ConfigEntry.Gui.Tooltip + public boolean showFrozen = true; + } + + @ConfigEntry.Gui.CollapsibleObject + public DryStreakToggles dryStreakToggles = new DryStreakToggles(); + public static class DryStreakToggles { + public boolean showSpecial = true; + public boolean showAlternate = true; + public boolean showSpooky = true; + public boolean showFrozen = true; + } + } + @ConfigEntry.Gui.CollapsibleObject public OtherToggles otherToggles = new OtherToggles(); public static class OtherToggles { diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/EventHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/EventHandler.java index 458f090c..997b95b9 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/EventHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/EventHandler.java @@ -172,7 +172,7 @@ public enum WeatherEvent { ), BLOOD_MOON("blood_moon", "BLOOD MOON » A Blood Moon has risen!", TextHelper.concat( Text.literal("A ").formatted(Formatting.WHITE), - Text.literal("Super Moon ").formatted(Formatting.BOLD).withColor(0xE44848), + Text.literal("Blood Moon ").formatted(Formatting.BOLD).withColor(0xE44848), Text.literal("has risen!").formatted(Formatting.WHITE)), TextHelper.concat( Text.literal("+").formatted(Formatting.GRAY), diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/InventoryScreenHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/InventoryScreenHandler.java index 508b1e1c..178393ea 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/InventoryScreenHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/InventoryScreenHandler.java @@ -229,6 +229,11 @@ private void createButtonMenu(MinecraftClient minecraftClient) { Text.literal("Requires atleast ").formatted(Formatting.WHITE, Formatting.ITALIC), Text.literal(Constant.MARINER.TAG.getString()).formatted(Formatting.WHITE) )), minecraftClient)); + clickableWidgets.add(assembleButton( buttonSize * 3, 0, Text.literal("✎").formatted(Formatting.GREEN, Formatting.BOLD), "presets", Tooltip.of( + TextHelper.concat( + Text.literal("Presets\n").formatted(Formatting.BOLD, Formatting.WHITE), + Text.literal("Presets stores your armor and rod parts.").formatted(Formatting.GRAY, Formatting.ITALIC) + )), minecraftClient)); if(BossBarHandler.instance().currentLocation == Constant.CREW_ISLAND) { clickableWidgets.add(assembleButton( -buttonSize * 3, buttonSize, Text.literal("\uF016"), "spawn", Tooltip.of( diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/LocationHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/LocationHandler.java index e940578d..d4e18c81 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/LocationHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/LocationHandler.java @@ -48,6 +48,7 @@ private Constant getLocation(String bossText) { else if (bossText.contains(Constant.TOLEDO_BEND.TAG.getString())) return Constant.TOLEDO_BEND; else if (bossText.contains(Constant.GREAT_LAKES.TAG.getString())) return Constant.GREAT_LAKES; else if (bossText.contains(Constant.DANUBE_RIVER.TAG.getString())) return Constant.DANUBE_RIVER; + else if (bossText.contains(Constant.OIL_RIG.TAG.getString())) return Constant.OIL_RIG; else if (bossText.contains(Constant.AMAZON_RIVER.TAG.getString())) return Constant.AMAZON_RIVER; else if (bossText.contains(Constant.MEDITERRANEAN_SEA.TAG.getString())) return Constant.MEDITERRANEAN_SEA; else if (bossText.contains(Constant.CAPE_COD.TAG.getString())) return Constant.CAPE_COD; diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/StatsImportHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/StatsImportHandler.java index 2fd222ae..b2e5c0ac 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/StatsImportHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/StatsImportHandler.java @@ -78,6 +78,7 @@ private void getData(MinecraftClient minecraftClient) { else if (loreLine.contains(Constant.MELANISTIC.TAG.getString())) dummyProfileData.allVariantCounts.put(Constant.MELANISTIC, getValue(loreLine, Constant.MELANISTIC)); else if (loreLine.contains(Constant.TROPHY.TAG.getString())) dummyProfileData.allVariantCounts.put(Constant.TROPHY, getValue(loreLine, Constant.TROPHY)); else if (loreLine.contains(Constant.FABLED.TAG.getString())) dummyProfileData.allVariantCounts.put(Constant.FABLED, getValue(loreLine, Constant.FABLED)); + else if (loreLine.contains(Constant.FROZEN.TAG.getString())) dummyProfileData.allVariantCounts.put(Constant.FROZEN, getValue(loreLine, Constant.FROZEN)); else if (loreLine.contains("ꜰɪꜱʜ ᴄᴀᴜɢʜᴛ")) fishCaught.set(getValue(loreLine)); }); } @@ -104,6 +105,7 @@ private void getData(MinecraftClient minecraftClient) { dummyProfileData.variantDryStreak.put(Constant.MELANISTIC, Math.min(fishCaught.get() - (oldProfileData.allFishCaughtCount - oldProfileData.variantDryStreak.getOrDefault(Constant.MELANISTIC, oldProfileData.allFishCaughtCount)), fishCaught.get())); dummyProfileData.variantDryStreak.put(Constant.TROPHY, Math.min(fishCaught.get() - (oldProfileData.allFishCaughtCount - oldProfileData.variantDryStreak.getOrDefault(Constant.TROPHY, oldProfileData.allFishCaughtCount)), fishCaught.get())); dummyProfileData.variantDryStreak.put(Constant.FABLED, Math.min(fishCaught.get() - (oldProfileData.allFishCaughtCount - oldProfileData.variantDryStreak.getOrDefault(Constant.FABLED, oldProfileData.allFishCaughtCount)), fishCaught.get())); + dummyProfileData.variantDryStreak.put(Constant.FROZEN, Math.min(fishCaught.get() - (oldProfileData.allFishCaughtCount - oldProfileData.variantDryStreak.getOrDefault(Constant.FROZEN, oldProfileData.allFishCaughtCount)), fishCaught.get())); this.dummyProfileData = dummyProfileData; } diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/FishTrackerHudHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/FishTrackerHudHandler.java index f259f8b3..73ab338c 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/FishTrackerHudHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/FishTrackerHudHandler.java @@ -99,6 +99,12 @@ public List assembleFishText() { int displayAlternateCount = displayVariantCounts.getOrDefault(Constant.ALTERNATE, 0); int displayDryStreakAlternateCount = displayVariantDryStreak.getOrDefault(Constant.ALTERNATE, 0); + int displaySpookyCount = displayVariantCounts.getOrDefault(Constant.SPOOKY, 0); + int displayDryStreakSpookyCount = displayVariantDryStreak.getOrDefault(Constant.SPOOKY, 0); + + int displayFrozenCount = displayVariantCounts.getOrDefault(Constant.FROZEN, 0); + int displayDryStreakFrozenCount = displayVariantDryStreak.getOrDefault(Constant.FROZEN, 0); + int displayTimerFishCaughtCount = profileData.timerFishCaughtCount; if (ThemingHandler.instance().currentThemeType == Theming.ThemeType.OFF) { @@ -181,7 +187,7 @@ public List assembleFishText() { if (config.fishTracker.fishTrackerToggles.generalToggles.showShardCaught) { textList.add(TextHelper.concat( Text.literal("ѕʜᴀʀᴅѕ: ").formatted(Formatting.GRAY), - Text.literal(String.valueOf(displayShardCaughtCount)).formatted(Formatting.WHITE) + Text.literal(getNumber(displayShardCaughtCount)).formatted(Formatting.WHITE) )); if(config.fishTracker.fishTrackerToggles.dryStreakToggles.showShard) { textList.add(getDryStreak(profileData.shardDryStreak)); @@ -267,34 +273,19 @@ public List assembleFishText() { textList.add(getDryStreak(displayDryStreakMythicalCount)); } } - } - - if(config.fishTracker.fishTrackerToggles.rarityToggles.showSpecial || config.fishTracker.fishTrackerToggles.variantToggles.showAlternate) { - textList.add(Text.empty()); - if(config.fishTracker.fishTrackerToggles.rarityToggles.showSpecial) { + //EVENT FISHES + if(config.fishTracker.fishTrackerToggles.fisheventToggles.rarityToggles.showSpecial) { textList.add(TextHelper.concat( Constant.SPECIAL.TAG, Text.literal(" "), Text.literal(getNumber(displaySpecialCount)), getPercentage(displaySpecialCount, displayFishCaughtCount) )); - if(config.fishTracker.fishTrackerToggles.dryStreakToggles.showSpecial){ + if(config.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showSpecial){ textList.add(getDryStreak(displayDryStreakSpecialCount)); } } - - if(config.fishTracker.fishTrackerToggles.variantToggles.showAlternate) { - textList.add(TextHelper.concat( - Constant.ALTERNATE.TAG, - Text.literal(" "), - Text.literal(getNumber(displayAlternateCount)), - getPercentage(displayAlternateCount, displayFishCaughtCount) - )); - if(config.fishTracker.fishTrackerToggles.dryStreakToggles.showAlternate) { - textList.add(getDryStreak(displayDryStreakAlternateCount)); - } - } } if (config.fishTracker.fishTrackerToggles.fishSizeToggles.showFishSizes) { @@ -404,6 +395,41 @@ public List assembleFishText() { textList.add(getDryStreak(displayDryStreakFabledCount)); } } + + //EVENT FISHES + if(config.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showAlternate) { + textList.add(TextHelper.concat( + Constant.ALTERNATE.TAG, + Text.literal(" "), + Text.literal(getNumber(displayAlternateCount)), + getPercentage(displayAlternateCount, displayFishCaughtCount) + )); + if(config.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showAlternate) { + textList.add(getDryStreak(displayDryStreakAlternateCount)); + } + } + if(config.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showSpooky) { + textList.add(TextHelper.concat( + Constant.SPOOKY.TAG, + Text.literal(" "), + Text.literal(getNumber(displaySpookyCount)), + getPercentage(displaySpookyCount, displayFishCaughtCount) + )); + if(config.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showSpooky) { + textList.add(getDryStreak(displayDryStreakSpookyCount)); + } + } + if(config.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showFrozen) { + textList.add(TextHelper.concat( + Constant.FROZEN.TAG, + Text.literal(" "), + Text.literal(getNumber(displayFrozenCount)), + getPercentage(displayFrozenCount, displayFishCaughtCount) + )); + if(config.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showFrozen) { + textList.add(getDryStreak(displayDryStreakFrozenCount)); + } + } } return textList; diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/NotificationHudHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/NotificationHudHandler.java index bada6d97..96df6874 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/NotificationHudHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/NotificationHudHandler.java @@ -122,7 +122,7 @@ public List assembleNotificationText() { textList.add(Text.empty()); textList.add(TextHelper.concat( Text.literal("Your ").formatted(Formatting.RED), - Text.literal(lure.name).formatted(Formatting.WHITE), + Text.literal(TextHelper.upperCaseAllFirstCharacter(lure.name)).formatted(Formatting.WHITE), Text.literal(" has no use in ").formatted(Formatting.RED), LocationInfo.valueOfId(BossBarHandler.instance().currentLocation.ID).WATER.TAG, Text.literal(" here").formatted(Formatting.RED), diff --git a/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/PetEquipHudHandler.java b/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/PetEquipHudHandler.java index 09def74a..15cc979c 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/PetEquipHudHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/handler/screens/hud/PetEquipHudHandler.java @@ -20,6 +20,13 @@ public static PetEquipHudHandler instance() { return INSTANCE; } + private Formatting getProgressColor(double value) { + return value <= 25 ? Formatting.RED : + value <= 50 ? Formatting.GOLD : + value <= 75 ? Formatting.YELLOW : + Formatting.GREEN; + } + public List assemblePetText() { ProfileDataHandler.ProfileData profileData = ProfileDataHandler.instance().profileData; @@ -32,31 +39,36 @@ public List assemblePetText() { float neededXp = profileData.equippedPet.neededXp; float percentXp = currentXp / neededXp * 100f; + Formatting levelColor = getProgressColor(level); textList.add(TextHelper.concat( profileData.equippedPet.rarity.TAG, Text.literal(" "), namePet, - Text.literal(" (ʟᴠʟ " + level + ")").formatted(Formatting.GRAY) + Text.literal(" (").formatted(Formatting.DARK_GRAY), + Text.literal("ʟᴠʟ ").formatted(Formatting.GRAY), + Text.literal(String.valueOf(level)).formatted(levelColor), + Text.literal(")").formatted(Formatting.DARK_GRAY) )); if(level == 100) { textList.add(TextHelper.concat( - Text.literal("(").formatted(Formatting.GRAY), - Text.literal(TextHelper.fmnt(currentXp)).formatted(Formatting.YELLOW), - Text.literal("/").formatted(Formatting.GRAY), - Text.literal("MAX").formatted(Formatting.YELLOW), - Text.literal(") ").formatted(Formatting.GRAY), - Text.literal("100").formatted(Formatting.YELLOW), - Text.literal("%").formatted(Formatting.GRAY) + Text.literal("(").formatted(Formatting.DARK_GRAY), + Text.literal(TextHelper.fmnt(currentXp)).formatted(Formatting.AQUA), + Text.literal("/").formatted(Formatting.DARK_GRAY), + Text.literal("MAX").formatted(Formatting.BLUE), + Text.literal(") ").formatted(Formatting.DARK_GRAY), + Text.literal("100").formatted(Formatting.GREEN), + Text.literal("%").formatted(Formatting.GREEN) )); } else { + Formatting percentColor = getProgressColor(percentXp); textList.add(TextHelper.concat( - Text.literal("(").formatted(Formatting.GRAY), - Text.literal(TextHelper.fmnt(currentXp)).formatted(Formatting.YELLOW), - Text.literal("/").formatted(Formatting.GRAY), - Text.literal(TextHelper.fmnt(neededXp)).formatted(Formatting.YELLOW), - Text.literal(") ").formatted(Formatting.GRAY), - Text.literal(TextHelper.fmt(percentXp, 1)).formatted(Formatting.YELLOW), - Text.literal("%").formatted(Formatting.GRAY) + Text.literal("(").formatted(Formatting.DARK_GRAY), + Text.literal(TextHelper.fmnt(currentXp)).formatted(Formatting.AQUA), + Text.literal("/").formatted(Formatting.DARK_GRAY), + Text.literal(TextHelper.fmnt(neededXp)).formatted(Formatting.BLUE), + Text.literal(") ").formatted(Formatting.DARK_GRAY), + Text.literal(TextHelper.fmt(percentXp, 1)).formatted(percentColor), + Text.literal("%").formatted(percentColor) )); } } else if (PetEquipHandler.instance().petStatus == PetEquipHandler.PetStatus.NO_PET) { diff --git a/src/main/java/io/github/markassk/fishonmcextras/screens/debug/DebugScreenHandler.java b/src/main/java/io/github/markassk/fishonmcextras/screens/debug/DebugScreenHandler.java index 4b78c657..0cd3e260 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/screens/debug/DebugScreenHandler.java +++ b/src/main/java/io/github/markassk/fishonmcextras/screens/debug/DebugScreenHandler.java @@ -118,6 +118,7 @@ public List assembleDebugText(HandlerType type) { assembleText("profileStats.variantCounts[MELANISTIC]", profileDataHandler.profileData.variantCounts.getOrDefault(Constant.MELANISTIC, 0)), assembleText("profileStats.variantCounts[TROPHY]", profileDataHandler.profileData.variantCounts.getOrDefault(Constant.TROPHY, 0)), assembleText("profileStats.variantCounts[FABLED]", profileDataHandler.profileData.variantCounts.getOrDefault(Constant.FABLED, 0)), + assembleText("profileStats.variantCounts[FROZEN]", profileDataHandler.profileData.variantCounts.getOrDefault(Constant.FROZEN, 0)), assembleText("profileStats.rarityCounts[COMMON]", profileDataHandler.profileData.rarityCounts.getOrDefault(Constant.COMMON, 0)), assembleText("profileStats.rarityCounts[RARE]", profileDataHandler.profileData.rarityCounts.getOrDefault(Constant.RARE, 0)), assembleText("profileStats.rarityCounts[EPIC]", profileDataHandler.profileData.rarityCounts.getOrDefault(Constant.EPIC, 0)), @@ -140,6 +141,7 @@ public List assembleDebugText(HandlerType type) { assembleText("profileStats.allVariantCounts[MELANISTIC]", profileDataHandler.profileData.allVariantCounts.getOrDefault(Constant.MELANISTIC, 0)), assembleText("profileStats.allVariantCounts[TROPHY]", profileDataHandler.profileData.allVariantCounts.getOrDefault(Constant.TROPHY, 0)), assembleText("profileStats.allVariantCounts[FABLED]", profileDataHandler.profileData.allVariantCounts.getOrDefault(Constant.FABLED, 0)), + assembleText("profileStats.allVariantCounts[FROZEN]", profileDataHandler.profileData.allVariantCounts.getOrDefault(Constant.FROZEN, 0)), assembleText("profileStats.allRarityCounts[COMMON]", profileDataHandler.profileData.allRarityCounts.getOrDefault(Constant.COMMON, 0)), assembleText("profileStats.allRarityCounts[RARE]", profileDataHandler.profileData.allRarityCounts.getOrDefault(Constant.RARE, 0)), assembleText("profileStats.allRarityCounts[EPIC]", profileDataHandler.profileData.allRarityCounts.getOrDefault(Constant.EPIC, 0)), @@ -160,6 +162,7 @@ public List assembleDebugText(HandlerType type) { assembleText("profileStats.variantDryStreak[MELANISTIC]", profileDataHandler.profileData.variantDryStreak.getOrDefault(Constant.MELANISTIC, 0)), assembleText("profileStats.variantDryStreak[TROPHY]", profileDataHandler.profileData.variantDryStreak.getOrDefault(Constant.TROPHY, 0)), assembleText("profileStats.variantDryStreak[FABLED]", profileDataHandler.profileData.variantDryStreak.getOrDefault(Constant.FABLED, 0)), + assembleText("profileStats.variantDryStreak[FROZEN]", profileDataHandler.profileData.variantDryStreak.getOrDefault(Constant.FROZEN, 0)), assembleText("profileStats.rarityDryStreak[COMMON]", profileDataHandler.profileData.rarityDryStreak.getOrDefault(Constant.COMMON, 0)), assembleText("profileStats.rarityDryStreak[RARE]", profileDataHandler.profileData.rarityDryStreak.getOrDefault(Constant.RARE, 0)), diff --git a/src/main/java/io/github/markassk/fishonmcextras/screens/hud/EquipmentHud.java b/src/main/java/io/github/markassk/fishonmcextras/screens/hud/EquipmentHud.java index 6a20b571..2d92a6f2 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/screens/hud/EquipmentHud.java +++ b/src/main/java/io/github/markassk/fishonmcextras/screens/hud/EquipmentHud.java @@ -1,6 +1,9 @@ package io.github.markassk.fishonmcextras.screens.hud; +import io.github.markassk.fishonmcextras.FOMC.Constant; +import io.github.markassk.fishonmcextras.FOMC.Types.FOMCItem; import io.github.markassk.fishonmcextras.config.FishOnMCExtrasConfig; +import io.github.markassk.fishonmcextras.handler.FishingRodHandler; import io.github.markassk.fishonmcextras.handler.screens.hud.EquipmentHudHandler; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -55,31 +58,62 @@ public void render(DrawContext drawContext, MinecraftClient client) { int offsetBottomRodParts = config.equipmentTracker.rodPartsHUDOptions.offsetFromBottom; // Chestplate - renderBox(drawContext, textRenderer, scaledX - 64 + offsetMiddleArmor, scaledY - offsetBottomArmor - 20, alphaInt, chestplate, "ᴄ"); + renderBox(drawContext, textRenderer, scaledX - 64 + offsetMiddleArmor, scaledY - offsetBottomArmor - 20, alphaInt, chestplate, "ᴄ", null); // Leggings - renderBox(drawContext, textRenderer, scaledX - 42 + offsetMiddleArmor, scaledY - offsetBottomArmor - 20, alphaInt, leggings, "ʟ"); + renderBox(drawContext, textRenderer, scaledX - 42 + offsetMiddleArmor, scaledY - offsetBottomArmor - 20, alphaInt, leggings, "ʟ", null); // Boots - renderBox(drawContext, textRenderer, scaledX - 20 + offsetMiddleArmor, scaledY - offsetBottomArmor - 20, alphaInt, boots, "ʙ"); + renderBox(drawContext, textRenderer, scaledX - 20 + offsetMiddleArmor, scaledY - offsetBottomArmor - 20, alphaInt, boots, "ʙ", null); // Reel - renderBox(drawContext, textRenderer, scaledX + offsetMiddleRodParts, scaledY - offsetBottomRodParts - 20, alphaInt, reel, "ʀ"); + renderBox(drawContext, textRenderer, scaledX + offsetMiddleRodParts, scaledY - offsetBottomRodParts - 20, alphaInt, reel, "ʀ", "reel"); // Pole - renderBox(drawContext, textRenderer, scaledX + 22 + offsetMiddleRodParts, scaledY - offsetBottomRodParts - 20, alphaInt, pole, "ᴘ"); + renderBox(drawContext, textRenderer, scaledX + 22 + offsetMiddleRodParts, scaledY - offsetBottomRodParts - 20, alphaInt, pole, "ᴘ", "pole"); // Line - renderBox(drawContext, textRenderer, scaledX + 44 + offsetMiddleRodParts, scaledY - offsetBottomRodParts - 20, alphaInt, line, "ʟ"); + renderBox(drawContext, textRenderer, scaledX + 44 + offsetMiddleRodParts, scaledY - offsetBottomRodParts - 20, alphaInt, line, "ʟ", "line"); } finally { drawContext.getMatrices().pop(); } } - private void renderBox(DrawContext drawContext, TextRenderer textRenderer, int x, int y, int alpha, ItemStack itemStack, String character) { + private void renderBox(DrawContext drawContext, TextRenderer textRenderer, int x, int y, int alpha, ItemStack itemStack, String character, String equipmentType) { drawContext.fill(x, y, x + 20, y + 20, alpha); - drawContext.drawBorder(x, y + 20, 20, 1, alpha | 0xFFFFFF); + + int borderColor = alpha | 0xFFFFFF; + Constant rarity = Constant.DEFAULT; + + if (equipmentType != null) { + switch (equipmentType) { + case "reel" -> { + if (FishingRodHandler.instance().fishingRod.reel != null) { + rarity = FishingRodHandler.instance().fishingRod.reel.rarity; + } + } + case "pole" -> { + if (FishingRodHandler.instance().fishingRod.pole != null) { + rarity = FishingRodHandler.instance().fishingRod.pole.rarity; + } + } + case "line" -> { + if (FishingRodHandler.instance().fishingRod.line != null) { + rarity = FishingRodHandler.instance().fishingRod.line.rarity; + } + } + } + } else { + rarity = FOMCItem.getRarity(itemStack); + } + + if (rarity != Constant.DEFAULT) { + borderColor = (alpha & 0xFF000000) | (rarity.COLOR & 0x00FFFFFF); + } + + drawContext.drawBorder(x, y + 20, 20, 1, borderColor); + if(itemStack.getItem() != Items.AIR) { drawContext.drawItem(itemStack, x + 2, y + 2); } else { drawContext.drawText(textRenderer, Text.literal(character).formatted(Formatting.GRAY), x + 10 - textRenderer.getWidth(character) / 2, y + 10 - textRenderer.fontHeight / 2, alpha | 0xFFFFFF, true); } } -} +} \ No newline at end of file diff --git a/src/main/java/io/github/markassk/fishonmcextras/util/ColorHelper.java b/src/main/java/io/github/markassk/fishonmcextras/util/ColorHelper.java index 4160aae2..50e29aa2 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/util/ColorHelper.java +++ b/src/main/java/io/github/markassk/fishonmcextras/util/ColorHelper.java @@ -4,10 +4,13 @@ public class ColorHelper { public static int getColorFromNbt(String value) { - int r = Integer.parseInt(value.substring(0, value.indexOf(",")).trim()); - int g = Integer.parseInt(value.substring(value.indexOf(",") + 1, TextHelper.ordinalIndexOf(value, ",", 2)).trim()); - int b = Integer.parseInt(value.substring(value.lastIndexOf(",") + 1).trim()); - - return Color.ofRGB(r, g, b).getColor(); + try { + int r = Integer.parseInt(value.substring(0, value.indexOf(",")).trim()); + int g = Integer.parseInt(value.substring(value.indexOf(",") + 1, TextHelper.ordinalIndexOf(value, ",", 2)).trim()); + int b = Integer.parseInt(value.substring(value.lastIndexOf(",") + 1).trim()); + return Color.ofRGB(r, g, b).getColor(); + } catch (Exception e) { + return Color.ofRGB(255, 255, 255).getColor(); + } } } diff --git a/src/main/java/io/github/markassk/fishonmcextras/util/TextHelper.java b/src/main/java/io/github/markassk/fishonmcextras/util/TextHelper.java index 6668dd19..4afd647a 100644 --- a/src/main/java/io/github/markassk/fishonmcextras/util/TextHelper.java +++ b/src/main/java/io/github/markassk/fishonmcextras/util/TextHelper.java @@ -10,6 +10,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Locale; import java.util.regex.Pattern; public class TextHelper { @@ -26,37 +27,41 @@ public static MutableText concat(Text... texts) { // Format to string public static String fmt(float d) { - return String.format("%.0f", d); + return String.format(Locale.US,"%.0f", d); } public static String fmt(float d, int decimalPlaces) { switch (decimalPlaces) { case 1 -> { - return String.format("%.1f", d); + String s = String.format(Locale.US,"%.1f", d); + return s.replaceAll("0*$", "").replaceAll("[.,]$", ""); } - case 2 -> { - return String.format("%.2f", d); + case 2 -> { + String s = String.format(Locale.US,"%.2f", d); + return s.replaceAll("0*$", "").replaceAll("[.,]$", ""); } default -> { - return String.format("%.0f", d); + String s = String.format(Locale.US,"%.0f", d); + return s.replaceAll("0*$", "").replaceAll("[.,]$", ""); } } } // Format to number string public static String fmnt(float d) { - if(d > 1000 && d < 1000000) { - String s = String.format("%.2f", d / 1000); - return (s.contains(".") ? s.replaceAll("0*$","").replaceAll("\\.$","") : s) + "K"; - } else if (d > 1000000 && d < 1000000000 ){ - String s =String.format("%.2f", d / 1000000); - return (s.contains(".") ? s.replaceAll("0*$","").replaceAll("\\.$","") : s) + "M"; + if (d >= 1000 && d < 1000000) { + String s = String.format(Locale.US, "%.2f", d / 1000); + return s.replaceAll("0*$", "").replaceAll("[.,]$", "") + "K"; + } else if (d > 1000000 && d < 1000000000) { + String s = String.format(Locale.US, "%.2f", d / 1000000); + return s.replaceAll("0*$", "").replaceAll("[.,]$", "") + "M"; } else if (d > 1000000000) { - String s =String.format("%.2f", d / 1000000000); - return (s.contains(".") ? s.replaceAll("0*$","").replaceAll("\\.$","") : s) + "B"; + String s = String.format(Locale.US, "%.2f", d / 1000000000); + return s.replaceAll("0*$", "").replaceAll("[.,]$", "") + "B"; + } else if (d == 0) { + return "0"; } else { - String s =String.format("%.0f", d); - return s.contains(".") ? s.replaceAll("0*$","").replaceAll("\\.$","") : s; + return String.format(Locale.US, "%.0f", d); } } diff --git a/src/main/resources/assets/fishonmcextras/lang/en_us.json b/src/main/resources/assets/fishonmcextras/lang/en_us.json index bc3e5f2b..0db70336 100644 --- a/src/main/resources/assets/fishonmcextras/lang/en_us.json +++ b/src/main/resources/assets/fishonmcextras/lang/en_us.json @@ -14,6 +14,7 @@ "text.autoconfig.fishonmcextras.category.other": "Miscellaneous", "text.autoconfig.fishonmcextras.category.cosmetic": "Cosmetics", "text.autoconfig.fishonmcextras.category.fun": "Experimental", + "text.autoconfig.fishonmcextras.category.fishevents": "Fish Events", "text.autoconfig.fishonmcextras.option.fishTracker": "§f§lFish Tracker Options", "text.autoconfig.fishonmcextras.option.fishTracker.showFishTrackerHUD": "Fish Tracker HUD", @@ -43,7 +44,6 @@ "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.rarityToggles.showEpic": "Show §f\uF035", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.rarityToggles.showLegendary": "Show §f\uF036", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.rarityToggles.showMythical": "Show §f\uF037", - "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.rarityToggles.showSpecial": "Show §f\uF092", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fishSizeToggles": "§f§lFish Size Toggles", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fishSizeToggles.showFishSizes": "§lShow Fish Sizes", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fishSizeToggles.showFishSizes.@Tooltip": "Toggle to see fish sizes section.\n§7If §cdisabled§7, all below options will not show.", @@ -59,7 +59,6 @@ "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.variantToggles.showMelanistic": "Show §f\uF042", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.variantToggles.showTrophy": "Show §f\uF043", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.variantToggles.showFabled": "Show §f\uF044", - "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.variantToggles.showAlternate": "Show §f\uF098", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles": "§f§lDrystreak Toggles", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showCommon.@PrefixText": "§fRarities", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showCommon": "Show §f\uF033", @@ -67,7 +66,6 @@ "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showEpic": "Show §f\uF035", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showLegendary": "Show §f\uF036", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showMythical": "Show §f\uF037", - "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showSpecial": "Show §f\uF092", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showBaby.@PrefixText": "§fFish Sizes", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showBaby": "Show §fʙᴀʙʏ", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showJuvenile": "Show §fᴊᴜᴠᴇɴɪʟᴇ", @@ -79,11 +77,26 @@ "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showMelanistic": "Show §f\uF042", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showTrophy": "Show §f\uF043", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showFabled": "Show §f\uF044", - "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showAlternate": "Show §f\uF098", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showPet.@PrefixText": "§fOther", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showPet": "Show Pets", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showShard": "Show Shards", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.dryStreakToggles.showLightningBottle": "Show Lightning Bottles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles": "§f§lFish Event Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.rarityToggles": "§f§lFish Rarity Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.rarityToggles.showSpecial": "Show §f\uF092", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.rarityToggles.showSpecial.@Tooltip": "§7Make sure you have Rarities §aenabled §7in Rarity Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles": "§f§lFish Variant Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showAlternate": "Show §f\uF098", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showAlternate.@Tooltip": "§7Make sure you have Variants §aenabled in Variant Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showSpooky": "Show §f\uF102", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showSpooky.@Tooltip": "§7Make sure you have Variants §aenabled in Variant Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showFrozen": "Show §f\uF179", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.variantToggles.showFrozen.@Tooltip": "§7Make sure you have Variants §aenabled §7in Variant Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles": "§f§lFish Drystreak Toggles", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showSpecial": "Show §f\uF092", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showAlternate": "Show §f\uF098", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showSpooky": "Show §f\uF102", + "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.fisheventToggles.dryStreakToggles.showFrozen": "Show §f\uF179", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.otherToggles": "§f§lOther Toggles", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.otherToggles.showPercentages": "Show percentages", "text.autoconfig.fishonmcextras.option.fishTracker.fishTrackerToggles.otherToggles.useNewTitle": "Use the New title system.", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 2b8b5531..68492cfb 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "fishonmcextras", - "version": "2.4.7", + "version": "${version}", "name": "FishOnMC-Extras", "description": "A QOL mod for play.fishonmc.net.", "authors": [