Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

Commit

Permalink
highlight completed commissions in commissions menu - fix #34
Browse files Browse the repository at this point in the history
  • Loading branch information
btwonion committed Aug 3, 2024
1 parent 3a6c978 commit df85f18
Show file tree
Hide file tree
Showing 13 changed files with 83 additions and 14 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ in [features.md](https://github.com/btwonion/skylper/blob/master/features.md).

- mining ability indicator and notification
- Total Powder overlay
- highlight completed commissions in commissions menu

#### Crystal Hollows

Expand Down Expand Up @@ -76,6 +77,6 @@ A stable version will release, when all the planned features listed above are im

### Other

Currently supported versions are: 1.20.4, 1.20.6. This can change in the future!
Currently supported versions are: 1.20.4, 1.20.6, 1.21. This can change in the future!

If you need help with any of my mods just join my [discord server](https://nyon.dev/discord).
1 change: 1 addition & 0 deletions beta-changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## Features
- only render hud widget in modify screen if they should be rendered in-game, too
- use CompactNumberFormat for number formatting - numbers are now formatted with one fraction: 1,100,000 -> 1,1m
- highlight completed commissions in commissions menu

## Bug Fixes
- fix misplaced waypoints in Crystal Hollows
Expand Down
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
```diff
+ mining ability indicator and notification
+ total powder overlay
+ highlight completed commissions in commissions menu
```

### Crystal Hollows
Expand Down
2 changes: 2 additions & 0 deletions constants/regexes.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@
"menu.hotm.mithrilPowder": "Mithril Powder: (\\d+[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3})",
"menu.hotm.gemstonePowder": "Gemstone Powder: (\\d+[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3})",
"menu.hotm.glacitePowder": "Glacite Powder: (\\d+[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3})",
"menu.commissions.title": "Commissions",
"menu.commissions.completed": "COMPLETED",
"tablist.mining.mithril": "Mithril: (\\d+[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3})",
"tablist.mining.gemstone": "Gemstone: (\\d+[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3})",
"tablist.mining.glacite": "Glacite: (\\d+[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3}[,]?\\d{0,3})",
Expand Down
1 change: 1 addition & 0 deletions features.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

- mining ability indicator and notification
- Total Powder overlay
- highlight completed commissions in commissions menu

#### Crystal Hollows

Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/dev/nyon/skylper/Skylper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import dev.nyon.skylper.config.configJsonBuilder
import dev.nyon.skylper.extensions.event.EventHandler
import dev.nyon.skylper.extensions.event.FabricEvents
import dev.nyon.skylper.extensions.event.MinecraftStopEvent
import dev.nyon.skylper.skyblock.Mining
import dev.nyon.skylper.skyblock.mining.Mining
import dev.nyon.skylper.skyblock.data.online.OnlineData
import dev.nyon.skylper.skyblock.data.session.PlayerSessionData
import dev.nyon.skylper.skyblock.data.skylper.PlayerDataSaver
Expand Down
4 changes: 3 additions & 1 deletion src/main/kotlin/dev/nyon/skylper/config/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ data class Config(val mining: MiningConfig = MiningConfig(), val menu: Menu = Me
var miningAbilityNotification: Boolean = true,
var miningAbilityNotificationOnMiningIslands: Boolean = true,
var miningAbilityIndicator: Boolean = true,
val totalPowderOverlay: TotalPowderOverlay = TotalPowderOverlay()
val totalPowderOverlay: TotalPowderOverlay = TotalPowderOverlay(),
var highlightCompletedCommissions: Boolean = true,
var completedCommissionsHighlightColor: @Contextual Color = Color(255, 0, 0, 50)
)

@Serializable
Expand Down
33 changes: 31 additions & 2 deletions src/main/kotlin/dev/nyon/skylper/config/screen/MiningYaclScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package dev.nyon.skylper.config.screen

import dev.isxander.yacl3.dsl.*
import dev.nyon.skylper.config.config
import java.awt.Color

fun RootDsl.appendMiningCategory() {
val mining by categories.registering {
Expand All @@ -24,7 +25,10 @@ fun RootDsl.appendMiningCategory() {
}

val cooldownNotificationOnMiningIslands by rootOptions.registering {
binding(true, { config.mining.miningAbilityNotificationOnMiningIslands }, { config.mining.miningAbilityNotificationOnMiningIslands = it })
binding(
true,
{ config.mining.miningAbilityNotificationOnMiningIslands },
{ config.mining.miningAbilityNotificationOnMiningIslands = it })
controller = tickBox()
descriptionBuilder {
addDefaultText(1)
Expand All @@ -37,7 +41,10 @@ fun RootDsl.appendMiningCategory() {
}

val enabled by options.registering {
binding(true, { config.mining.totalPowderOverlay.enabled }, { config.mining.totalPowderOverlay.enabled = it })
binding(
true,
{ config.mining.totalPowderOverlay.enabled },
{ config.mining.totalPowderOverlay.enabled = it })
controller = tickBox()
descriptionBuilder {
addDefaultText(1)
Expand All @@ -60,5 +67,27 @@ fun RootDsl.appendMiningCategory() {
}
}
}

val highlightCompletedCommissions by rootOptions.registering {
binding(
true,
{ config.mining.highlightCompletedCommissions },
{ config.mining.highlightCompletedCommissions = it })
controller = tickBox()
descriptionBuilder {
addDefaultText(1)
}
}

val completedCommissionsHighlightColor by rootOptions.registering {
binding(
Color(255, 0, 0, 50),
{ config.mining.completedCommissionsHighlightColor },
{ config.mining.completedCommissionsHighlightColor = it })
controller = colorPicker()
descriptionBuilder {
addDefaultText(1)
}
}
}
}
5 changes: 5 additions & 0 deletions src/main/kotlin/dev/nyon/skylper/extensions/Items.kt
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,9 @@ val ItemStack.lore: List<Component>
TooltipFlag.ADVANCED
)
return lines.drop(1)
}

val ItemStack.rawLore: List<String>
get() {
return lore.map { it.string.clean() }
}
9 changes: 0 additions & 9 deletions src/main/kotlin/dev/nyon/skylper/skyblock/Mining.kt

This file was deleted.

11 changes: 11 additions & 0 deletions src/main/kotlin/dev/nyon/skylper/skyblock/mining/Mining.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package dev.nyon.skylper.skyblock.mining

import dev.nyon.skylper.skyblock.mining.hollows.HollowsModule
import dev.nyon.skylper.skyblock.mining.menu.CommissionHighlighter

object Mining {
fun init() {
HollowsModule.init()
CommissionHighlighter
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package dev.nyon.skylper.skyblock.mining.menu

import dev.nyon.skylper.config.config
import dev.nyon.skylper.extensions.event.EventHandler.listenEvent
import dev.nyon.skylper.extensions.event.RenderItemBackgroundEvent
import dev.nyon.skylper.extensions.rawLore
import dev.nyon.skylper.extensions.regex

object CommissionHighlighter {
private val commissionsTitleRegex = regex("menu.commissions.title")
private val commissionCompletedRegex = regex("menu.commissions.completed")

@Suppress("unused")
val renderBackgroundEvent = listenEvent<RenderItemBackgroundEvent, Int?> {
if (!config.mining.highlightCompletedCommissions) return@listenEvent null
if (!commissionsTitleRegex.matches(rawTitle)) return@listenEvent null
val item = slot.item
if (item.rawLore.none { commissionCompletedRegex.matches(it) }) return@listenEvent null
return@listenEvent config.mining.completedCommissionsHighlightColor.rgb
}
}
4 changes: 4 additions & 0 deletions src/main/resources/assets/skylper/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
"yacl3.config.skylper.category.mining.root.option.cooldownNotification.description": "Decides whether to show a title when the Pickaxe Ability cooldown is done.",
"yacl3.config.skylper.category.mining.root.option.cooldownNotificationOnMiningIslands": "Pickaxe Ability availability notification on mining islands only",
"yacl3.config.skylper.category.mining.root.option.cooldownNotificationOnMiningIslands.description": "Decides whether to only show a title for the Pickaxe Ability cooldown, when on mining islands.",
"yacl3.config.skylper.category.mining.root.option.highlightCompletedCommissions": "Highlight completed commissions",
"yacl3.config.skylper.category.mining.root.option.highlightCompletedCommissions.description": "Highlight completed commissions in commissions menu.",
"yacl3.config.skylper.category.mining.root.option.completedCommissionsHighlightColor": "Completed commission highlight color",
"yacl3.config.skylper.category.mining.root.option.completedCommissionsHighlightColor.description": "Defines the highlighting color of completed commissions.",
"yacl3.config.skylper.category.mining.group.totalPowderOverlay": "Total powder overlay",
"yacl3.config.skylper.category.mining.group.totalPowderOverlay.description": "Changes preferences about the Total Powder overlay, which shows the total amount of gemstone and mithril powder.",
"yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.enabled": "Enabled",
Expand Down

0 comments on commit df85f18

Please sign in to comment.