diff options
author | J10a1n15 <45315647+j10a1n15@users.noreply.github.com> | 2024-09-12 10:25:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-12 10:25:09 +0200 |
commit | b99310be47d5caeb6de8832ce9e2b10c423f77ce (patch) | |
tree | e8bbdab5f75c24e6e83f31c1c45a3362e3f7599e /src | |
parent | 4e23db746f35965b84f8dd5be19b9883c67d8add (diff) | |
download | skyhanni-b99310be47d5caeb6de8832ce9e2b10c423f77ce.tar.gz skyhanni-b99310be47d5caeb6de8832ce9e2b10c423f77ce.tar.bz2 skyhanni-b99310be47d5caeb6de8832ce9e2b10c423f77ce.zip |
Feature: GetFromSack Piggy Bank (#2150)
Co-authored-by: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java | 6 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/GFSPiggyBank.kt | 48 |
2 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java index 1464d35ad..f3b9ab16e 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java @@ -317,6 +317,12 @@ public class MiscConfig { public boolean maintainGameVolume = false; @Expose + @ConfigOption(name = "GFS Piggy Bank", desc = "When your Piggy Bank breaks, send a chat warning to get enchanted pork from sacks.") + @ConfigEditorBoolean + @FeatureToggle + public boolean gfsPiggyBank = true; + + @Expose @ConfigOption(name = "SkyHanni User Luck", desc = "Shows SkyHanni User Luck in the SkyBlock Stats.") @ConfigEditorBoolean @FeatureToggle diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/GFSPiggyBank.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/GFSPiggyBank.kt new file mode 100644 index 000000000..159383d8a --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/GFSPiggyBank.kt @@ -0,0 +1,48 @@ +package at.hannibal2.skyhanni.features.misc + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.api.GetFromSackAPI +import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName +import at.hannibal2.skyhanni.utils.PrimitiveItemStack.Companion.makePrimitiveStack +import at.hannibal2.skyhanni.utils.RegexUtils.matchMatchers +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +@SkyHanniModule +object GFSPiggyBank { + + private val ENCHANTED_PORK by lazy { "ENCHANTED_PORK".asInternalName().makePrimitiveStack(8) } + + private val group = RepoPattern.group("misc.piggybank") + + /** + * REGEX-TEST: §cYou died and your piggy bank cracked! + */ + private val crackedPattern by group.pattern( + "cracked", + "§cYou died and your piggy bank cracked!", + ) + + /** + * REGEX-TEST: §cYou died, lost 50,000 coins and your piggy bank broke! + */ + private val brokePattern by group.pattern( + "broke", + "§cYou died, lost [\\d.,]* coins and your piggy bank broke!", + ) + + private val patternList = listOf(crackedPattern, brokePattern) + + @SubscribeEvent + fun onChat(event: LorenzChatEvent) { + if (!isEnabled()) return + patternList.matchMatchers(event.message) { + GetFromSackAPI.getFromChatMessageSackItems(ENCHANTED_PORK) + } + } + + private fun isEnabled() = LorenzUtils.inSkyBlock && SkyHanniMod.feature.misc.gfsPiggyBank +} |