diff options
author | CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> | 2024-04-16 02:34:51 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-15 18:34:51 +0200 |
commit | 66b98b62ec0ef0aa56d47af48131d661d43de579 (patch) | |
tree | faaf994f850cc1303d699654a1129d9fd6449353 /src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt | |
parent | 377fd979821296cde9d6ceb2fa4b365e4637232a (diff) | |
download | skyhanni-66b98b62ec0ef0aa56d47af48131d661d43de579.tar.gz skyhanni-66b98b62ec0ef0aa56d47af48131d661d43de579.tar.bz2 skyhanni-66b98b62ec0ef0aa56d47af48131d661d43de579.zip |
Improvement: Code cleanup, bug fix and new functions (#1445)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt b/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt index 2dac5bf4a..3dc03c5f9 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt @@ -1,14 +1,15 @@ package at.hannibal2.skyhanni.data import at.hannibal2.skyhanni.utils.ChatUtils +import at.hannibal2.skyhanni.utils.SimpleTimeMark 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) + fun oneTimeClick(message: String, onClick: () -> Any, expiresAt: SimpleTimeMark) { + val action = ClickableAction(StringUtils.generateRandomId(), message, onClick, expiresAt = expiresAt) actions.add(action) action.sendToChat() } @@ -24,6 +25,10 @@ object ChatClickActionManager { } private fun ClickableAction.runAction() { + if (expiresAt.isInPast()) { + actions.remove(this) + return + } onClick() if (oneTime) { actions.remove(this) @@ -32,5 +37,11 @@ object ChatClickActionManager { 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) + class ClickableAction( + val token: String, + val message: String, + val onClick: () -> Any, + val oneTime: Boolean = true, + val expiresAt: SimpleTimeMark = SimpleTimeMark.farFuture() + ) } |