From 72822bf1ee028287d535f50b59f96994dfe0b2fa Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sat, 8 Jun 2024 15:22:30 +0800 Subject: Refactor and add more tips --- .../java/de/hysky/skyblocker/skyblock/Tips.java | 96 ++++++++++++++++------ 1 file changed, 69 insertions(+), 27 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/Tips.java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/Tips.java b/src/main/java/de/hysky/skyblocker/skyblock/Tips.java index 513dc4b7..fb29dc3a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/Tips.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/Tips.java @@ -14,16 +14,16 @@ import net.minecraft.command.CommandRegistryAccess; import net.minecraft.text.ClickEvent; import net.minecraft.text.Text; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import java.util.Random; import java.util.function.Supplier; import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; public class Tips { - private static final Random RANDOM = new Random(); - private static int previousTipIndex = -1; - private static final List> TIPS = List.of( + private static int currentTipIndex = 0; + private static final List> TIPS = new ArrayList<>(List.of( getTipFactory("skyblocker.tips.customItemNames", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker custom renameItem"), getTipFactory("skyblocker.tips.customArmorDyeColors", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker custom dyeColor"), getTipFactory("skyblocker.tips.customArmorTrims", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker custom armorTrim"), @@ -36,15 +36,33 @@ public class Tips { getTipFactory("skyblocker.tips.gallery", ClickEvent.Action.OPEN_URL, "https://hysky.de/skyblocker/gallery"), getTipFactory("skyblocker.tips.itemRarityBackground", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), getTipFactory("skyblocker.tips.modMenuUpdate"), - getTipFactory("skyblocker.tips.issues", ClickEvent.Action.OPEN_URL, "https://github.com/SkyblockerMod/Skyblocker"), + getTipFactory("skyblocker.tips.issues", ClickEvent.Action.OPEN_URL, "https://github.com/SkyblockerMod/Skyblocker/issues"), getTipFactory("skyblocker.tips.beta", ClickEvent.Action.OPEN_URL, "https://github.com/SkyblockerMod/Skyblocker/actions"), + getTipFactory("skyblocker.tips.contribute", ClickEvent.Action.OPEN_URL, "https://github.com/SkyblockerMod/Skyblocker/wiki/contribute"), getTipFactory("skyblocker.tips.discord", ClickEvent.Action.OPEN_URL, "https://discord.gg/aNNJHQykck"), getTipFactory("skyblocker.tips.flameOverlay", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), getTipFactory("skyblocker.tips.wikiLookup", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), getTipFactory("skyblocker.tips.protectItem", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker protectItem"), getTipFactory("skyblocker.tips.fairySoulsEnigmaSoulsRelics", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker fairySouls"), - getTipFactory("skyblocker.tips.quickNav", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config") - ); + getTipFactory("skyblocker.tips.quickNav", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), + getTipFactory("skyblocker.tips.waypoints", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker waypoint"), + getTipFactory("skyblocker.tips.orderedWaypoints", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker waypoint ordered"), + getTipFactory("skyblocker.tips.visitorHelper"), + getTipFactory("skyblocker.tips.slotText"), + getTipFactory("skyblocker.tips.profileViewer", ClickEvent.Action.SUGGEST_COMMAND, "/pv"), + getTipFactory("skyblocker.tips.configSearch", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), + getTipFactory("skyblocker.tips.compactDamage", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), + getTipFactory("skyblocker.tips.skyblockerScreen", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker"), + getTipFactory("skyblocker.tips.tipsClick", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker tips next"), + getTipFactory("skyblocker.tips.eventNotifications", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), + getTipFactory("skyblocker.tips.signCalculator"), + getTipFactory("skyblocker.tips.fancierBars", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker bars"), + getTipFactory("skyblocker.tips.crystalWaypointsShare", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker crystalWaypoints share"), + getTipFactory("skyblocker.tips.gardenMouseLock", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), + getTipFactory("skyblocker.tips.newYearCakesHelper"), + getTipFactory("skyblocker.tips.accessoryHelper"), + getTipFactory("skyblocker.tips.fancyAuctionHouseCheapHighlight") + )); private static boolean sentTip = false; @@ -59,24 +77,18 @@ public class Tips { public static void init() { ClientCommandRegistrationCallback.EVENT.register(Tips::registerTipsCommand); SkyblockEvents.JOIN.register(Tips::sendNextTip); + Collections.shuffle(TIPS); } private static void registerTipsCommand(CommandDispatcher dispatcher, CommandRegistryAccess registryAccess) { dispatcher.register(literal(SkyblockerMod.NAMESPACE).then(literal("tips") .then(literal("enable").executes(Tips::enableTips)) .then(literal("disable").executes(Tips::disableTips)) - .then(literal("next").executes(Tips::nextTip)) + .then(literal("previous").executes(Tips::sendPreviousTipCommand)) + .then(literal("next").executes(Tips::sendNextTipCommand)) )); } - private static void sendNextTip() { - MinecraftClient client = MinecraftClient.getInstance(); - if (client.player != null && SkyblockerConfigManager.get().general.enableTips && !sentTip) { - client.player.sendMessage(nextTip(), false); - sentTip = true; - } - } - private static int enableTips(CommandContext context) { SkyblockerConfigManager.get().general.enableTips = true; SkyblockerConfigManager.save(); @@ -91,22 +103,52 @@ public class Tips { return Command.SINGLE_SUCCESS; } - private static int nextTip(CommandContext context) { - context.getSource().sendFeedback(nextTip()); + private static void sendNextTip() { + MinecraftClient client = MinecraftClient.getInstance(); + if (client.player != null && SkyblockerConfigManager.get().general.enableTips && !sentTip) { + client.player.sendMessage(tipMessage(nextTip()), false); + sentTip = true; + } + } + + private static int sendNextTipCommand(CommandContext context) { + context.getSource().sendFeedback(tipMessage(nextTip())); return Command.SINGLE_SUCCESS; } - private static Text nextTip() { - return Constants.PREFIX.get().append(Text.translatable("skyblocker.tips.tip", nextTipInternal())) + public static Text nextTip() { + return Text.translatable("skyblocker.tips.tip", nextTipInternal()); + } + + private static Text nextTipInternal() { + currentTipIndex++; + currentTipIndex %= TIPS.size(); + return TIPS.get(currentTipIndex).get(); + } + + private static int sendPreviousTipCommand(CommandContext context) { + context.getSource().sendFeedback(tipMessage(previousTip())); + return Command.SINGLE_SUCCESS; + } + + public static Text previousTip() { + return Text.translatable("skyblocker.tips.tip", previousTipInternal()); + } + + private static Text previousTipInternal() { + currentTipIndex--; + currentTipIndex += TIPS.size(); + currentTipIndex %= TIPS.size(); + return TIPS.get(currentTipIndex).get(); + } + + private static Text tipMessage(Text tip) { + return Constants.PREFIX.get().append(tip) + .append(" ") + .append(Text.translatable("skyblocker.tips.clickPreviousTip").styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/skyblocker tips previous")))) + .append(" ") .append(Text.translatable("skyblocker.tips.clickNextTip").styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/skyblocker tips next")))) .append(" ") .append(Text.translatable("skyblocker.tips.clickDisable").styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/skyblocker tips disable")))); } - - public static Text nextTipInternal() { - int randomInt = RANDOM.nextInt(TIPS.size()); - while (randomInt == previousTipIndex) randomInt = RANDOM.nextInt(TIPS.size()); - previousTipIndex = randomInt; - return TIPS.get(randomInt).get(); - } } -- cgit From 75ad3b6165bd3b23d2498eff608264064ec11468 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:03:07 +0800 Subject: Add calculate command --- src/main/java/de/hysky/skyblocker/skyblock/Tips.java | 1 + src/main/resources/assets/skyblocker/lang/en_us.json | 1 + 2 files changed, 2 insertions(+) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/Tips.java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/Tips.java b/src/main/java/de/hysky/skyblocker/skyblock/Tips.java index fb29dc3a..37f860a4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/Tips.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/Tips.java @@ -56,6 +56,7 @@ public class Tips { getTipFactory("skyblocker.tips.tipsClick", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker tips next"), getTipFactory("skyblocker.tips.eventNotifications", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), getTipFactory("skyblocker.tips.signCalculator"), + getTipFactory("skyblocker.tips.calculateCommand", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker calculate"), getTipFactory("skyblocker.tips.fancierBars", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker bars"), getTipFactory("skyblocker.tips.crystalWaypointsShare", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker crystalWaypoints share"), getTipFactory("skyblocker.tips.gardenMouseLock", ClickEvent.Action.SUGGEST_COMMAND, "/skyblocker config"), diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 35cd4ec1..898e2046 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -820,6 +820,7 @@ "skyblocker.tips.tipsClick": "Click on a tip chat message to run its suggestion!", "skyblocker.tips.eventNotifications": "Check out the customizable event notifications in the config.", "skyblocker.tips.signCalculator": "Type an math expression in a sign to have the mod calculate it for you.", + "skyblocker.tips.calculateCommand": "Enter an expression after /skyblocker calculate to have the mod calculate it for you.", "skyblocker.tips.fancierBars": "Customize the look of your health, mana, defense, and experience bars with /skyblocker bars. You can snap and resize bars too!", "skyblocker.tips.crystalWaypointsShare": "Share Crystal Hollows Waypoints with /skyblocker crystalWaypoints share.", "skyblocker.tips.gardenMouseLock": "Lock your mouse while farming in the Skyblocker Garden config.", -- cgit From 81d817176194de6083f9b3ad69c387fbffe9a3e0 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:32:58 +0800 Subject: Add translatable mcdev annotation --- build.gradle | 2 ++ gradle.properties | 2 ++ src/main/java/de/hysky/skyblocker/skyblock/Tips.java | 5 +++-- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/Tips.java') diff --git a/build.gradle b/build.gradle index 40304d77..acb14ff7 100644 --- a/build.gradle +++ b/build.gradle @@ -61,6 +61,8 @@ dependencies { modCompileOnly "dev.emi:emi-fabric:${project.emi_version}:api" //modLocalRuntime "dev.emi:emi-fabric:${project.emi_version}" + compileOnly "com.demonwav.mcdev:annotations:${project.mcdev_annotations_version}" + include modImplementation("meteordevelopment:discord-ipc:1.1") // Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) diff --git a/gradle.properties b/gradle.properties index ceb86ac8..90d4c20e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,6 +22,8 @@ rei_version = 13.0.666 emi_version = 1.0.22+1.20.2 # Minecraft and Related Libraries +## McDev Annotations (https://central.sonatype.com/artifact/com.demonwav.mcdev/annotations) +mcdev_annotations_version = 2.1.0 ## Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) occlusionculling_version = 0.0.8-SNAPSHOT ## neu repoparser (https://repo.nea.moe/#/releases/moe/nea/neurepoparser/) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/Tips.java b/src/main/java/de/hysky/skyblocker/skyblock/Tips.java index 37f860a4..5d983e20 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/Tips.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/Tips.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock; +import com.demonwav.mcdev.annotations.Translatable; import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.context.CommandContext; @@ -67,11 +68,11 @@ public class Tips { private static boolean sentTip = false; - private static Supplier getTipFactory(String key) { + private static Supplier getTipFactory(@Translatable String key) { return () -> Text.translatable(key); } - private static Supplier getTipFactory(String key, ClickEvent.Action clickAction, String value) { + private static Supplier getTipFactory(@Translatable String key, ClickEvent.Action clickAction, String value) { return () -> Text.translatable(key).styled(style -> style.withClickEvent(new ClickEvent(clickAction, value))); } -- cgit