From ead6762eb1c005914b05f9d3c29f334989c67513 Mon Sep 17 00:00:00 2001 From: nea Date: Tue, 16 May 2023 01:23:43 +0200 Subject: Replace references to NEU with Firmament --- .../moe/nea/notenoughupdates/commands/dsl.kt | 81 ---------------------- 1 file changed, 81 deletions(-) delete mode 100644 src/main/kotlin/moe/nea/notenoughupdates/commands/dsl.kt (limited to 'src/main/kotlin/moe/nea/notenoughupdates/commands/dsl.kt') diff --git a/src/main/kotlin/moe/nea/notenoughupdates/commands/dsl.kt b/src/main/kotlin/moe/nea/notenoughupdates/commands/dsl.kt deleted file mode 100644 index 6190d88..0000000 --- a/src/main/kotlin/moe/nea/notenoughupdates/commands/dsl.kt +++ /dev/null @@ -1,81 +0,0 @@ -package moe.nea.notenoughupdates.commands - -import com.mojang.brigadier.arguments.ArgumentType -import com.mojang.brigadier.builder.ArgumentBuilder -import com.mojang.brigadier.builder.LiteralArgumentBuilder -import com.mojang.brigadier.builder.RequiredArgumentBuilder -import com.mojang.brigadier.context.CommandContext -import java.lang.reflect.ParameterizedType -import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource -import moe.nea.notenoughupdates.util.iterate - - -typealias DefaultSource = FabricClientCommandSource - - -inline val > T.context get() = this -operator fun > C.get(arg: TypeSafeArg): T { - return arg.get(this) -} - -fun literal( - name: String, - block: LiteralArgumentBuilder.() -> Unit -): LiteralArgumentBuilder = - LiteralArgumentBuilder.literal(name).also(block) - -data class TypeSafeArg(val name: String, val argument: ArgumentType) { - val argClass by lazy { - argument.javaClass - .iterate>> { - it.superclass - } - .map { - it.genericSuperclass - } - .filterIsInstance() - .find { it.rawType == ArgumentType::class.java }!! - .let { it.actualTypeArguments[0] as Class<*> } - } - - @JvmName("getWithThis") - fun CommandContext.get(): T = - get(this) - - - fun get(ctx: CommandContext): T { - return ctx.getArgument(name, argClass) as T - } -} - - -fun argument( - name: String, - argument: ArgumentType, - block: RequiredArgumentBuilder.(TypeSafeArg) -> Unit -): RequiredArgumentBuilder = - RequiredArgumentBuilder.argument(name, argument).also { block(it, TypeSafeArg(name, argument)) } - -fun , AT : Any> T.thenArgument( - name: String, - argument: ArgumentType, - block: RequiredArgumentBuilder.(TypeSafeArg) -> Unit -): T = then(argument(name, argument, block)) - - -fun > T.thenLiteral( - name: String, - block: LiteralArgumentBuilder.() -> Unit -): T = - then(literal(name, block)) - -fun > T.then(node: ArgumentBuilder, block: T.() -> Unit): T = - then(node).also(block) - -fun > T.thenExecute(block: CommandContext.() -> Unit): T = - executes { - block(it) - 1 - } - - -- cgit