Fishsticks V18 Progress Update 3


Here we are, yet again. Skye…when is version 18 coming out.

It’s coming. Chill. In the last update, we had a boatload of stuff that had to be covered. That boatload is now more like a handful. The biggest reason for my lack of work on it has primarily been because of things that are more important than Fishsticks. Things like school, work, etc. It’s my pleasure to report however that with the onset of the summer now on the doorstep – development can now start coming back up to speed. Some of you will have already noticed the increase in the number of commits being pushed to the repository.

Before we get deep into what’s been going on, let’s go over some quality of life changes I’ve implemented that should help with development speed.

First off, I’ve begun working with Fishsticks using JetBrains’ Rider IDE. So far, the implementation has had some quirks due to some configuration stuff needing to be changed. Things such as the way that auto-imports are formatted or the way the application is executed in the terminal, etc. Overall, Rider is proving to be an incredible resource. IntelliSense’s capabilities are far superior to Visual Studio Code; detecting variables, classes, and various objects with incredible depth. Function parameters are highlighted with the expected value in-line so you don’t have to go looking for the expected method parameter. Little quality of life things like this are all helping with development speed.

Some of you may have noticed that the recent commits to Fishsticks’ repository are being marked as “Verified”. This happened because I’ve added a GPG key and begun signing the commits and tags that I push to the repository. This essentially means that any commit that you see that says Verified means that the indicated author was the verified and authenticated commit author, not a bot or something.

Now, on to the good stuff.

What are we looking at in terms of the rest of V18? Let’s list it out (not a comprehensive V18 project list, mind you. There’s stuff listed here that’s not part of the list).


  • Rider repo-specific workspace changes
    • This is something new that I’m not wholly considering to be a part of the V18 update, it’s just something that’s been appearing a lot in the commits in case anyone is wondering
  • Discussion den message rewrite – needs to be rewritten to come across as more….professional
  • Implement a schedule handler
    • The schedule channel in CC has always just been either a re-post of the schedule or an edited post of the same thing. Time to standardize it.
  • Implement logger – this may be pushed back to V1.18.1 since CC still has the Logger bot to do this
  • !userinfo will have the ping requirement removed.  Rather difficult to summon information on a user when you can’t ping them from the channel you ran the command in.
  • Apparently, we need nuclear launch codes!?

In Progress:

  • Statistics reconstruction: !status and !stats are being refactored entirely
  • Shiny
  • Administrative Logs? I…don’t know what this is actually
  • Random Verse Command – for people that don’t know what verse they want from the !bible command

Stuff not in the project that needs to be done or is being worked on:

  • Chat message XP generation
    • The methods and FSO structures for this are in place but none of them actually have anything in them. Surprise.
  • Canvas image generation for XP level-ups (generation for newcomers is already done)
  • Syntax reworks – various pieces of Fishsticks’ code is being intelligently refactored by Rider in certain places because of some redundant stuff
    • For example…this code: if (!data || data == null) is the same thing as just if (!data).
    • Strict typing is also being implemented; if (data == 2) is being refactored into if (data === 2) in order to type-check and prevent data value comparison failures.
  • FSO integrity checks. A recent commit actually added a primitive function for this.
    • At startup, Fishsticks will now check to make sure that FSO is in a usable state. It does not check for all available data; ie, if a table is missing, recreate the missing table so it can be used in later commands.
  • V18’s release will also be accompanied by a massive documentation overhaul. The wiki will be worked on to a sizeable degree and a series of command information videos will be released in order to help understand things.

A lot of stuff has been refactored and is functional. At the same time, even more stuff has been fixed that didn’t work previously. Things like !tempname – which didn’t actually change the channel name. !tempch is now far more robust and functions a lot faster (and more importantly, remembers what channels were temporary in the event of a restart). Fishsticks also has a lot more content that I’ve been wanting to add for a long time, including some specialty stuff. I’m hoping that it’ll be something that will be glad to have around when V18 is actually released.

If anyone has any questions or wants to contribute bug reports and suggestions, see the GitHub repository and the wiki.

Feel like this isn’t original? You’re right. It’s not. lol.
The original post is on the PlDyn CoreFoundry.

0 0 votes
Article Rating

Like this article?

Share on Facebook
Share on Twitter

Leave a comment

Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x