Kord-Extensions/kord-extensions

Argument converters fail to read arguments with capital letters in the name

Cypher121 opened this issue · 2 comments

Description

Argument converters like stringChoice allow using a capitalized argument name for the name attribute. However when using a command with such an argument, the value is not read correctly, either using the default, if one exists, or showing an error (Invalid value for argument Choice (which accepts: text))

Versions

Latest KordEx snapshot at 1.5.5-SNAPSHOT

Code Examples

class TestExtension : Extension() {
    override val name = "test"

    override suspend fun setup() {
        publicSlashCommand(::TestArgs) {
            name = "test"
            description = "test"

            guild(TEST_SERVER_ID)

            action {
                respond {
                    content = arguments.choice
                }
            }
        }
    }

    class TestArgs : Arguments() {
        val choice by stringChoice {
            name = "Choice"
            description = "Choice"

            choices = listOf("this", "other", "that")
                .associateBy { it }
                .toMutableMap()
        }
    }
}

Suggestions

I'd suggest disallowing capitals in the name entirely: discord lowercases arg names anyway, so it's misleading to allow them. Same goes for command names as well.

Hello, and thanks for opening an issue! As this is the first time you've created an issue on this repository, we'd just like to offer you a warm welcome to the project, and the following pointers:

  • Most importantly, all issues must adhere to our Code of Conduct. Please give it a quick read if you haven't already.

  • While our team is passionate about the projects we've created here, we're all volunteers. Please don't be offended if it takes time for us to get to your issue - we'll be here as soonas we can be!

  • Please provide as much information as possible when asking a question, reporting a problem, or submitting a feature request. This will help us to address your issue quickly and efficiently. If you forgot to add some information, no worries - feel free to edit the issue and add anything you missed!

    Thanks for contacting us! If you have any further questions, please feel free to join us on Discord in the #dev-kotdis channel (or #kordex-discussion for Kord Extensions projects), or to contact a staff member directly.

Discord is fairly inconsistent with its support for capitalization, and I don't think a simple case check is sufficient because of i18n. It's true that this should be better telegraphed somehow, but I'm not 100% sure what the best way to do that is.