Fishsticks V18 Update Progress 4

CCTransparentLogo

Greetings all,

Skye…again with the huge gap between updates here. Fret not, here’s your update.

Since the last update, productivity on Fishsticks V18 has increased 10 fold. I’m pleased to actually report some significant updates to development and where V18 is in progression. I’ll just go ahead and jump straight into what’s been going on.

Library/Package Updates

Numerous packages that Fishsticks runs on have received well-deserved package updates. These updates are for the systems that make parts of Fishsticks run. These updates will be available on the V18 release. They include but may not be limited to:

  • Discord.js (12.11 -> 13.1) – This one has been the primary focus of the recent updates and refactoring. Changes to the core of Fishsticks’ system have required refactors across all commands and systems including changes to types, handlers, responses, and more. Most have been handled and updated at the time of this post.
  • Oxford Dictionary
  • Date and Time
  • NPM
  • RethinkDB (REMOVED)
  • MongoDB (Added)
  • Roll
  • URL-Scan
  • Colors

A significant note for this update is that due to severe security vulnerabilities in RethinkDB – V18 has changed Fishsticks Online (FSO)’s direction to MongoDB which is more than adequate for Fs’ needs.

Command Updates

All commands have received the following refactors:

  • Discord.js API changes:
    • Reply (the means by which Fishsticks will respond to command executions) statements have been replaced with either the new Discord visual reply (clickable link to the message being replied to) or a new custom message reply that visibly looks similar to the existing live version reply.
    • Delete (automatic spam-prevention) has been refactored into either a setTimeout function or a custom reply delete (also a setTimeout but handled separately from Discord.
    • Embeds (while still handled by the custom embedBuilder are now posted into chat in a fashion required by Discord.js v13. Field names for embeds that use them have also been adjusted.
  • FSO Transactions
    • Due to MongoDB now becoming the new FSO platform; all commands have changed their key types to work with MongoDB’s Node.js Driver accordingly.

New Systems

  • XP & Leveling has finally been implemented with the collaboration of a CC member to provide a custom-designed XP progression graph.
    • The first message sent after a 60-second window (from the last gained XP message or FSO account record creation) will be subject to XP gain.
    • XP gain is subject to the quality of a message; this is determined by the following factors:
      • Length of the post (the longer, the higher the score)
      • Formatting (if the post includes italics, bold, underscore, strikethrough, or code/pre-formatted, and how many)
      • Punctuation (if it exists, and how many exist)
      • Links (if they exist)
      • Attachments (by how many)
      • Emojis (by how many)
    • If the quality of a post has a score of less than 5; the message will generate XP between 20 and 30.
    • If the quality is scored at 5 or more, the XP generated is between 30 and 40.
    • Gained XP is mirrored in gained Goldfish currency.
  • Poems!
    • Fishsticks will now post a random poem at 8 am UTC every morning.
    • New !poem command (currently requires the -random parameter) will post a poem embed.
    • Poems are sourced from https://poetrydb.com
  • The event/Schedule handler is on its way. The development pipeline is currently being ironed out.

Q/A and General Progression to Completion

Testing commands have been conducted on and off with the cumulative development of V18 over the past week or so with the bulk having been done over the past 3 days. Testing has moved across all active commands testing all caveats of implemented commands on top of the new systems that have been deployed. So far, all commands tested have been approved for the V18 release. The tested commands represent roughly 75% of the command makeup of Fishsticks.

The remaining work for Fishsticks V18 lies within:

  • Further Discord.js v13 refactors (or else the thing will crash)
  • Further MongoDB/FSO transaction refactors to make sure data is being processed properly
  • The remaining V18 project plans (can be found here on GitHub)
  • Testing on all remaining untested/undeveloped systems.

If you are interested in helping to test V18 currently or when mass release testing is ready to be conducted – let SkyeRangerDelta know/Join the Bot Tester group in CC.

TL;DR/Synopsis

V18 has seen leaps and bounds of development in the last couple of weeks coupled with extensive testing on new systems. Progression is moving nicely with new systems and developments. I don’t have an ETA as I despise them, but I suspect that the ‘around the corner’ expression we say actually has meaning now.