Skip to content

Commit 9460fbf

Browse files
committed
Using Kotlin std lib
1 parent 30ced5d commit 9460fbf

File tree

2 files changed

+10
-24
lines changed

2 files changed

+10
-24
lines changed
Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,20 @@
11
package com.lambda.client.gui.hudgui.elements.misc
22

3-
import com.lambda.client.commons.utils.grammar
43
import com.lambda.client.event.SafeClientEvent
54
import com.lambda.client.gui.hudgui.LabelHud
65
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
89

910
internal object OnlineTime: LabelHud(
1011
name = "OnlineTime",
1112
category = Category.MISC,
1213
description = "Displays how long you have been online"
1314
) {
1415
override fun SafeClientEvent.updateText() {
15-
val onlineTime = OnlineTimeManager.getOnlineTime()
16+
val onlineTime = OnlineTimeManager.getOnlineTime().toDouble(DurationUnit.SECONDS).roundToInt()
1617
displayText.add("Online:", secondaryColor)
17-
displayText.add(formatDuration(onlineTime), primaryColor)
18+
displayText.add(onlineTime.toDuration(DurationUnit.SECONDS).toString(), primaryColor)
1819
}
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-
3420
}

src/main/kotlin/com/lambda/client/manager/managers/OnlineTimeManager.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ package com.lambda.client.manager.managers
33
import com.lambda.client.event.events.ConnectionEvent
44
import com.lambda.client.event.listener.listener
55
import com.lambda.client.manager.Manager
6-
import java.time.Duration
7-
import java.time.Instant
6+
import kotlin.time.Duration
7+
import kotlin.time.TimeSource
88

99
object OnlineTimeManager: Manager {
1010

11-
private var connectTime: Instant = Instant.EPOCH
11+
private var connectTime = TimeSource.Monotonic.markNow()
1212

1313
init {
1414
listener<ConnectionEvent.Connect> {
15-
connectTime = Instant.now()
15+
connectTime = TimeSource.Monotonic.markNow()
1616
}
1717
}
1818

1919
fun getOnlineTime(): Duration {
20-
return Duration.between(connectTime, Instant.now())
20+
return connectTime.elapsedNow()
2121
}
2222
}

0 commit comments

Comments
 (0)