diff options
author | Dico <dico.karssiens@gmail.com> | 2018-09-23 21:34:48 +0100 |
---|---|---|
committer | Dico <dico.karssiens@gmail.com> | 2018-09-23 21:34:48 +0100 |
commit | e0bf8249bdf23386039d395ec55b2a011c2e09ac (patch) | |
tree | 5a6181488ef01c896d5dda595c71751c5cd37622 /src | |
parent | b05e424ef431e34f4f3c2610810576f92c6f4800 (diff) |
Tweaks
Diffstat (limited to 'src')
3 files changed, 45 insertions, 34 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/command/ParcelCommandBuilder.kt b/src/main/kotlin/io/dico/parcels2/command/ParcelCommandBuilder.kt index e2c7a1d..b9dfe1e 100644 --- a/src/main/kotlin/io/dico/parcels2/command/ParcelCommandBuilder.kt +++ b/src/main/kotlin/io/dico/parcels2/command/ParcelCommandBuilder.kt @@ -5,50 +5,51 @@ import io.dico.dicore.command.ICommandAddress import io.dico.dicore.command.ICommandDispatcher import io.dico.dicore.command.registration.reflect.ReflectiveRegistration import io.dico.parcels2.ParcelsPlugin +import io.dico.parcels2.logger import java.util.LinkedList import java.util.Queue @Suppress("UsePropertyAccessSyntax") -fun getParcelCommands(plugin: ParcelsPlugin): ICommandDispatcher { - //@formatter:off - return CommandBuilder() - .setChatController(ParcelsChatController()) - .addParameterType(false, ParcelParameterType(plugin.parcelProvider)) - .addParameterType(true, ParcelTarget.PType(plugin.parcelProvider)) +fun getParcelCommands(plugin: ParcelsPlugin): ICommandDispatcher = + with(CommandBuilder()) { + setChatController(ParcelsChatController()) + addParameterType(false, ParcelParameterType(plugin.parcelProvider)) + addParameterType(false, ProfileParameterType()) + addParameterType(true, ParcelTarget.PType(plugin.parcelProvider)) - .group("parcel", "plot", "plots", "p") - .addRequiredPermission("parcels.command") - .registerCommands(CommandsGeneral(plugin)) - .registerCommands(CommandsAddedStatusLocal(plugin)) + group("parcel", "plot", "plots", "p") { + addRequiredPermission("parcels.command") + registerCommands(CommandsGeneral(plugin)) + registerCommands(CommandsAddedStatusLocal(plugin)) - .group("option", "opt", "o") - .apply { CommandsParcelOptions.setGroupDescription(this) } - .registerCommands(CommandsParcelOptions(plugin)) - .parent() + group("option", "opt", "o") { + CommandsParcelOptions.setGroupDescription(this) + registerCommands(CommandsParcelOptions(plugin)) + } - .group("global", "g") - .registerCommands(CommandsAddedStatusGlobal(plugin)) - .parent() + group("global", "g") { + registerCommands(CommandsAddedStatusGlobal(plugin)) + } - .group("admin", "a") - .registerCommands(CommandsAdmin(plugin)) - .parent() + group("admin", "a") { + registerCommands(CommandsAdmin(plugin)) + } - .putDebugCommands(plugin) + if (!logger.isDebugEnabled) return@group - .parent() - .generateHelpAndSyntaxCommands() - .getDispatcher() - //@formatter:on -} + group("debug", "d") { + registerCommands(CommandsDebug(plugin)) + } + } + + generateHelpAndSyntaxCommands() + getDispatcher() + } -private fun CommandBuilder.putDebugCommands(plugin: ParcelsPlugin): CommandBuilder { - //if (!logger.isDebugEnabled) return this - //@formatter:off - return group("debug", "d") - .registerCommands(CommandsDebug(plugin)) - .parent() - //@formatter:on +inline fun CommandBuilder.group(name: String, vararg aliases: String, config: CommandBuilder.() -> Unit) { + group(name, *aliases) + config() + parent() } private fun CommandBuilder.generateHelpAndSyntaxCommands(): CommandBuilder { diff --git a/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt b/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt index de3cf64..e7c4e48 100644 --- a/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt +++ b/src/main/kotlin/io/dico/parcels2/command/ParcelParameterTypes.kt @@ -7,6 +7,7 @@ import io.dico.dicore.command.parameter.type.ParameterType import io.dico.parcels2.Parcel import io.dico.parcels2.ParcelProvider import io.dico.parcels2.ParcelWorld +import io.dico.parcels2.PlayerProfile import org.bukkit.command.CommandSender import org.bukkit.entity.Player @@ -44,3 +45,12 @@ class ParcelParameterType(val parcelProvider: ParcelProvider) : ParameterType<Pa } } + +class ProfileParameterType : ParameterType<PlayerProfile, Void>(PlayerProfile::class.java) { + + override fun parse(parameter: Parameter<PlayerProfile, Void>, sender: CommandSender, buffer: ArgumentBuffer): PlayerProfile { + val input = buffer.next() + return PlayerProfile.byName(input, allowReal = true, allowFake = true) + } + +} diff --git a/src/main/kotlin/io/dico/parcels2/listener/ParcelListeners.kt b/src/main/kotlin/io/dico/parcels2/listener/ParcelListeners.kt index e39583c..1af3406 100644 --- a/src/main/kotlin/io/dico/parcels2/listener/ParcelListeners.kt +++ b/src/main/kotlin/io/dico/parcels2/listener/ParcelListeners.kt @@ -170,7 +170,7 @@ class ParcelListeners( if (ppa.isNullOr { hasBlockVisitors }) event.isCancelled = true } - private val bedTypes = EnumSet.copyOf(getMaterialsWithWoodTypePrefix("BED").toList()) + private val bedTypes = EnumSet.copyOf(getMaterialsWithWoolColorPrefix("BED").toList()) /* * Prevents players from placing liquids, using flint and steel, changing redstone components, * using inputs (unless allowed by the plot), |