Slash command progress report
What Discord Dungeons is doing to migrate to Slash Commands, and what players should do to prepare
Hello adventurers!
Many of you have heard about Discord's announcement that bots will soon require verification to access the content of messages users send. This change will impact DiscordRPG, as our existing method of handling commands from players requires message content. The purpose of this post is to update everyone on what Discord Dungeons is doing about this change, to provide a look into what we have been working on, and to explain our plans for the future of DiscordRPG.
Discord initially announced that message content would become privileged after the 30th of April. We were concerned about this change because the alternative to message content-based commands was Discord's new slash command system. At that time, this system seemed unsuitable for our use.
It did not help that Discord did not put out any documentation for migrating to slash commands for developers of existing bots who were using commands based on message commands. Therefore, we initially held out on migrating to slash commands in the hope that we would receive verification for accessing message content. At the same time, we also hoped that Discord would make migrating to slash commands easier for bots which were using the old system.
As time went on, we started to feel resentful towards the migration. While we knew we did not have features that would require access to message content, we were also disappointed with what Discord was offering. Therefore, we held out in the hope that somehow we would be approved for the message content intent. However, as the deadline crept closer, we began to realise that this was not going to happen, and accepted that we had no choice but to migrate to slash commands.
Fortunately, at this point, on the 27th of February, tools for working with the new slash command API from Discord had already been developed. We decided to go with slash-create, a library created by Snazzah, who had previously worked with Discord Dungeons as a developer. Slash-create has been very useful for us, and has made it vastly easier for us to migrate to slash commands. We extend our gratitude towards Snazzah for his work developing this library.
In order to migrate to slash commands, we've had to rethink how players interact with, and use, DiscordRPG. This has led to significant improvements in speed, and the overall user experience of the game. We hope that everyone will enjoy these improvements.
We hope that this change will feel familiar to everyone who have been supporting DiscordRPG for these 6+ years. We have tried our best to make the new slash commands act and feel like DiscordRPG always has. We hope that everyone will continue to support and enjoy DiscordRPG using this new slash command system.
Slash commands will be in beta for a few weeks while we test the new changes and make sure that they are ready for production.
We are continuing to work on introducing new features to DiscordRPG, and have many ideas for potential new features. However, we have been prioritising finishing the migration before the deadline. We still have a lot of work to do to improve and organise our game engine to make it easier for us to add new features. These improvements extend across our codebase, and will take quite some time still. We hope that everyone can give us some more time for us to perform these improvements.
Despite the fact that Discord has now extended the deadline to the 31st of August (thank you), we're still aiming to have the first beta version of the rewrite released to the public, for testing in the official Discord by the original 30th April deadline, and we would like to show the progress we've made so far.
You will need to reinvite DiscordRPG with the new applications.commands
OAuth scope to begin slash commands. We encourage everyone to follow this link to reinvite DiscordRPG to your server now in preparation. You do not need to kick the bot to use this link.
New Pager
We've added a new, blazing-fast pager based on Discord button interactions. No more do you need to sit around waiting for the bot to add reactions!
With the new pager, we've added a sneaky feature: clicking the middle button will open a modal where you can conveniently type in the page number directly!
Notable command changes
DiscordRPG has been fully ported over to slash commands!
To fit within Discords limit, we had to trim down the command list. To do this, we had to merge some commands together, which gave us the opportunity to redesign some of them.
#!serverinvite
,#!changelog
,#!info
,#!invite
,#!wiki
,#!support
and#!bug
have been merged into/info
, a new place for all your DRPG-related links.
- Commands relating to the user stats have been merged into
/s
- Guild commands have been merged into
/g
#!inv
and#!invval
have been merged into/inv view
and/inv value
Market command changes
The market commands have been revamped to improve the interface. The new subcommands will hopefully make it easier for players to understand the distinction between the selling and buying section of the global market.
Creating or executing a trade will now display much more information than before, such as how many products are left, or how much gold it will cost to buy all items from a trade. When your trade is executed, the bot will helpfully tell you how many items are left to be traded in its message.
- The commands to list trades in the market have been merged into one market subcommand,
/m list
. This command replaces the many market list commands (such as#!gmlist
,#!gmglist
, and#!gmsearch
), and hopefully is much easier to understand. - Updated the output when you create, or execute, a trade.
- Updated the output when you view a trade.
Guild info
We've added a convenient /g info
command to view information about and manage some properties of guilds.
With the new display, we've added a whole new section for editing your guild settings, as well as buttons for expanding, sending an ad and a button for disbanding the guild.
When editing your guild settings, you'll now be greeted with a selection menu, which we've made more clear. No more needing to guess what settings do!
When editing your guild settings, you'll now be greeted with a convenient modal to input your new settings.
When the change is completed, you'll receive a confirmation message, as you can select another property to edit, instead of needing to type the whole command out again.
Autocompletion on commands
Commands now support autocomplete! No more guessing whether it was "bread" or "loaf of bread". This is currently limited to a select few commands, but we will extend autocomplete functionality to more commands in the future.
Quests
We've revamped some aspects of the quests!
Players will no longer need to wait for the bot to add reactions to messages in order to continue with quests!
"OK" reactions have been replaced with buttons and option dialogues have been replaced with select menus!
NPC shops
Additionally, NPC shops have gotten an update, as they now use the dropdowns too.
Battle changes
In order to make the game feel more consistent, we needed to redesign the battle commands and, as a result, #!battle
, #!baccept
, #!bcancel
, #!bdaccept
, #!bdraw
, #!brefuse
and #!bstop
have been merged into one simple interface under /battle
.
Party changes
Furthering the previous battle changes, party commands have also been merged in the same way, and are now in the /party
and /party view
commands.
Alchemy changes
Brewing has received an overhaul!
No longer will you need to list out all ingredients in a single command, worrying you forgot something.
Instead, you now get an editable list of ingredients before you start the brew.
You will also be able to stop the brew from this new interface.
We've now added a confirmation dialogue using buttons to destructive actions, such as cancelling a potion.