summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt
diff options
context:
space:
mode:
authorDico <dico.karssiens@gmail.com>2018-09-27 04:41:58 +0100
committerDico <dico.karssiens@gmail.com>2018-09-27 04:41:58 +0100
commit307b7aee4af34e47139259db7049a85c682b7be2 (patch)
tree398ff3360f90e49cdc2a10d7872f6c6f787472bb /src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt
parentcdaba0ebd5b48d1f2d4579c873d83fdf6ea1a074 (diff)
Tweaks
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt b/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt
index 8beef7f..ae58f94 100644
--- a/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt
+++ b/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt
@@ -3,8 +3,12 @@ package io.dico.parcels2.command
import io.dico.dicore.command.CommandException
import io.dico.dicore.command.parameter.ArgumentBuffer
import io.dico.dicore.command.parameter.Parameter
+import io.dico.dicore.command.parameter.type.ParameterConfig
import io.dico.dicore.command.parameter.type.ParameterType
import io.dico.parcels2.*
+import io.dico.parcels2.command.ProfileKind.Companion.ANY
+import io.dico.parcels2.command.ProfileKind.Companion.FAKE
+import io.dico.parcels2.command.ProfileKind.Companion.REAL
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
@@ -43,11 +47,27 @@ class ParcelParameterType(val parcelProvider: ParcelProvider) : ParameterType<Pa
}
-class ProfileParameterType : ParameterType<PlayerProfile, Void>(PlayerProfile::class.java) {
+annotation class ProfileKind(val kind: Int) {
+ companion object : ParameterConfig<ProfileKind, Int>(ProfileKind::class.java) {
+ const val REAL = 1
+ const val FAKE = 2
+ const val ANY = 4
+
+ override fun toParameterInfo(annotation: ProfileKind): Int {
+ return annotation.kind
+ }
+ }
+}
+
+class ProfileParameterType : ParameterType<PlayerProfile, Int>(PlayerProfile::class.java, ProfileKind) {
+
+ override fun parse(parameter: Parameter<PlayerProfile, Int>, sender: CommandSender, buffer: ArgumentBuffer): PlayerProfile {
+ val info = parameter.paramInfo ?: REAL
+ val allowReal = info and REAL != 0
+ val allowFake = info and FAKE != 0
- override fun parse(parameter: Parameter<PlayerProfile, Void>, sender: CommandSender, buffer: ArgumentBuffer): PlayerProfile {
val input = buffer.next()
- return PlayerProfile.byName(input, allowReal = true, allowFake = true)
+ return PlayerProfile.byName(input, allowReal, allowFake)
}
}