diff options
author | Dico <dico.karssiens@gmail.com> | 2018-09-27 04:41:58 +0100 |
---|---|---|
committer | Dico <dico.karssiens@gmail.com> | 2018-09-27 04:41:58 +0100 |
commit | 307b7aee4af34e47139259db7049a85c682b7be2 (patch) | |
tree | 398ff3360f90e49cdc2a10d7872f6c6f787472bb /src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt | |
parent | cdaba0ebd5b48d1f2d4579c873d83fdf6ea1a074 (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.kt | 26 |
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) } } |