Skip to content

Commit

Permalink
feat(list-argument): context list param to CommandContext<CommandSend…
Browse files Browse the repository at this point in the history
…er>.() -> Unit
  • Loading branch information
StillLutto committed Dec 29, 2024
1 parent 08c78f3 commit 589b2f3
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 46 deletions.
5 changes: 0 additions & 5 deletions api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,6 @@ dependencies {
}

tasks {
shadowJar {
dependencyFilter.exclude { element ->
Regex("^v\\d+").matches(element.moduleName)
}
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
Expand Down
66 changes: 33 additions & 33 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {

apply(plugin = "maven-publish")
val projectGroupId = "com.undefined"
val projectVersion = "0.0.30"
val projectVersion = "0.0.31"
val projectArtifactId = "stellar"

group = projectGroupId
Expand Down Expand Up @@ -79,38 +79,38 @@ allprojects {
dependencies {
implementation(project(":api"))
implementation(project(":common"))
// implementation(project(":v1_13"))
// implementation(project(":v1_13_1"))
// implementation(project(":v1_13_2"))
// implementation(project(":v1_14_1"))
// implementation(project(":v1_14_2"))
// implementation(project(":v1_14_3"))
// implementation(project(":v1_14_4"))
// implementation(project(":v1_15"))
// implementation(project(":v1_15_1"))
// implementation(project(":v1_15_2"))
// implementation(project(":v1_16_1"))
// implementation(project(":v1_16_2"))
// implementation(project(":v1_16_3"))
// implementation(project(":v1_16_4"))
// implementation(project(":v1_16_5"))
// implementation(project(":v1_17"))
// implementation(project(":v1_17"))
// implementation(project(":v1_17_1:", "reobf"))
// implementation(project(":v1_18_1:", "reobf"))
// implementation(project(":v1_18_2:", "reobf"))
// implementation(project(":v1_19_2:", "reobf"))
// implementation(project(":v1_19_3:", "reobf"))
// implementation(project(":v1_19_4:", "reobf"))
// implementation(project(":v1_20", "reobf"))
// implementation(project(":v1_20_1", "reobf"))
// implementation(project(":v1_20_2", "reobf"))
// implementation(project(":v1_20_4", "reobf"))
// implementation(project(":v1_20_6", "reobf"))
// implementation(project(":v1_21", "reobf"))
// implementation(project(":v1_21_1", "reobf"))
// implementation(project(":v1_21_3", "reobf"))
// implementation(project(":v1_21_4", "reobf"))
implementation(project(":v1_13"))
implementation(project(":v1_13_1"))
implementation(project(":v1_13_2"))
implementation(project(":v1_14_1"))
implementation(project(":v1_14_2"))
implementation(project(":v1_14_3"))
implementation(project(":v1_14_4"))
implementation(project(":v1_15"))
implementation(project(":v1_15_1"))
implementation(project(":v1_15_2"))
implementation(project(":v1_16_1"))
implementation(project(":v1_16_2"))
implementation(project(":v1_16_3"))
implementation(project(":v1_16_4"))
implementation(project(":v1_16_5"))
implementation(project(":v1_17"))
implementation(project(":v1_17"))
implementation(project(":v1_17_1:", "reobf"))
implementation(project(":v1_18_1:", "reobf"))
implementation(project(":v1_18_2:", "reobf"))
implementation(project(":v1_19_2:", "reobf"))
implementation(project(":v1_19_3:", "reobf"))
implementation(project(":v1_19_4:", "reobf"))
implementation(project(":v1_20", "reobf"))
implementation(project(":v1_20_1", "reobf"))
implementation(project(":v1_20_2", "reobf"))
implementation(project(":v1_20_4", "reobf"))
implementation(project(":v1_20_6", "reobf"))
implementation(project(":v1_21", "reobf"))
implementation(project(":v1_21_1", "reobf"))
implementation(project(":v1_21_3", "reobf"))
implementation(project(":v1_21_4", "reobf"))
}

tasks {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ import com.undefined.stellar.argument.types.text.ComponentArgument
import com.undefined.stellar.argument.types.text.MessageArgument
import com.undefined.stellar.argument.types.text.StyleArgument
import com.undefined.stellar.argument.types.world.*
import com.undefined.stellar.data.argument.CommandContext
import com.undefined.stellar.data.suggestion.Suggestion
import org.bukkit.Bukkit
import org.bukkit.OfflinePlayer
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import java.util.*

Expand Down Expand Up @@ -104,14 +106,14 @@ open class ArgumentHandler {

fun <T> addListArgument(
name: String,
list: () -> List<T>,
list: CommandContext<CommandSender>.() -> List<T>,
stringifier: (T) -> Suggestion,
parse: (Any?) -> T
): ListArgument<T> = addArgument { ListArgument(base, StringArgument(base, name, StringType.WORD), list, stringifier, parse) }

fun <T> addListArgument(
type: AbstractStellarArgument<*>,
list: () -> List<T>,
list: CommandContext<CommandSender>.() -> List<T>,
stringifier: (T) -> Suggestion,
parse: (Any?) -> T
): ListArgument<T> = addArgument { ListArgument(base, type, list, stringifier, parse) }
Expand All @@ -125,13 +127,13 @@ open class ArgumentHandler {
fun addUUIDListArgument(name: String, list: List<UUID>): ListArgument<UUID> =
addArgument { ListArgument(base, UUIDArgument(base, name), list, parse = { UUID.fromString(it.toString()) }) }

fun addStringListArgument(name: String, list: () -> List<String>, type: StringType = StringType.WORD): ListArgument<String> =
fun addStringListArgument(name: String, list: CommandContext<CommandSender>.() -> List<String>, type: StringType = StringType.WORD): ListArgument<String> =
addArgument { ListArgument(base, StringArgument(base, name, type), list, { Suggestion.withText(it.toString()) }, { it }) }

fun addStringListArgument(name: String, vararg list: () -> List<String>): ListArgument<String> =
fun addStringListArgument(name: String, vararg list: CommandContext<CommandSender>.() -> List<String>): ListArgument<String> =
addArgument { ListArgument(base, StringArgument(base, name, StringType.WORD), list.toList(), { Suggestion.withText(it.toString()) }, { it }) }

fun addUUIDListArgument(name: String, list: () -> List<UUID>): ListArgument<UUID> =
fun addUUIDListArgument(name: String, list: CommandContext<CommandSender>.() -> List<UUID>): ListArgument<UUID> =
addArgument { ListArgument(base, UUIDArgument(base, name), list, parse = { UUID.fromString(it.toString()) }) }

inline fun <reified T : Enum<T>> addEnumArgument(name: String): EnumArgument<T> =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ package com.undefined.stellar.argument.types.custom

import com.undefined.stellar.AbstractStellarCommand
import com.undefined.stellar.argument.AbstractStellarArgument
import com.undefined.stellar.data.argument.CommandContext
import com.undefined.stellar.data.suggestion.StellarSuggestion
import com.undefined.stellar.data.suggestion.Suggestion
import org.bukkit.command.CommandSender

open class ListArgument<T>(
parent: AbstractStellarCommand<*>,
val type: AbstractStellarArgument<*>,
val list: () -> List<T>,
val list: CommandContext<CommandSender>.() -> List<T>,
val converter: (T) -> Suggestion = { Suggestion.withText(it.toString()) },
val parse: (Any?) -> T?
) : AbstractStellarArgument<ListArgument<T>>(parent, type.name) {
Expand All @@ -21,8 +22,8 @@ open class ListArgument<T>(
parse: (Any?) -> T?) : this(parent, type, { list }, converter, parse)

override val suggestions: MutableList<StellarSuggestion<*>>
get() = (super.suggestions + StellarSuggestion(CommandSender::class) { getSuggestionList() }).toMutableList()
get() = (super.suggestions + StellarSuggestion(CommandSender::class) { getSuggestionList(this) }).toMutableList()

fun getSuggestionList(): List<Suggestion> = list().map(converter)
fun getSuggestionList(context: CommandContext<CommandSender>): List<Suggestion> = list(context).map(converter)

}

0 comments on commit 589b2f3

Please sign in to comment.