DiscordKit icon indicating copy to clipboard operation
DiscordKit copied to clipboard

DiscordKit for Bots - Continuation

Open cryptoAlgorithm opened this issue 2 years ago • 0 comments

Original PR: #18

Bot support was a tough one to tackle, and laid idle in another branch with low visibility while I was allocating my contribution time to other projects. I can't wait to bring the first Swift Discord library with slash command support (and now the only maintained one), so I'm moving the ever-growing bucket list to this long-running issue :D

Bucket List

  • [x] Bot gateway identification with intents support
  • [x] Correct user agent, properties and REST authentication
  • [x] Sending basic messages
  • [x] Event dispatching with NotificationCenter for message create and ready events
  • [x] Application command registration with a resultBuilder - supported application command types:
    • [x] chatInput - Slash commands
    • [ ] user - Actions that appear in context menu of users
    • [ ] message - Actions that appear in context menu of messages
  • [x] Adding options to commands in the resultBuilder - supported types:
    • [x] subCommand - A "sub-command" with no options
    • [ ] subCommandGroup - A group for nesting other options
    • [x] string - An option accepting a String value
    • [x] integer - An option accepting an Int value
    • [x] boolean - An option accepting a Bool value
    • [ ] user - An option accepting a user as its value
    • [ ] channel - An option accepting a channel as its value
    • [ ] role - An option accepting a role as its value
    • [ ] mentionable - An option accepting a @mention as its value
    • [x] number - An option accepting a Double value
    • [ ] attachment - An option accepting a file attachment as its value
  • [x] Message components - supported types:
    • [x] Button
    • [x] Action row
    • [ ] Select Menu
    • [ ] Text Input
    • [ ] Modals
      • [ ] Text Input
  • [x] Handling interactions with a closure, allowing responses
  • [x] Support more types of interaction responses
    • [x] Plain content responses
    • [x] Ephemeral responses
    • [x] Deferred responses
    • [x] Embeds
      • [x] Construct fields with a resultBuilder

cryptoAlgorithm avatar May 09 '23 09:05 cryptoAlgorithm