diff options
author | Linnea Gräf <nea@nea.moe> | 2024-03-24 00:43:16 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-03-24 00:43:16 +0100 |
commit | a84da715497215848797719fe528c2f5c1d4aed3 (patch) | |
tree | 3be839c8cf6fb080b7307919d94bb82666f79a7b /src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt | |
parent | 55586a64d7037cdc557b8b2c337d284ddb1ac981 (diff) | |
download | Firmament-a84da715497215848797719fe528c2f5c1d4aed3.tar.gz Firmament-a84da715497215848797719fe528c2f5c1d4aed3.tar.bz2 Firmament-a84da715497215848797719fe528c2f5c1d4aed3.zip |
Add ordered waypoints (ColeWeight compat)
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt b/src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt index 5710245..1d1f8d3 100644 --- a/src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt +++ b/src/main/kotlin/moe/nea/firmament/events/CommandEvent.kt @@ -1,5 +1,6 @@ /* * SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe> + * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe> * * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -12,6 +13,7 @@ import net.minecraft.command.CommandRegistryAccess import moe.nea.firmament.commands.CaseInsensitiveLiteralCommandNode import moe.nea.firmament.commands.DefaultSource import moe.nea.firmament.commands.literal +import moe.nea.firmament.commands.thenLiteral data class CommandEvent( val dispatcher: CommandDispatcher<DefaultSource>, @@ -20,6 +22,20 @@ data class CommandEvent( ) : FirmamentEvent() { companion object : FirmamentEventBus<CommandEvent>() + /** + * Register subcommands to `/firm`. For new top level commands use [CommandEvent]. Cannot be used to register + * subcommands to other commands. + */ + data class SubCommand( + val builder: CaseInsensitiveLiteralCommandNode.Builder<DefaultSource>, + ) : FirmamentEvent() { + companion object : FirmamentEventBus<SubCommand>() + + fun subcommand(name: String, block: CaseInsensitiveLiteralCommandNode.Builder<DefaultSource>.() -> Unit) { + builder.thenLiteral(name, block) + } + } + fun deleteCommand(name: String) { dispatcher.root.children.removeIf { it.name.equals(name, ignoreCase = false) } serverCommands?.root?.children?.removeIf { it.name.equals(name, ignoreCase = false) } |