blob: 6240b43bf8e5350be07f8890995a8ea57fce4e47 (
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
|
package at.hannibal2.skyhanni.config.commands
import at.hannibal2.skyhanni.test.command.ErrorManager
import net.minecraft.command.CommandBase
import net.minecraft.command.ICommandSender
import net.minecraft.util.BlockPos
class SimpleCommand(
private val name: String,
private val aliases: List<String>,
private val callback: (Array<String>) -> Unit,
private val tabCallback: ((Array<String>) -> List<String>) = { emptyList() },
) : CommandBase() {
override fun canCommandSenderUseCommand(sender: ICommandSender) = true
override fun getCommandName() = name
override fun getCommandAliases() = aliases
override fun getCommandUsage(sender: ICommandSender) = "/$name"
override fun processCommand(sender: ICommandSender, args: Array<String>) {
try {
callback(args)
} catch (e: Throwable) {
ErrorManager.logErrorWithData(e, "Error while running command /$name")
}
}
override fun addTabCompletionOptions(sender: ICommandSender, args: Array<String>, pos: BlockPos) =
tabCallback(args).takeIf { it.isNotEmpty() }
}
|