diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/ActionBarStatsData.kt | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ActionBarStatsData.kt b/src/main/java/at/hannibal2/skyhanni/data/ActionBarStatsData.kt new file mode 100644 index 000000000..5130e7080 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/ActionBarStatsData.kt @@ -0,0 +1,35 @@ +package at.hannibal2.skyhanni.data + +import at.hannibal2.skyhanni.events.LorenzActionBarEvent +import at.hannibal2.skyhanni.utils.LorenzUtils +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import java.util.regex.Pattern + +class ActionBarStatsData { + private val pattern = + Pattern.compile("..((?:\\d|,)*)\\/(?:\\d|,)*(.) *..((?:\\d|,)*)..(. \\w*) *..((?:\\d|,)*)\\/(?:\\d|,)*(.*)") +// Sample input: §c2,817/2,817❤ §a703§a❈ Defense §b3,479/3,479✎ Mana +// Returns the following groups: 1 = 2,817; 2 = ❤; 3 = 703; 4 = ❈ Defense; 5 = 3,479; 6 = ✎ Mana + + companion object { + var groups = listOf<String>() + } + + @SubscribeEvent + fun onActionBar(event: LorenzActionBarEvent) { + groups = readGroups(event.message) + } + + private fun readGroups(message: String): List<String> { + if (!LorenzUtils.inSkyBlock) return emptyList() + + val matcher = pattern.matcher(message) + if (!matcher.matches()) return emptyList() + + val list = mutableListOf<String>() + for (i in 1..matcher.groupCount()) { + list.add(matcher.group(i)) + } + return list + } +} |
