diff --git a/common/src/main/kotlin/com/undefined/stellar/argument/ArgumentHandler.kt b/common/src/main/kotlin/com/undefined/stellar/argument/ArgumentHandler.kt index 8d9e21e..05dc75f 100644 --- a/common/src/main/kotlin/com/undefined/stellar/argument/ArgumentHandler.kt +++ b/common/src/main/kotlin/com/undefined/stellar/argument/ArgumentHandler.kt @@ -117,7 +117,7 @@ open class ArgumentHandler { fun addGameProfileArgument(name: String): GameProfileArgument = addArgument { GameProfileArgument(base, name) } - fun addLocationArgument(name: String, type: LocationType = LocationType.LOCATION3D): LocationArgument = + fun addLocationArgument(name: String, type: LocationType = LocationType.LOCATION_3D): LocationArgument = addArgument { LocationArgument(base, name, type) } fun addBlockDataArgument(name: String): BlockDataArgument = @@ -165,11 +165,8 @@ open class ArgumentHandler { fun addDisplaySlotArgument(name: String): DisplaySlotArgument = addArgument { DisplaySlotArgument(base, name) } - fun addScoreHolderArgument(name: String): ScoreHoldersArgument = - addArgument { ScoreHoldersArgument(base, name) } - - fun addScoreHoldersArgument(name: String): ScoreHoldersArgument = - addArgument { ScoreHoldersArgument(base, name) } + fun addScoreHolderArgument(name: String, type: ScoreHolderType = ScoreHolderType.SINGLE): ScoreHolderArgument = + addArgument { ScoreHolderArgument(base, name, type) } fun addAxisArgument(name: String): AxisArgument = addArgument { AxisArgument(base, name) } diff --git a/common/src/main/kotlin/com/undefined/stellar/argument/types/scoreboard/ScoreHolderArgument.kt b/common/src/main/kotlin/com/undefined/stellar/argument/types/scoreboard/ScoreHolderArgument.kt index a9f890e..dce6b01 100644 --- a/common/src/main/kotlin/com/undefined/stellar/argument/types/scoreboard/ScoreHolderArgument.kt +++ b/common/src/main/kotlin/com/undefined/stellar/argument/types/scoreboard/ScoreHolderArgument.kt @@ -1,10 +1,11 @@ -@file:Suppress("UNCHECKED_CAST") - package com.undefined.stellar.argument.types.scoreboard import com.undefined.stellar.AbstractStellarCommand import com.undefined.stellar.argument.AbstractStellarArgument -class ScoreHoldersArgument(parent: AbstractStellarCommand<*>, name: String) : AbstractStellarArgument(parent, name) +class ScoreHolderArgument(parent: AbstractStellarCommand<*>, name: String, val type: ScoreHolderType) : AbstractStellarArgument(parent, name) -class ScoreHolderArgument(parent: AbstractStellarCommand<*>, name: String) : AbstractStellarArgument(parent, name) \ No newline at end of file +enum class ScoreHolderType { + SINGLE, + MULTIPLE; +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/undefined/stellar/argument/types/world/LocationArgument.kt b/common/src/main/kotlin/com/undefined/stellar/argument/types/world/LocationArgument.kt index 51c03fd..1554177 100644 --- a/common/src/main/kotlin/com/undefined/stellar/argument/types/world/LocationArgument.kt +++ b/common/src/main/kotlin/com/undefined/stellar/argument/types/world/LocationArgument.kt @@ -6,8 +6,8 @@ import com.undefined.stellar.argument.AbstractStellarArgument class LocationArgument(parent: AbstractStellarCommand<*>, name: String, val type: LocationType) : AbstractStellarArgument(parent, name) enum class LocationType { - LOCATION3D, - LOCATION2D, - DOUBLE_LOCATION_3D, - DOUBLE_LOCATION_2D -} + LOCATION_3D, + LOCATION_2D, + PRECISE_LOCATION_3D, + PRECISE_LOCATION_2D +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/undefined/stellar/exception/UnsupportedArgumentException.kt b/common/src/main/kotlin/com/undefined/stellar/exception/UnsupportedArgumentException.kt index be1b688..fcdc85c 100644 --- a/common/src/main/kotlin/com/undefined/stellar/exception/UnsupportedArgumentException.kt +++ b/common/src/main/kotlin/com/undefined/stellar/exception/UnsupportedArgumentException.kt @@ -1,3 +1,5 @@ package com.undefined.stellar.exception -class UnsupportedArgumentException : RuntimeException("This Argument is unsupported by Stellar! This is totally unintentional behaviour.") \ No newline at end of file +import com.undefined.stellar.argument.AbstractStellarArgument + +class UnsupportedArgumentException(val argument: AbstractStellarArgument<*>) : RuntimeException("${argument::class.simpleName} is unsupported by Stellar! This is totally unintentional behaviour.") \ No newline at end of file diff --git a/server/src/main/kotlin/com/undefined/stellar/Main.kt b/server/src/main/kotlin/com/undefined/stellar/Main.kt index d1549b3..ff43fac 100644 --- a/server/src/main/kotlin/com/undefined/stellar/Main.kt +++ b/server/src/main/kotlin/com/undefined/stellar/Main.kt @@ -1,20 +1,22 @@ package com.undefined.stellar -import net.kyori.adventure.text.format.Style -import org.bukkit.Color +import org.bukkit.Bukkit import org.bukkit.Material import org.bukkit.entity.Player import org.bukkit.inventory.ItemStack import org.bukkit.plugin.java.JavaPlugin -import java.util.function.Predicate class Main : JavaPlugin() { override fun onEnable() { - StellarCommand("test") - .addColorArgument(name = "item") + if (Bukkit.getScoreboardManager()!!.mainScoreboard.getObjective("test") == null) + Bukkit.getScoreboardManager()!!.mainScoreboard.registerNewObjective("test", Criteria.HEALTH, "test") + StellarCommand("objective") + .addScoreHolderArgument(name = "holder") .addExecution { - sender.sendMessage(getArgument