Fishsticks V19 Release & Discussion

CCTransparentLogo

Yes! Hello! I know it’s been 8 months, you don’t need to remind me. But, since you’re here, there’s a solid possibility that you might already know that V1.19 has been released (and had a few patches) at the time of this writing. The live version is V1.19.0.2, and it’s full of wonderful little upgrades.

But first, to answer some questions.

Q. It took literal years to release V1.18 and only a couple of months for V1.19? What’re you doing with your time?
A. Clearly developing V1.19 faster than V1.18.

Nah, but seriously, V1.18 had a considerable count of logic refactors and major code changes due to significant changes in the Discord API that simply took a long time to handle. V1.19 was nothing more than structural refactors without major logic changes.

Q. What exactly does V1.19 do?
A. We’ll talk about that in a second.

Q. Where’s my Bacon-wrapped Goldfish (BWG)?
A. There will be no BWG….at least legally….but what’s to say there aren’t plans for V1.20?

Now, onto what V1.19 is made up of; a full changelog! So how I’m going to do this is by simplifying and compiling the commit changelogs from the GitHub repository; I make sure to add useful descriptions to those.

+ Added a slash command registration handler: a system that reads all of Fs’ commands and registers their data with Discord
– Removed the active command handler ( `!command` commands)
+ Added an improved command listing (map)
+ Added an event handler
+ Added all potentially relevant events triggers to Fs event handler
~ Refactored all commands to fit structural requirements for slash command data
~ Moved stat updater to interaction event handler
~ Numerous NPM package updates and security refactors
– Removed XP calculation from sensitive channels
~ XP notifications now self-delete
~ Mutilate responses are now sent via ephemeral message (to prevent people ‘talking’ as Fishsticks)
– Removed the stupid scan url thing – it worked but never did anything beneficial thanks to the API
~ Introduced deferred replies (gives Fs a bit longer to think about something if he needs it, shows up in the chat as ‘Fishsticks is thinking…’)
~ Tweaks to random quote generation
~ Changed numerous commands to respond via ephemeral response instead of directly into the chat (helps with spam and I don’t have to worry about deleting it later)
~ Changes to FSO/Notifications database transaction calls
~ Fixed time-zone settings in FlexTime objects (basically the way Fishsticks process time differences and timestamps)
~ Tweaked bible command to have a bit better readability
~ Fixed a crash when using channels command
~ Added additional error handling to a few commands; namely docket
~ Fixed a bug in the echo command where the response was showing in milisecond time
~ Introduced a space in between the button text and result count on poll reponse buttons
~ Broke the purge command
~ Repaired the purge command
~ Changed how numerous passive commands are handled
~ Added an error log for when Fs gets his coat snagged on a hook whilst processing an interaction event problem
~ Added error handling for ‘unhandledRejections’
~ Removed a log of console spam on startup
~ Removed deprecated code
~ Refactored a few utility functions
~ Fixed a bug in the XP profile banner builder concerning who’s profile banner was being built

That’s the human-readable version of the compiled changelog. You can see the full logs through the numerous code commits on the Fs GitHub Repository.

TL;DR: V1.19 introduced slash commands.


Now, where do we go from here? A most excellent question.

There’s a number of issues available on the issues tab of the repository that I will ultimately address in various patches to V1.19. At some point I will also get around to planning out V1.20 which will include a handful of experimental features I’ve introduced to LCARS47 over on my PlDyn Network which may or may not pertain to an audio player.

Refactoring Fishsticks over to TypeScript is also a very real possibility that will help in the future development of Fishsticks due to the better type support and compiling system that would be introduced. It’s something I’ve only been toying with since I’ve converted LCARS47 over to it from regular JavaScript. The difficult concept though is the fact that LCARS47 is far smaller than Fishsticks.

I’m also open to introducing some…unconventional systems to Fishsticks in V1.20 that will make use of various protein-surrounded marine creatures that people have been so intrigued with.

But for now – that is all.