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!

The new pager

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!

The modal for choosing pages

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.
The output of the /info command
  • Commands relating to the user stats have been merged into /s
The new /s command
  • Guild commands have been merged into /g
The new /g command
  • #!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 new commands
  • 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.

Usage of /g info

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.

Modal for entering a new description

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.

Confirmation message when editing was successful.

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.

0:00
/
Item command autocompletion

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.

0:00
/
The new shop interface

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.

Example of buttons to manage the 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.

Buttons for managing party

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.

Brew interface
Modal for changing ingredients

You will also be able to stop the brew from this new interface.

A started brew

We've now added a confirmation dialogue using buttons to destructive actions, such as cancelling a potion.

Confirmation for cancelling a potion