1
1
package com.lambda.client.gui.hudgui.elements.misc
2
2
3
- import com.lambda.client.commons.utils.grammar
4
3
import com.lambda.client.event.SafeClientEvent
5
4
import com.lambda.client.gui.hudgui.LabelHud
6
5
import com.lambda.client.manager.managers.OnlineTimeManager
7
- import java.time.Duration
6
+ import kotlin.math.roundToInt
7
+ import kotlin.time.DurationUnit
8
+ import kotlin.time.toDuration
8
9
9
10
internal object OnlineTime: LabelHud(
10
11
name = " OnlineTime" ,
11
12
category = Category .MISC ,
12
13
description = " Displays how long you have been online"
13
14
) {
14
15
override fun SafeClientEvent.updateText () {
15
- val onlineTime = OnlineTimeManager .getOnlineTime()
16
+ val onlineTime = OnlineTimeManager .getOnlineTime().toDouble( DurationUnit . SECONDS ).roundToInt()
16
17
displayText.add(" Online:" , secondaryColor)
17
- displayText.add(formatDuration( onlineTime), primaryColor)
18
+ displayText.add(onlineTime.toDuration( DurationUnit . SECONDS ).toString( ), primaryColor)
18
19
}
19
-
20
- // avoiding kotlin.time.Duration.toString() because it shows down to milliseconds
21
- private fun formatDuration (duration : Duration ): String {
22
- val secondsInMinute = 60L
23
- val secondsInHour = secondsInMinute * 60L
24
- val seconds = duration.seconds % secondsInMinute
25
- val minutes = duration.seconds / secondsInMinute % secondsInMinute
26
- val hours = duration.seconds / secondsInHour % 24L
27
- return buildString {
28
- if (hours > 0 ) append(grammar(hours.toInt(), " hour" , " hours" ) + " , " )
29
- if (minutes > 0 ) append(grammar(minutes.toInt(), " minute" , " minutes" ) + " , " )
30
- append(grammar(seconds.toInt(), " second" , " seconds" ))
31
- }
32
- }
33
-
34
20
}
0 commit comments