Fishsticks V1.17.7 Plans


Greetings all,

Many of you have been wondering about the next update for Fishsticks and what it might entail. I shall attempt to deliver answers to those questions in this article. The big note about this article will discuss why the next update will be developed the way that it will and I’ll explain why it’ll take some time for the next update to come out.

On to the details!

Versions 1.17.5 and 1.17.6 brought a few quality of life things to the table for Fishsticks. As they were minor updates, the changes and additions made were simple but fun. V1.17.5 saw new summon cards added to Fishsticks’ deck and 1.17.6 saw the addition of a !dice command to allow for RNG generation.

Version 1.17.7 will be very different. As some of you may already know, V18 is slated to be a major refactor for Fishsticks. A lot of commands if not all of his commands will be visited and get a bit of a restructure. Logging will be handled (and an actual system put into place) and a lot of systems that are now available on LCARS47 (see this previous post) will be made available on Fishsticks. But what does that have to do with V1.17.7? The changes being made in V1.17.7 will be the prelude to the V18 update.

April 12, 2020 – The Discord.js API has moved to version 12.2 following the Node.js V12 update. That update changed quite a lot of what we see going on inside of Discord bots, namely the introduction of managers and the changing of a lot of methods used on message objects. You can see a well laid out changelog here. I won’t go into detail about it here – this is for what it means for Fishsticks’ continued development.

In the CCG Discord, Fishsticks is designed to clean up messages it posts in order to prevent spam. This has been a standard operating procedure since some of the very first commands. Helps keeps channels clean and sticks around long enough for the command issuer/target person to see that changes/things have happened. The Discord.js V12.x update has changed the way that works. Instead of simply:

//Delete a message after 10 seconds
aChannel.send('whatever message here').then(sent => sent.delete(10000));

It’s now:

//Delete a message after 10 seconds in Discord.js V12.x
aChannel.send('whatever message here').then(sent => sent.delete({timeout: 10000}));

Because the delete method for messages now takes a timeout value instead of just a number of milliseconds to wait. What this means for Fishsticks is that every single instance of a message being sent now needs to be refactored to handle deletions using the timeout value. That’s not the only change. Various objects such as messages now have manager objects that handle the methods for those objects. This means that all those instances of message objects and users etc, need to be properly refactored to use the managers and etc.

Essentially, what this means is that I’m about to spend a long time refactoring a bulk amount of Fishsticks’ code for the next release.

Now that we’ve covered the refactoring bits, let’s talk about what we’ll be looking at in terms of actual content updates and changes.

Pushes are being made to the V1.17.7 release in a series of smaller patches.

Patch 1Pushed

  • Bacon Mode: !baconmode @user – the targeted user’s messages will be reacted to with the 🥓 (bacon) emoji.
  • !define [word] – the foundation of a system for defining words.
  • The embeds for !help, !role, and !roles now have a longer auto-delete wait.
  • !suggest now properly encodes the command when dispatched so you don’t get any weird formatting conditions.

Patch 2In Development

  • Reconstruct startup message to be similar to LCARS47. New fields for general server information.
  • Rework new user join messages with new fields for general server information.
  • Start development on a meeting minutes system

Patch 3Pending

  • Begin command and core code refactors

Now, this is a rough outline and may change as developments are completed or new things are added. It is to be known that V1.17.7 is a “Stop-gap” update where plans for the next update are on pause and all suggestions, bugs, and issues are to be completed in this update before the next one is started.

That’s all, thanks for reading.