diff options
| author | Linnea Gräf <nea@nea.moe> | 2024-04-27 23:20:32 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2024-04-27 23:20:32 +0200 |
| commit | d6fa330744ba2640bd0841fecf741f0971679e99 (patch) | |
| tree | 01fc6740962ea6d6ed600279bb2155db58c02346 /src/main/java/at/hannibal2/skyhanni/events | |
| parent | a7d2a2c0346b864ea597300ed4eb9d024457e8b7 (diff) | |
| download | SkyHanni-tabcompletionapi.tar.gz SkyHanni-tabcompletionapi.tar.bz2 SkyHanni-tabcompletionapi.zip | |
Fix party tab completiontabcompletionapi
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/events')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/events/TabCompletionEvent.kt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/events/TabCompletionEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/TabCompletionEvent.kt new file mode 100644 index 000000000..f3ec47b02 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/events/TabCompletionEvent.kt @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.events + +class TabCompletionEvent( + val leftOfCursor: String, + val fullText: String, + val originalCompletions: List<String>, +) : LorenzEvent() { + val lastWord = leftOfCursor.substringAfterLast(' ') + val additionalSuggestions = mutableSetOf<String>() + val suppressedSuggestions = mutableSetOf<String>() + + fun addSuggestion(suggestion: String) { + if (suggestion.startsWith(lastWord, ignoreCase = true)) + additionalSuggestions.add(suggestion) + } + + fun addSuggestions(suggestions: Iterable<String>) { + suggestions.forEach(this::addSuggestion) + } + + fun excludeAllDefault() { + suppressedSuggestions.addAll(originalCompletions) + } + + val command = if (leftOfCursor.startsWith("/")) + leftOfCursor.substring(1).substringBefore(" ").lowercase() + else "" + + fun isCommand(commandName: String): Boolean { + return commandName.equals(command, ignoreCase = true) + } + + fun intoSuggestionArray(): Array<String>? { + if (additionalSuggestions.isEmpty() && suppressedSuggestions.isEmpty()) return null + return (originalCompletions - suppressedSuggestions + additionalSuggestions).toTypedArray() + } +} |
