From 2ea71662e5a48d2a72d94c78eb04d7653e544e9b Mon Sep 17 00:00:00 2001 From: btwonion Date: Sun, 25 Aug 2024 17:25:03 +0200 Subject: [PATCH] add dwarven event widget --- beta-changelog.md | 10 +- build.gradle.kts | 2 +- constants/island_groups.json | 8 +- .../kotlin/dev/nyon/skylper/config/Config.kt | 4 + .../skylper/config/screen/MiningYaclScreen.kt | 32 ++ .../nyon/skylper/extensions/Serializers.kt | 13 + .../extensions/render/hud/TableHudWidget.kt | 2 +- .../skyblock/data/api/MiningEventApi.kt | 30 ++ .../skyblock/data/online/IslandGroups.kt | 5 +- .../skyblock/models/mining/MiningEventType.kt | 19 + .../skyblock/models/mining/SoopyEvent.kt | 25 ++ .../skylper/skyblock/render/SkylperHud.kt | 2 + .../skyblock/render/SkylperHudModifier.kt | 2 + .../render/mining/MiningEventWidget.kt | 63 ++++ .../resources/assets/skylper/lang/en_us.json | 328 +++++++++--------- 15 files changed, 375 insertions(+), 170 deletions(-) create mode 100644 src/main/kotlin/dev/nyon/skylper/skyblock/data/api/MiningEventApi.kt create mode 100644 src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/MiningEventType.kt create mode 100644 src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/SoopyEvent.kt create mode 100644 src/main/kotlin/dev/nyon/skylper/skyblock/render/mining/MiningEventWidget.kt diff --git a/beta-changelog.md b/beta-changelog.md index 6860e6f..83818f7 100644 --- a/beta-changelog.md +++ b/beta-changelog.md @@ -1,12 +1,8 @@ ## Features -- update powders from tablist more often -- rework powder calculation for powder grinding widget -- use better prefix for chat messages +- add event forecast widget for dwarves, crystals and mineshafts ## Bug Fixes -- disable delete button of waypoint on deletion in location screen +none ## Technical changes -- update to konfig 2.0.2 -- rework event api to be hot-swappable -- redo all calculations to apis \ No newline at end of file +none \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 1418436..b46e408 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ plugins { `maven-publish` } -val beta: Int = 31 // Pattern is '1.0.0-beta1-1.20.6-pre.2'; when beta == 0 beta is null +val beta: Int = 32 // Pattern is '1.0.0-beta1-1.20.6-pre.2'; when beta == 0 beta is null val featureVersion = "1.0.0${if (beta != 0) "-beta$beta" else ""}" val mcVersion = property("mcVersion")!!.toString() val mcVersionRange = property("mcVersionRange")!!.toString() diff --git a/constants/island_groups.json b/constants/island_groups.json index 5c34b74..ac73ccc 100644 --- a/constants/island_groups.json +++ b/constants/island_groups.json @@ -3,6 +3,12 @@ "GOLD_MINE", "DEEP_CAVERNS", "DWARVEN_MINES", - "CRYSTAL_HOLLOWS" + "CRYSTAL_HOLLOWS", + "MINESHAFT" + ], + "mining_events": [ + "DWARVEN_MINES", + "CRYSTAL_HOLLOWS", + "MINESHAFT" ] } \ No newline at end of file diff --git a/src/main/kotlin/dev/nyon/skylper/config/Config.kt b/src/main/kotlin/dev/nyon/skylper/config/Config.kt index dcd26f6..3173e44 100644 --- a/src/main/kotlin/dev/nyon/skylper/config/Config.kt +++ b/src/main/kotlin/dev/nyon/skylper/config/Config.kt @@ -31,6 +31,7 @@ data class Config(val mining: MiningConfig = MiningConfig(), val menu: Menu = Me var miningAbilityNotificationOnMiningIslands: Boolean = true, var miningAbilityIndicator: Boolean = true, val totalPowderOverlay: TotalPowderOverlay = TotalPowderOverlay(), + val eventOverlay: EventOverlay = EventOverlay(), var highlightCompletedCommissions: Boolean = true, var completedCommissionsHighlightColor: @Contextual Color = Color(255, 0, 0, 50) ) @@ -88,6 +89,9 @@ data class Config(val mining: MiningConfig = MiningConfig(), val menu: Menu = Me @Serializable data class TotalPowderOverlay(var enabled: Boolean = true, var x: Int = 5, var y: Int = 300) + @Serializable + data class EventOverlay(var enabled: Boolean = true, var x: Int = 5, var y: Int = 500) + @Serializable data class Menu(val collections: Collections = Collections(), val bestiary: Bestiary = Bestiary()) { @Serializable diff --git a/src/main/kotlin/dev/nyon/skylper/config/screen/MiningYaclScreen.kt b/src/main/kotlin/dev/nyon/skylper/config/screen/MiningYaclScreen.kt index f5ecd01..b4f4815 100644 --- a/src/main/kotlin/dev/nyon/skylper/config/screen/MiningYaclScreen.kt +++ b/src/main/kotlin/dev/nyon/skylper/config/screen/MiningYaclScreen.kt @@ -66,6 +66,38 @@ fun RootDsl.appendMiningCategory() { } } + val miningEventOverlay by groups.registering { + descriptionBuilder { + addDefaultText(1) + } + + val enabled by options.registering { + binding(true, + { config.mining.eventOverlay.enabled }, + { config.mining.eventOverlay.enabled = it }) + controller = tickBox() + descriptionBuilder { + addDefaultText(1) + } + } + + val x by options.registering { + binding(5, { config.mining.eventOverlay.x }, { config.mining.eventOverlay.x = it }) + controller = numberField(0 as Int) + descriptionBuilder { + addDefaultText(1) + } + } + + val y by options.registering { + binding(300, { config.mining.eventOverlay.y }, { config.mining.eventOverlay.y = it }) + controller = numberField(0 as Int) + descriptionBuilder { + addDefaultText(1) + } + } + } + val highlightCompletedCommissions by rootOptions.registering { binding(true, { config.mining.highlightCompletedCommissions }, diff --git a/src/main/kotlin/dev/nyon/skylper/extensions/Serializers.kt b/src/main/kotlin/dev/nyon/skylper/extensions/Serializers.kt index 740ae59..450f60e 100644 --- a/src/main/kotlin/dev/nyon/skylper/extensions/Serializers.kt +++ b/src/main/kotlin/dev/nyon/skylper/extensions/Serializers.kt @@ -2,6 +2,7 @@ package dev.nyon.skylper.extensions +import kotlinx.datetime.Instant import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer import kotlinx.serialization.builtins.DoubleArraySerializer @@ -52,4 +53,16 @@ object Vec3Serializer : KSerializer { val data = doubleArrayOf(value.x, value.y, value.z) encoder.encodeSerializableValue(delegateSerializer, data) } +} + +object InstantMillisSerializer : KSerializer { + override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("instant", PrimitiveKind.FLOAT) + + override fun deserialize(decoder: Decoder): Instant { + return Instant.fromEpochMilliseconds(decoder.decodeFloat().toLong()) + } + + override fun serialize(encoder: Encoder, value: Instant) { + encoder.encodeFloat(value.toEpochMilliseconds().toFloat()) + } } \ No newline at end of file diff --git a/src/main/kotlin/dev/nyon/skylper/extensions/render/hud/TableHudWidget.kt b/src/main/kotlin/dev/nyon/skylper/extensions/render/hud/TableHudWidget.kt index 6b16c45..69c921a 100644 --- a/src/main/kotlin/dev/nyon/skylper/extensions/render/hud/TableHudWidget.kt +++ b/src/main/kotlin/dev/nyon/skylper/extensions/render/hud/TableHudWidget.kt @@ -14,7 +14,7 @@ import kotlin.math.max * @param rows The rows the table should have. * @param columns The columns the table should have. */ -abstract class TableHudWidget(override var title: Component, private val rows: Int, private val columns: Int) : +abstract class TableHudWidget(override var title: Component, var rows: Int, var columns: Int) : HudWidget { val components: MutableMap = mutableMapOf() private val mutex = Mutex() diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/data/api/MiningEventApi.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/data/api/MiningEventApi.kt new file mode 100644 index 0000000..3405aa0 --- /dev/null +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/data/api/MiningEventApi.kt @@ -0,0 +1,30 @@ +package dev.nyon.skylper.skyblock.data.api + +import dev.nyon.skylper.extensions.httpClient +import dev.nyon.skylper.extensions.json +import dev.nyon.skylper.independentScope +import dev.nyon.skylper.skyblock.data.session.PlayerSessionData +import dev.nyon.skylper.skyblock.models.mining.SoopyEvent +import io.ktor.client.request.* +import io.ktor.client.statement.* +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlin.time.Duration.Companion.seconds + +object MiningEventApi { + private var soopyEventData: SoopyEvent? = null + val currentEvents: List + get() = soopyEventData?.data?.runningEvents?.get(PlayerSessionData.currentArea) ?: emptyList() + + @Suppress("unused") + private val updater = independentScope.launch { + while (true) { + val soopyEvent = runCatching { + val response = httpClient.get("https://api.soopy.dev/skyblock/chevents/get").bodyAsText() + json.decodeFromString(response) + }.onFailure { it.printStackTrace() }.getOrNull() + soopyEventData = soopyEvent + delay(45.seconds) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/data/online/IslandGroups.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/data/online/IslandGroups.kt index 0c2317b..dfe343e 100644 --- a/src/main/kotlin/dev/nyon/skylper/skyblock/data/online/IslandGroups.kt +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/data/online/IslandGroups.kt @@ -1,13 +1,14 @@ package dev.nyon.skylper.skyblock.data.online import dev.nyon.skylper.skyblock.models.Area +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable object IslandGroups : OnlineData(IslandGroupsData::class) { override val url: String = SKYLPER_REPO_URL override val path: String = "island_groups.json" - var groups: IslandGroupsData = IslandGroupsData(listOf()) + var groups: IslandGroupsData = IslandGroupsData(listOf(), listOf()) override fun setData(data: IslandGroupsData?) { groups = data ?: return @@ -15,4 +16,4 @@ object IslandGroups : OnlineData(IslandGroupsData::class) { } @Serializable -data class IslandGroupsData(val mining: List) \ No newline at end of file +data class IslandGroupsData(val mining: List, @SerialName("mining_events") val miningEvents: List) \ No newline at end of file diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/MiningEventType.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/MiningEventType.kt new file mode 100644 index 0000000..8d98e50 --- /dev/null +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/MiningEventType.kt @@ -0,0 +1,19 @@ +package dev.nyon.skylper.skyblock.models.mining + +import kotlinx.serialization.Serializable +import net.minecraft.ChatFormatting +import net.minecraft.network.chat.Component + +@Serializable +enum class MiningEventType(private val colorChar: Char) { + GONE_WITH_THE_WIND('9'), + BETTER_TOGETHER('d'), + DOUBLE_POWDER('b'), + RAFFLE('6'), + GOBLIN_RAID('c'), + MITHRIL_GOURMAND('b'); + + fun getDisplayName(): Component { + return Component.literal(name.replace("_", " ")).withStyle(ChatFormatting.getByCode(colorChar)!!) + } +} \ No newline at end of file diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/SoopyEvent.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/SoopyEvent.kt new file mode 100644 index 0000000..24c6bfa --- /dev/null +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/models/mining/SoopyEvent.kt @@ -0,0 +1,25 @@ +package dev.nyon.skylper.skyblock.models.mining + +import dev.nyon.skylper.extensions.InstantMillisSerializer +import dev.nyon.skylper.skyblock.models.Area +import kotlinx.datetime.Instant +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class SoopyEvent(val success: Boolean, val data: Data) { + @Serializable + data class Data( + @SerialName("running_events") + val runningEvents: Map> + ) + + @Serializable + data class MiningEvent( + val event: MiningEventType, + @SerialName("ends_at") + val endsAt: @Serializable(with = InstantMillisSerializer::class) Instant, + @SerialName("lobby_count") + val lobbyCount: Int + ) +} diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHud.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHud.kt index fe5e33c..9da6317 100644 --- a/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHud.kt +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHud.kt @@ -3,6 +3,7 @@ package dev.nyon.skylper.skyblock.render import dev.nyon.skylper.extensions.event.RenderHudEvent import dev.nyon.skylper.extensions.event.SkylperEvent import dev.nyon.skylper.extensions.render.hud.HudWidget +import dev.nyon.skylper.skyblock.render.mining.MiningEventWidget import dev.nyon.skylper.skyblock.render.mining.crystalHollows.CrystalCompletionWidget import dev.nyon.skylper.skyblock.render.mining.crystalHollows.TotalPowderWidget import dev.nyon.skylper.skyblock.tracker.mining.crystalHollows.powder.PowderGrindingTracker @@ -15,6 +16,7 @@ object SkylperHud { context.renderWidget(CrystalCompletionWidget) context.renderWidget(PowderGrindingTracker) context.renderWidget(TotalPowderWidget) + context.renderWidget(MiningEventWidget) } private fun GuiGraphics.renderWidget( diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHudModifier.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHudModifier.kt index ce137f7..c3cf591 100644 --- a/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHudModifier.kt +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHudModifier.kt @@ -3,6 +3,7 @@ package dev.nyon.skylper.skyblock.render import dev.nyon.konfig.config.saveConfig import dev.nyon.skylper.config.config import dev.nyon.skylper.extensions.render.hud.HudWidget +import dev.nyon.skylper.skyblock.render.mining.MiningEventWidget import dev.nyon.skylper.skyblock.render.mining.crystalHollows.CrystalCompletionWidget import dev.nyon.skylper.skyblock.render.mining.crystalHollows.TotalPowderWidget import dev.nyon.skylper.skyblock.tracker.mining.crystalHollows.powder.PowderGrindingTracker @@ -18,6 +19,7 @@ class SkylperHudModifier(private val parent: Screen?) : if (config.mining.crystalHollows.crystalOverlay.enabled) add(CrystalCompletionWidget) if (config.mining.crystalHollows.powderGrindingOverlay.enabled) add(PowderGrindingTracker) if (config.mining.totalPowderOverlay.enabled) add(TotalPowderWidget) + if (config.mining.eventOverlay.enabled) add(MiningEventWidget) }.onEach(HudWidget::update) override fun render( diff --git a/src/main/kotlin/dev/nyon/skylper/skyblock/render/mining/MiningEventWidget.kt b/src/main/kotlin/dev/nyon/skylper/skyblock/render/mining/MiningEventWidget.kt new file mode 100644 index 0000000..0e1b8f0 --- /dev/null +++ b/src/main/kotlin/dev/nyon/skylper/skyblock/render/mining/MiningEventWidget.kt @@ -0,0 +1,63 @@ +package dev.nyon.skylper.skyblock.render.mining + +import dev.nyon.skylper.config.config +import dev.nyon.skylper.extensions.math.toPrettyString +import dev.nyon.skylper.extensions.render.hud.TableHudWidget +import dev.nyon.skylper.extensions.render.hud.components.PlainTextHudComponent +import dev.nyon.skylper.skyblock.data.api.MiningEventApi +import dev.nyon.skylper.skyblock.data.online.IslandGroups +import dev.nyon.skylper.skyblock.data.session.PlayerSessionData +import kotlinx.datetime.Clock +import net.minecraft.network.chat.Component + +object MiningEventWidget : TableHudWidget(Component.translatable("menu.skylper.overlay.mining.events.title"), 1, 3) { + override var x: Double = config.mining.eventOverlay.x.toDouble() + set(value) { + config.mining.eventOverlay.x = value.toInt() + field = value + } + override var y: Double = config.mining.eventOverlay.x.toDouble() + set(value) { + config.mining.eventOverlay.x = value.toInt() + field = value + } + + override fun update() { + super.update() + val data = MiningEventApi.currentEvents + + rows = data.size + data.forEachIndexed { index, event -> + addComponent(index, 0, PlainTextHudComponent(event.event.getDisplayName())) + val remaining = event.endsAt - Clock.System.now() + addComponent( + index, + 1, + PlainTextHudComponent( + Component.translatable( + "menu.skylper.overlay.mining.events.ends_in", + remaining.toPrettyString() + ) + ) + ) + addComponent( + index, + 2, + PlainTextHudComponent( + Component.translatable( + "menu.skylper.overlay.mining.events.lobby_count.${if (event.lobbyCount == 1) "single" else "multiple"}", + event.lobbyCount + ) + ) + ) + } + } + + override fun shouldRender(): Boolean { + return IslandGroups.groups.miningEvents.contains(PlayerSessionData.currentArea) && config.mining.eventOverlay.enabled + } + + init { + init() + } +} \ No newline at end of file diff --git a/src/main/resources/assets/skylper/lang/en_us.json b/src/main/resources/assets/skylper/lang/en_us.json index 4ff08fe..f6d3d79 100644 --- a/src/main/resources/assets/skylper/lang/en_us.json +++ b/src/main/resources/assets/skylper/lang/en_us.json @@ -1,160 +1,172 @@ { - "yacl3.config.skylper.title": "Skylper", - "yacl3.config.skylper.category.general": "General", - "yacl3.config.skylper.category.general.root.option.hud": "Modify HUD", - "yacl3.config.skylper.category.general.root.option.hud.description": "Modify the in-game HUD.", - "yacl3.config.skylper.category.menu": "Menu", - "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedCollections": "Highlight non-completed collections in menu", - "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedCollections.description": "Decides whether to highlight non-completed collections in the /collections menu.", - "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightCollectionColor": "Non-completed collection highlight color", - "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightCollectionColor.description": "Decides the color in which a non-completed collection in the /collections menu should be highlighted. This is only applied, when the highlighting is enabled.", - "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedBestiary": "Highlight non-completed bestiary in menu", - "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedBestiary.description": "Decides whether to highlight non-completed bestiary in the /bestiary menu.", - "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightBestiaryColor": "Non-completed bestiary highlight color", - "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightBestiaryColor.description": "Decides the color in which the non-completed bestiary in the /bestiary menu should be highlighted. This is only applied, when the highlighting is enabled.", - "yacl3.config.skylper.category.mining": "Mining", - "yacl3.config.skylper.category.mining.root.option.cooldownIndicator": "Pickaxe Ability cooldown indicator", - "yacl3.config.skylper.category.mining.root.option.cooldownIndicator.description": "Decides whether to show the Pickaxe Ability cooldown indicator on mining items in the inventory.", - "yacl3.config.skylper.category.mining.root.option.cooldownNotification": "Pickaxe Ability availability notification", - "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", - "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", - "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.x": "X coordinate", - "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", - "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.y": "Y coordinate", - "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", - "yacl3.config.skylper.category.hollows": "Crystal Hollows", - "yacl3.config.skylper.category.hollows.root.option.highlightChest": "Treasure chest highlight", - "yacl3.config.skylper.category.hollows.root.option.highlightChest.description": "Decides whether to highlight treasure chests or not.", - "yacl3.config.skylper.category.hollows.root.option.highlightChestColor": "Treasure chest highlight color", - "yacl3.config.skylper.category.hollows.root.option.highlightChestColor.description": "Decides the color a treasure chest should be highlighted in.", - "yacl3.config.skylper.category.hollows.root.option.chestLockHighlight": "Chest Lock Highlight", - "yacl3.config.skylper.category.hollows.root.option.chestLockHighlight.description": "Decides whether to highlight the lock particles of a chests or not.", - "yacl3.config.skylper.category.hollows.root.option.autoPassRenew": "Auto renew Crystal Hollows Pass", - "yacl3.config.skylper.category.hollows.root.option.autoPassRenew.description": "Decides whether the pass, which grants access to the Crystal Hollows, should be automatically renewed or not.", - "yacl3.config.skylper.category.hollows.group.locations": "Locations from chat", - "yacl3.config.skylper.category.hollows.group.locations.description": "Settings about the structure location recognition in public chats.", - "yacl3.config.skylper.category.hollows.group.locations.option.parseLocations": "Recognize locations", - "yacl3.config.skylper.category.hollows.group.locations.option.parseLocations.description": "Decides whether to recognize locations sent in public chat.", - "yacl3.config.skylper.category.hollows.group.locations.option.autoAddLocations": "Automatically add locations", - "yacl3.config.skylper.category.hollows.group.locations.option.autoAddLocations.description": "Decides whether to automatically add locations, which are recognized in messages sent in public chat.", - "yacl3.config.skylper.category.hollows.root.option.locationsScreen": "Open waypoints screen", - "yacl3.config.skylper.category.hollows.root.option.locationsScreen.description": "Click to open a screen, where you can view, share and delete your waypoints.", - "yacl3.config.skylper.category.hollows.group.waypoints": "Structure waypoints", - "yacl3.config.skylper.category.hollows.group.waypoints.description": "Change which waypoints should be shown in the Crystal Hollows.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinKing": "King Yolkar", - "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinKing.description": "Decides whether the waypoint of King Yolkar should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinQueen": "Goblin Queen", - "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinQueen.description": "Decides whether the waypoint of Goblin Queen should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.precursorCity": "Precursor City", - "yacl3.config.skylper.category.hollows.group.waypoints.option.precursorCity.description": "Decides whether the waypoint of the Precursor City should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.jungleTemple": "Jungle Temple", - "yacl3.config.skylper.category.hollows.group.waypoints.option.jungleTemple.description": "Decides whether the waypoint of the Jungle Temple should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.amethystCrystal": "Amethyst Crystal", - "yacl3.config.skylper.category.hollows.group.waypoints.option.amethystCrystal.description": "Decides whether the waypoint of the Amethyst Crystal should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.odawa": "Odawa", - "yacl3.config.skylper.category.hollows.group.waypoints.option.odawa.description": "Decides whether the waypoint of Odawa should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.khazadDum": "Khazad-dûm", - "yacl3.config.skylper.category.hollows.group.waypoints.option.khazadDum.description": "Decides whether the waypoint of the Khazad-dûm should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.divanMines": "Mines of Divan", - "yacl3.config.skylper.category.hollows.group.waypoints.option.divanMines.description": "Decides whether the waypoint of the Mines of Divan should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.nucleus": "Crystal Nucleus", - "yacl3.config.skylper.category.hollows.group.waypoints.option.nucleus.description": "Decides whether the waypoint of the Crystal Nucleus should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.fairyGrotto": "Fairy Grotto", - "yacl3.config.skylper.category.hollows.group.waypoints.option.fairyGrotto.description": "Decides whether the waypoint of the Fairy Grotto should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.corleone": "Boss Corleone", - "yacl3.config.skylper.category.hollows.group.waypoints.option.corleone.description": "Decides whether the waypoint of Boss Corleone should be shown.", - "yacl3.config.skylper.category.hollows.group.waypoints.option.keyGuardian": "Key Guardian", - "yacl3.config.skylper.category.hollows.group.waypoints.option.keyGuardian.description": "Decides whether the waypoint of Key Guardian should be shown.", - "yacl3.config.skylper.category.hollows.group.crystalOverlay": "Crystal overlay", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.description": "Changes preferences about the Crystal Overlay, which shows the status of the crystals needed for a nucleus run.", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.enabled": "Enabled", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.x": "X coordinate", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.y": "Y coordinate", - "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay": "Powder Grinding Tracker", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.description": "Changes preferences about the Powder Grinding Tracker, which shows stats about your powder grinding session.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.enabled": "Enabled", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.x": "X coordinate", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.y": "Y coordinate", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestTotal": "Total opened chests", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestTotal.description": "Decides whether the total count of opened chests should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestMinute": "Opened chests per minute", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestMinute.description": "Decides whether the count of chest per minute should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestHour": "Opened chests per hour", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestHour.description": "Decides whether the count of chest per hour should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneTotal": "Total farmed Gemstone Powder", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneTotal.description": "Decides whether the total amount of farmed Gemstone Powder should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneMinute": "Gemstone Powder per minute", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneMinute.description": "Decides whether the amount of Gemstone Powder per minute should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneHour": "Gemstone Powder per hour", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneHour.description": "Decides whether the amount of Gemstone Powder per hour should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilTotal": "Total farmed Mithril Powder", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilTotal.description": "Decides whether the total amount of farmed Mithril Powder should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilMinute": "Mithril Powder per minute", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilMinute.description": "Decides whether the amount of Mithril Powder per minute should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilHour": "Mithril Powder per hour", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilHour.description": "Decides whether the amount of Mithril Powder per hour should be displayed in the widget.", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.doublePowder": "Double powder event state", - "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.doublePowder.description": "Toggles whether the state of the Double Powder event of the Crystal Hollows should be visible in the widget.", - "yacl3.config.skylper.category.misc": "Misc", - "yacl3.config.skylper.category.misc.root.option.recognizeLobby": "Recognized lobbies", - "yacl3.config.skylper.category.misc.root.option.recognizeLobby.description": "Send a message if you already joined the lobby in the session.", - "yacl3.config.locations.category.locations": "Waypoints", - "yacl3.config.locations.category.locations.description": "Here you can view, delete and share the waypoint in the public chat.", - "yacl3.config.locations.category.locations.share": "Share in chat", - "yacl3.config.locations.category.locations.share.description": "Click here to share this waypoint in the chat.", - "yacl3.config.locations.category.locations.delete": "Delete waypoint", - "yacl3.config.locations.category.locations.delete.description": "Click here to delete this waypoint. When executed, the gui will not instantly update. To view the changes here, you have to reopen this screen.", - "menu.skylper.tabhud.modifier.title": "Modify HUD", - "menu.skylper.tabhud.modifier.caption": "Drag the widgets to reorder them.", - "menu.skylper.overlay.duration": "Time spent: ", - "menu.skylper.overlay.hollows.powder_grinding.title": "Powder Grinding", - "menu.skylper.overlay.hollows.powder_grinding.total_stat": "%d in total", - "menu.skylper.overlay.hollows.powder_grinding.per_minute_stat": "%d per minute", - "menu.skylper.overlay.hollows.powder_grinding.per_hour_stat": "%d per hour", - "menu.skylper.overlay.hollows.powder_grinding.chest": "Opened chests: ", - "menu.skylper.overlay.hollows.powder_grinding.gemstone": "Gemstone Powder: ", - "menu.skylper.overlay.hollows.powder_grinding.mithril": "Mithril Powder: ", - "menu.skylper.overlay.hollows.powder_grinding.double_powder": "Double Powder: ", - "menu.skylper.hollows.tabhud.crystals.title": "Crystals", - "menu.skylper.hollows.tabhud.crystals.not_found": "Not found", - "menu.skylper.hollows.tabhud.crystals.found": "Found", - "menu.skylper.hollows.tabhud.crystals.placed": "Placed", - "menu.skylper.overlay.hollows.total_powder.title": "Total Powder", - "menu.skylper.overlay.hollows.total_powder.mithril": "Mithril Powder", - "menu.skylper.overlay.hollows.total_powder.gemstone": "Gemstone Powder", - "menu.skylper.overlay.hollows.total_powder.glacite": "Glacite Powder", - "menu.skylper.keybinding.location_screen": "Open Crystal Hollows Location screen", - "chat.skylper.hollows.locations.found": "Found %d with the coordinates %d, %d, %d!", - "chat.skylper.hollows.locations.pick": "Click the structure that this coordinates belong to: %d", - "chat.skylper.hollows.locations.nucleus": "Crystal Nucleus", - "chat.skylper.hollows.locations.precursor_city": "Precursor City", - "chat.skylper.hollows.locations.jungle_temple": "Jungle Temple", - "chat.skylper.hollows.locations.amethyst_crystal": "Amethyst Crystal", - "chat.skylper.hollows.locations.odawa": "Odawa", - "chat.skylper.hollows.locations.key_guardian": "Key Guardian", - "chat.skylper.hollows.locations.divan_mines": "Mines of Divan", - "chat.skylper.hollows.locations.corleone": "Corleone", - "chat.skylper.hollows.locations.fairy_grotto": "Fairy Grotto", - "chat.skylper.hollows.locations.goblin_king": "King Yolkar", - "chat.skylper.hollows.locations.goblin_queen": "Goblin Queen's Den", - "chat.skylper.hollows.locations.khazad_dum": "Khazad Dûm", - "chat.skylper.hollows.command.waypoint_created": "Successfully created waypoint for %d!", - "chat.skylper.hollows.command.waypoint_deleted": "The waypoint %d was deleted successfully!", - "chat.skylper.hollows.pickaxe_cooldown.not_found": "No Pickaxe Ability could be found. If this is an error, please open the Heart of the Mountain (/hotm) screen!", - "chat.skylper.misc.lobby_recognition": "You've been in this lobby!" + "yacl3.config.skylper.title": "Skylper", + "yacl3.config.skylper.category.general": "General", + "yacl3.config.skylper.category.general.root.option.hud": "Modify HUD", + "yacl3.config.skylper.category.general.root.option.hud.description": "Modify the in-game HUD.", + "yacl3.config.skylper.category.menu": "Menu", + "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedCollections": "Highlight non-completed collections in menu", + "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedCollections.description": "Decides whether to highlight non-completed collections in the /collections menu.", + "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightCollectionColor": "Non-completed collection highlight color", + "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightCollectionColor.description": "Decides the color in which a non-completed collection in the /collections menu should be highlighted. This is only applied, when the highlighting is enabled.", + "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedBestiary": "Highlight non-completed bestiary in menu", + "yacl3.config.skylper.category.menu.root.option.highlightNonCompletedBestiary.description": "Decides whether to highlight non-completed bestiary in the /bestiary menu.", + "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightBestiaryColor": "Non-completed bestiary highlight color", + "yacl3.config.skylper.category.menu.root.option.nonCompletedHighlightBestiaryColor.description": "Decides the color in which the non-completed bestiary in the /bestiary menu should be highlighted. This is only applied, when the highlighting is enabled.", + "yacl3.config.skylper.category.mining": "Mining", + "yacl3.config.skylper.category.mining.root.option.cooldownIndicator": "Pickaxe Ability cooldown indicator", + "yacl3.config.skylper.category.mining.root.option.cooldownIndicator.description": "Decides whether to show the Pickaxe Ability cooldown indicator on mining items in the inventory.", + "yacl3.config.skylper.category.mining.root.option.cooldownNotification": "Pickaxe Ability availability notification", + "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", + "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", + "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.x": "X coordinate", + "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.y": "Y coordinate", + "yacl3.config.skylper.category.mining.group.totalPowderOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.mining.group.miningEventOverlay": "Mining event overlay", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.description": "Changes preferences about the Mining event overlay, that displays the running events in the Dwarven Mines, the Crystal Hollows and in Mineshafts.", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.option.enabled": "Enabled", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.option.x": "X coordinate", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.option.y": "Y coordinate", + "yacl3.config.skylper.category.mining.group.miningEventOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.hollows": "Crystal Hollows", + "yacl3.config.skylper.category.hollows.root.option.highlightChest": "Treasure chest highlight", + "yacl3.config.skylper.category.hollows.root.option.highlightChest.description": "Decides whether to highlight treasure chests or not.", + "yacl3.config.skylper.category.hollows.root.option.highlightChestColor": "Treasure chest highlight color", + "yacl3.config.skylper.category.hollows.root.option.highlightChestColor.description": "Decides the color a treasure chest should be highlighted in.", + "yacl3.config.skylper.category.hollows.root.option.chestLockHighlight": "Chest Lock Highlight", + "yacl3.config.skylper.category.hollows.root.option.chestLockHighlight.description": "Decides whether to highlight the lock particles of a chests or not.", + "yacl3.config.skylper.category.hollows.root.option.autoPassRenew": "Auto renew Crystal Hollows Pass", + "yacl3.config.skylper.category.hollows.root.option.autoPassRenew.description": "Decides whether the pass, which grants access to the Crystal Hollows, should be automatically renewed or not.", + "yacl3.config.skylper.category.hollows.group.locations": "Locations from chat", + "yacl3.config.skylper.category.hollows.group.locations.description": "Settings about the structure location recognition in public chats.", + "yacl3.config.skylper.category.hollows.group.locations.option.parseLocations": "Recognize locations", + "yacl3.config.skylper.category.hollows.group.locations.option.parseLocations.description": "Decides whether to recognize locations sent in public chat.", + "yacl3.config.skylper.category.hollows.group.locations.option.autoAddLocations": "Automatically add locations", + "yacl3.config.skylper.category.hollows.group.locations.option.autoAddLocations.description": "Decides whether to automatically add locations, which are recognized in messages sent in public chat.", + "yacl3.config.skylper.category.hollows.root.option.locationsScreen": "Open waypoints screen", + "yacl3.config.skylper.category.hollows.root.option.locationsScreen.description": "Click to open a screen, where you can view, share and delete your waypoints.", + "yacl3.config.skylper.category.hollows.group.waypoints": "Structure waypoints", + "yacl3.config.skylper.category.hollows.group.waypoints.description": "Change which waypoints should be shown in the Crystal Hollows.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinKing": "King Yolkar", + "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinKing.description": "Decides whether the waypoint of King Yolkar should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinQueen": "Goblin Queen", + "yacl3.config.skylper.category.hollows.group.waypoints.option.goblinQueen.description": "Decides whether the waypoint of Goblin Queen should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.precursorCity": "Precursor City", + "yacl3.config.skylper.category.hollows.group.waypoints.option.precursorCity.description": "Decides whether the waypoint of the Precursor City should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.jungleTemple": "Jungle Temple", + "yacl3.config.skylper.category.hollows.group.waypoints.option.jungleTemple.description": "Decides whether the waypoint of the Jungle Temple should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.amethystCrystal": "Amethyst Crystal", + "yacl3.config.skylper.category.hollows.group.waypoints.option.amethystCrystal.description": "Decides whether the waypoint of the Amethyst Crystal should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.odawa": "Odawa", + "yacl3.config.skylper.category.hollows.group.waypoints.option.odawa.description": "Decides whether the waypoint of Odawa should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.khazadDum": "Khazad-dûm", + "yacl3.config.skylper.category.hollows.group.waypoints.option.khazadDum.description": "Decides whether the waypoint of the Khazad-dûm should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.divanMines": "Mines of Divan", + "yacl3.config.skylper.category.hollows.group.waypoints.option.divanMines.description": "Decides whether the waypoint of the Mines of Divan should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.nucleus": "Crystal Nucleus", + "yacl3.config.skylper.category.hollows.group.waypoints.option.nucleus.description": "Decides whether the waypoint of the Crystal Nucleus should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.fairyGrotto": "Fairy Grotto", + "yacl3.config.skylper.category.hollows.group.waypoints.option.fairyGrotto.description": "Decides whether the waypoint of the Fairy Grotto should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.corleone": "Boss Corleone", + "yacl3.config.skylper.category.hollows.group.waypoints.option.corleone.description": "Decides whether the waypoint of Boss Corleone should be shown.", + "yacl3.config.skylper.category.hollows.group.waypoints.option.keyGuardian": "Key Guardian", + "yacl3.config.skylper.category.hollows.group.waypoints.option.keyGuardian.description": "Decides whether the waypoint of Key Guardian should be shown.", + "yacl3.config.skylper.category.hollows.group.crystalOverlay": "Crystal overlay", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.description": "Changes preferences about the Crystal Overlay, which shows the status of the crystals needed for a nucleus run.", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.enabled": "Enabled", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.x": "X coordinate", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.y": "Y coordinate", + "yacl3.config.skylper.category.hollows.group.crystalOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay": "Powder Grinding Tracker", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.description": "Changes preferences about the Powder Grinding Tracker, which shows stats about your powder grinding session.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.enabled": "Enabled", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.enabled.description": "Decides whether the overlay is shown or not.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.x": "X coordinate", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.x.description": "Changes the x coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.y": "Y coordinate", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.y.description": "Changes the y coordinate of the overlay. It can also be changed visually by using the button in the General category.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestTotal": "Total opened chests", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestTotal.description": "Decides whether the total count of opened chests should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestMinute": "Opened chests per minute", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestMinute.description": "Decides whether the count of chest per minute should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestHour": "Opened chests per hour", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.chestHour.description": "Decides whether the count of chest per hour should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneTotal": "Total farmed Gemstone Powder", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneTotal.description": "Decides whether the total amount of farmed Gemstone Powder should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneMinute": "Gemstone Powder per minute", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneMinute.description": "Decides whether the amount of Gemstone Powder per minute should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneHour": "Gemstone Powder per hour", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.gemstoneHour.description": "Decides whether the amount of Gemstone Powder per hour should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilTotal": "Total farmed Mithril Powder", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilTotal.description": "Decides whether the total amount of farmed Mithril Powder should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilMinute": "Mithril Powder per minute", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilMinute.description": "Decides whether the amount of Mithril Powder per minute should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilHour": "Mithril Powder per hour", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.mithrilHour.description": "Decides whether the amount of Mithril Powder per hour should be displayed in the widget.", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.doublePowder": "Double powder event state", + "yacl3.config.skylper.category.hollows.group.powderGrindingOverlay.option.doublePowder.description": "Toggles whether the state of the Double Powder event of the Crystal Hollows should be visible in the widget.", + "yacl3.config.skylper.category.misc": "Misc", + "yacl3.config.skylper.category.misc.root.option.recognizeLobby": "Recognized lobbies", + "yacl3.config.skylper.category.misc.root.option.recognizeLobby.description": "Send a message if you already joined the lobby in the session.", + "yacl3.config.locations.category.locations": "Waypoints", + "yacl3.config.locations.category.locations.description": "Here you can view, delete and share the waypoint in the public chat.", + "yacl3.config.locations.category.locations.share": "Share in chat", + "yacl3.config.locations.category.locations.share.description": "Click here to share this waypoint in the chat.", + "yacl3.config.locations.category.locations.delete": "Delete waypoint", + "yacl3.config.locations.category.locations.delete.description": "Click here to delete this waypoint. When executed, the gui will not instantly update. To view the changes here, you have to reopen this screen.", + "menu.skylper.tabhud.modifier.title": "Modify HUD", + "menu.skylper.tabhud.modifier.caption": "Drag the widgets to reorder them.", + "menu.skylper.overlay.duration": "Time spent: ", + "menu.skylper.overlay.hollows.powder_grinding.title": "Powder Grinding", + "menu.skylper.overlay.hollows.powder_grinding.total_stat": "%d in total", + "menu.skylper.overlay.hollows.powder_grinding.per_minute_stat": "%d per minute", + "menu.skylper.overlay.hollows.powder_grinding.per_hour_stat": "%d per hour", + "menu.skylper.overlay.hollows.powder_grinding.chest": "Opened chests: ", + "menu.skylper.overlay.hollows.powder_grinding.gemstone": "Gemstone Powder: ", + "menu.skylper.overlay.hollows.powder_grinding.mithril": "Mithril Powder: ", + "menu.skylper.overlay.hollows.powder_grinding.double_powder": "Double Powder: ", + "menu.skylper.hollows.tabhud.crystals.title": "Crystals", + "menu.skylper.hollows.tabhud.crystals.not_found": "Not found", + "menu.skylper.hollows.tabhud.crystals.found": "Found", + "menu.skylper.hollows.tabhud.crystals.placed": "Placed", + "menu.skylper.overlay.hollows.total_powder.title": "Total Powder", + "menu.skylper.overlay.hollows.total_powder.mithril": "Mithril Powder", + "menu.skylper.overlay.hollows.total_powder.gemstone": "Gemstone Powder", + "menu.skylper.overlay.hollows.total_powder.glacite": "Glacite Powder", + "menu.skylper.overlay.mining.events.title": "Running mining events", + "menu.skylper.overlay.mining.events.lobby_count.single": "%d lobby", + "menu.skylper.overlay.mining.events.lobby_count.multiple": "%d lobbies", + "menu.skylper.overlay.mining.events.ends_in": "ends in %d", + "menu.skylper.keybinding.location_screen": "Open Crystal Hollows Location screen", + "chat.skylper.hollows.locations.found": "Found %d with the coordinates %d, %d, %d!", + "chat.skylper.hollows.locations.pick": "Click the structure that this coordinates belong to: %d", + "chat.skylper.hollows.locations.nucleus": "Crystal Nucleus", + "chat.skylper.hollows.locations.precursor_city": "Precursor City", + "chat.skylper.hollows.locations.jungle_temple": "Jungle Temple", + "chat.skylper.hollows.locations.amethyst_crystal": "Amethyst Crystal", + "chat.skylper.hollows.locations.odawa": "Odawa", + "chat.skylper.hollows.locations.key_guardian": "Key Guardian", + "chat.skylper.hollows.locations.divan_mines": "Mines of Divan", + "chat.skylper.hollows.locations.corleone": "Corleone", + "chat.skylper.hollows.locations.fairy_grotto": "Fairy Grotto", + "chat.skylper.hollows.locations.goblin_king": "King Yolkar", + "chat.skylper.hollows.locations.goblin_queen": "Goblin Queen's Den", + "chat.skylper.hollows.locations.khazad_dum": "Khazad Dûm", + "chat.skylper.hollows.command.waypoint_created": "Successfully created waypoint for %d!", + "chat.skylper.hollows.command.waypoint_deleted": "The waypoint %d was deleted successfully!", + "chat.skylper.hollows.pickaxe_cooldown.not_found": "No Pickaxe Ability could be found. If this is an error, please open the Heart of the Mountain (/hotm) screen!", + "chat.skylper.misc.lobby_recognition": "You've been in this lobby!" }