DiscordKit
DiscordKit copied to clipboard
DiscordKit for Bots - Continuation
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
NotificationCenterfor 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]
- [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 aStringvalue - [x]
integer- An option accepting anIntvalue - [x]
boolean- An option accepting aBoolvalue - [ ]
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 aDoublevalue - [ ]
attachment- An option accepting a file attachment as its value
- [x]
- [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
- [x] Construct fields with a