Skip to content

Commit

Permalink
Add field limit validation
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeJMattson committed Aug 15, 2019
1 parent a876af1 commit 7e60a62
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.github.jakejmattson.embedbot.arguments

import io.github.jakejmattson.embedbot.extensions.getLoadedEmbed
import io.github.jakejmattson.embedbot.services.Field
import io.github.jakejmattson.embedbot.services.*
import me.aberrantfox.kjdautils.api.dsl.CommandEvent
import me.aberrantfox.kjdautils.internal.command.*

Expand All @@ -19,11 +19,17 @@ open class FieldArg(override val name: String = "Field Data", val delimiter: Str
if (data.size !in 2..3)
return ArgumentResult.Error("Invalid field data. Expected 2-3 items split by \"$delimiter\". Received ${data.size}")

val field = Field(
data.component1(),
data.component2(),
if (data.size == 3) data.component3().toBoolean() else false
)
val name = data.component1()
val value = data.component2()
val inline = if (data.size == 3) data.component3().toBoolean() else false

if (name.length >= FIELD_NAME_LIMIT)
return ArgumentResult.Error("Max field name length is ${FIELD_NAME_LIMIT - 1} characters. Input was ${name.length}")

if (value.length >= FIELD_VALUE_LIMIT)
return ArgumentResult.Error("Max field value length is ${FIELD_VALUE_LIMIT - 1} characters. Input was ${value.length}")

val field = Field(name, value, inline)

return ArgumentResult.Multiple(field, args)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package io.github.jakejmattson.embedbot.commands

import io.github.jakejmattson.embedbot.arguments.*
import io.github.jakejmattson.embedbot.extensions.*
import io.github.jakejmattson.embedbot.services.Field
import io.github.jakejmattson.embedbot.services.*
import me.aberrantfox.kjdautils.api.dsl.*
import me.aberrantfox.kjdautils.internal.arguments.*

Expand Down Expand Up @@ -84,6 +84,9 @@ fun fieldCommands() = commands {
val newTitle = it.args.component2() as String
val embed = it.guild!!.getLoadedEmbed()!!

if (newTitle.length >= FIELD_NAME_LIMIT)
return@execute it.respond("Max field name length is ${FIELD_NAME_LIMIT - 1} characters. Input was ${newTitle.length}")

embed.setFieldName(index, newTitle)
it.respond("Field title value updated.")
}
Expand All @@ -98,6 +101,9 @@ fun fieldCommands() = commands {
val newText = it.args.component2() as String
val embed = it.guild!!.getLoadedEmbed()!!

if (newText.length >= FIELD_VALUE_LIMIT)
return@execute it.respond("Max field value length is ${FIELD_VALUE_LIMIT - 1} characters. Input was ${newText.length}")

embed.setFieldText(index, newText)
it.respond("Field text value updated.")
}
Expand Down

0 comments on commit 7e60a62

Please sign in to comment.