RegexCoalescingConverter

class RegexCoalescingConverter(options: Set<RegexOption> = setOf(), shouldThrow: Boolean = false, var validator: Validator<Regex> = null) : CoalescingConverter<Regex>

Coalescing argument converter for regular expression arguments, combining the arguments into a single Regex object by joining them with spaces.

Please note that user-provided regular expressions are not safe - they can take down your entire bot.

As there is no way to validate individual segments of regex, this converter will consume all remaining arguments.

Parameters

options

Optional set of RegexOptions to pass to the regex parser.

See also

coalescedRegex

Constructors

Link copied to clipboard
constructor(options: Set<RegexOption> = setOf(), shouldThrow: Boolean = false, validator: Validator<Regex> = null)

Properties

Link copied to clipboard
open lateinit var argumentObj: Argument<*>

Argument object containing this converter and its metadata.

Link copied to clipboard
open val bot: ExtensibleBot

Current instance of the bot.

Link copied to clipboard

Access to the converter builder, perhaps a bit more hacky than it should be but whatever.

Link copied to clipboard
open val errorType: Key?

If the signatureType isn't sufficient, you can optionally provide a translation key pointing to a longer type string to use for error messages.

Link copied to clipboard
val kord: Kord

Kord instance, backing the ExtensibleBot.

Link copied to clipboard
open lateinit override var parsed: Regex

The parsed value.

Link copied to clipboard

This will be set to true by the argument parser if the conversion succeeded.

Link copied to clipboard
open override val required: Boolean
Link copied to clipboard

Intended only for use if this converter is the last one in a set of arguments, if this is true then the converter should throw a DiscordRelayedException when an argument can't be parsed, instead of just stopping and allowing parsing to continue.

Link copied to clipboard
open override val showTypeInSignature: Boolean = false

For commands with generated signatures, set whether the type string should be shown in the signature.

Link copied to clipboard
open override val signatureType: Key

Translation key pointing to a short string describing the type of data this converter handles. Should be very short.

Link copied to clipboard
open override var validator: Validator<Regex>

Validation lambda, which may throw a DiscordRelayedException if required.

Functions

Link copied to clipboard
open suspend fun getErrorKey(): Key

Return a Key representing a pre-translated error string.

Link copied to clipboard
open suspend fun getErrorString(context: CommandContext): String

Return a translated, formatted error string.

Link copied to clipboard
open override fun getKoin(): Koin

Get the associated Koin instance.

Link copied to clipboard
operator fun getValue(thisRef: Arguments, property: KProperty<*>): Regex

For delegation, retrieve the parsed value if it's been set, or null if it hasn't.

Link copied to clipboard
open suspend fun handleError(t: Throwable, context: CommandContext): Key

Given a Throwable encountered during the parse function, return a human-readable string to display on Discord.

Link copied to clipboard
open suspend fun mutate(context: CommandContext): Regex

Call the mutator lambda, if one was provided.

Link copied to clipboard
open suspend override fun parse(parser: StringParser?, context: CommandContext, named: List<String>?): Int

Process the string in the given parser, converting it into a new value.

Link copied to clipboard
open suspend override fun parseOption(context: CommandContext, option: OptionValue<*>): Boolean

Use the given option taken straight from the slash command invocation to fill the converter.

Link copied to clipboard
open fun toDefaulting(defaultValue: Regex, outputError: Boolean = false, signatureType: Key? = null, showTypeInSignature: Boolean? = null, errorType: Key? = null, nestedValidator: Validator<Regex> = null): DefaultingCoalescingConverter<Regex>

Wrap this coalescing converter with a CoalescingToDefaultingConverter, which is a special converter that will act like an DefaultingCoalescingConverter using the same logic of this converter.

Link copied to clipboard
open fun toOptional(signatureType: Key? = null, showTypeInSignature: Boolean? = null, errorType: Key? = null, outputError: Boolean = false, nestedValidator: Validator<Regex?> = null): OptionalCoalescingConverter<Regex>

Wrap this coalescing converter with a CoalescingToOptionalConverter, which is a special converter that will act like an OptionalCoalescingConverter using the same logic of this converter.

Link copied to clipboard
open suspend override fun toSlashOption(arg: Argument<*>): OptionWrapper<StringChoiceBuilder>
Link copied to clipboard
open suspend fun validate(context: CommandContext)

Call the validator lambda, if one was provided.