blob: 17264a020f7fd6e8226b050b49b34fcf6e3c3fcd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package at.hannibal2.skyhanni.utils.chat
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.StringUtils
object ChatClickActionManager {
private val actions = mutableMapOf<String, ClickableAction>()
fun createAction(onClick: () -> Any, expiresAt: SimpleTimeMark, oneTime: Boolean = true): String {
val token = StringUtils.generateRandomId()
actions[token] = ClickableAction(onClick, oneTime, expiresAt)
return token
}
fun onCommand(args: Array<String>) {
if (args.size == 1) {
actions[args.first()]?.apply {
if (expiresAt.isInPast()) {
actions.remove(args.first())
return
}
onClick()
if (oneTime) {
actions.remove(args.first())
}
}
}
}
class ClickableAction(
val onClick: () -> Any,
val oneTime: Boolean = true,
val expiresAt: SimpleTimeMark = SimpleTimeMark.farFuture(),
)
}
|