blob: 2f283fe01b455bb9b1a591612cc37286a52ee325 (
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.data
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.StringUtils
object ChatClickActionManager {
private val actions = mutableListOf<ClickableAction>()
fun oneTimeClick(message: String, onClick: () -> Any) {
val action = ClickableAction(StringUtils.generateRandomId(), message, onClick)
actions.add(action)
action.sendToChat()
}
private fun ClickableAction.sendToChat() {
ChatUtils.clickableChat(message, "shaction $token")
}
fun onCommand(args: Array<String>) {
if (args.size == 1) {
getActionByToken(args[0])?.runAction()
}
}
private fun ClickableAction.runAction() {
onClick()
if (oneTime) {
actions.remove(this)
}
}
private fun getActionByToken(token: String) = actions.find { it.token == token }
class ClickableAction(val token: String, val message: String, val onClick: () -> Any, val oneTime: Boolean = true)
}
|