V17 Release

CCTransparentLogo

Ladies and Mentlegen,

I present to you the changelog notes for V17. Because after 7+ months of development, it is finally here. As outlined in the V17 Update Plans, I noted that V17 was going to be a stop-gap update, meaning that any and all suggestions/bug reports/etc. posted were going to be included. So now, as we look forward to the V18 release, we have a blank slate to work with.

Now that it’s out, let’s review what went down. Because A LOT went down.

V17 Plans Recap

When V17 was first discussed, the community (CCG) had discussed the ability to assign themselves a role that was associated with a game. That role could then be pinged whenever someone was booting up a server, or starting a few match runs, etc. Not only was the idea welcomed, but I presented V16 as an attempt to sate that desire. V16 gave CCG members the ability to not only assign themselves a role, but to also create them. V16 was meant to be released in two parts, due to the sudden and overwhelming desire for that function.

Of course, that’s not how it worked out. Part 1 of V16 was released and part 2 never made an appearance. Hence V17’s stop-gap state. Now, V17 had V16 part 2 in it which condensed a lot of game roles functions. But what made V17 unique was the discussion of moving everything from JSON files over to what is now known as Fishsticks Online (FSO). FSO is a cloud based database that V17 gave to Fishsticks (Fs) so that read/write use could be practically eliminated. And that it did.

V17 Changelog & Details

Now, let’s get to the nitty gritty here. During the CCG community meeting that unveiled V17, a lot of things occurred. One of the things that did not occur was the incredibly detailed description I’m about to deliver here.

  • FS-Online Systems
    • Added new modules for FSO connectivity and maintenance
      • This connection is known as a conduit
      • Checks were originally sent on a command basis, but have since been moved to a global conduit that remains open for as long as Fishsticks is online. Conduit maintenance polling is done every time the module is called and at startup. (Every active command and startup).
    • New modules added to simplify query process
  • FSO (Fishsticks Online)
    • MySQL database system added to Fs: part of the PlDyn Network
    • User Accounts
      • Upon a users first active command, an “account” will be created in FSO for record keeping
      • A primitive dashboard has been built for further updates to attend to that provides the user a way to access a report of their command “track record”
      • Official dashboard access is per Discord account and can be opened using the !accountcommand.
    • !account -[create/delete] -username -password -confirmPassword: Enables or removes access to a Discord account’s FSO account.
    • The user dashboard accompanied by user accounts houses features including but not limited to password and username changes (FSO Account credentials, not Discord) and future spaces for music player custom playlists, and achievements.
    • Dashboard accessible via: https://fishsticks.pldyn.net/ (be sure to make sure it’s HTTPS (SSL secure), not like it’s super important, but I didn’t make it that way for nothing)!
  • Game Roles Subroutine
    • Put simply, moved ALL of V16’s game role routines over to FSO
    • All game role related functions under the gameRoles subroutine are now dependent on FSO as the JSON file housing former game roles data has been deleted.
    • Role Creation
      • Syntax remains the same
      • Command auto-reconstructs names into a standardized case
      • FSO record created in an unofficial state and the role creator is logged as a voter
    • Role Voting
      • 5 Vote requirement for officialization still stands
      • Vote duplication checking remains and is now kept in an FSO table
      • Votes are now kept in a cross table in FSO (User ID maps to Vote for a single role)
      • Voting for a role that has already been officialized now assigns that role instead
    • Role Officialization
      • Once 5 votes have been obtained, FSO record changes to official
      • Role is auto assigned to all voters
      • Users with role are synced to FSO and stored in a cross table (User ID maps to Role ID)
    • Joining/Leaving Roles
      • Joining a role that is not official yet will vote for it instead
      • Joining or Leaving an official role will remove it both in Discord and in FSO
    • Showing Roles/Reports
      • Fs now draws member report information from FSO
      • If a role has more then 10 members, only the first 10 who joined the role will be shown
      • All other information remains the same as V16
      • Using the -list flag still shows all roles categorized by official state
      • The !roles command now presents game roles AND CCG roles
    • Stats Report
      • New !stats command presents a detailed analysis of all game role roles and divisions
      • Ping stats are recorded and kept in FSO, present in both Show reports and stats
      • Each role records the number of pings received and when the last ping was.
      • Each division records the number of roles included in its division.
    • General Game Roles Updates
      • MMO and Religious Studies Divisions
      • FSO post-testing updates truncated FSO tables to provide a fresh state
      • Game Roles moved to FSO and proper divisions assigned to various roles
      • Troll roles have been removed from the unofficial listings
  • New Commands
    • !mutilate: transforms whatever follows into tRiGgEr TeXt
    • Staff: !purge [number messages]: deletes the specified number of messages from the channel the command was executed in
    • !grab [@user]: Retrieves the last line a user sent and saves it as a quote for random quotes
    • !afk [A-starting word] [F-starting word] [K-starting word]: changes the name of the AFK voice channel.
  • Summon System
    • Brought to us through some of the generous and creative minds of CCG’s members, the summon system now exists. It is a new Hearthstone-esque command that will “play” cards into the channel the command was executed in.
    • !summon [cardName] will attempt “summon” whatever card you stated.
      • !summon SkyeRangerDelta will summon the SkyeRangerDelta card, etc.
    • !summon brodemode will toggle on or off official “rules”.
      • Some cards are not meant to be played until another card is played, as reflected in the actual game. Brodemode enforces this. Default is off.
      • The mode name is a reference to Ben Brode, director and public face of the Blizzard game, Hearthstone.
  • Random Quotes
    • Fs now after a randomly selected number of posts has gone by, will post a random quote to the channel that triggered the random number. !grab adds to the pool of random quotes.
  • Music Player Changes
    • V17 has completely disabled the music player.
    • Rythm bot has been temporarily introduced as a solution until V18 can bring the music player back online.
    • It was just so broken.
  • New Passive Commands
    • frodo
    • gasp
    • nod
    • where am i or whereami
    • so it begins
    • ah (any combination of a and h)
    • scan drive c
  • General Updates
    • Numerous subroutines and commands have been updated to start using the syslog module.
      • Previously, Fs would simply log everything to the console. Syslog logs to the console but also dispatches them to the Fishsticks system log in Discord – this hastens error diagnosis and detection by incredible amounts.
    • !codex now provides a link to the relevant section in the LCARS Database for the command requested.
    • New background helper modules
      • Permissions check: quickens the check of a user’s permissions. May use FSO in the future
      • Sub check: Subroutines are handled in FSO, this module now pulls the routines from FSO on Fs runtime
      • Query module added – refactored to run 24/7
      • Date controller module: system returns a Fs specific date format.
      • Open connection module: opens a new FSO conduit and stores it globally (overwrites preexisting connections)
      • FSO Verify Member: moved from core script to new module in order to help accelerate FSO-centric commands.
      • Capital Case module: converts a string into an Fs standard case.
    • Numerous package updates
    • !help updated
    • Command rejections now change depending on how many commands are incorrect. Each incorrect command changes the response given, up to 10 wherein a loop is started. The chain can be broken by properly executing a command.
    • Helpful command reconstructions: all commands have been edited to be more…forgiving if a parameter is wrong. Missing a parameter in a command, or getting a wrong type is no longer met with the tormenting wrath of Fishsticks.
    • New Debater check added. Discussion Den post permissions are now handled by Fs. Non-debater cleared posts are deleted and met with a DM from Fs that present the user with the list of rules enforced over the Discussion Den. Accepting the rules (click an emoji) gives the user the Debater role, permitting posts.
      • Posts deleted by this routine are saved and resent in the DM for convenience. (Large posts near the character cap may vary).
    • SQL systems now support the “bigInt” type
    • Insult list “adapted”
    • Obsolete code removals
    • Link filter updated
    • Twitch filter updated on echo dispatch
    • !gif command now uses the Tenor library (the same one Discord uses) instead of giphy. (And we’re getting way better results)
    • Former staff channel removed from code
    • !report no longer exists
    • !status fixed
    • Active command errors now provide whatever code stack was executed on error catch
    • Experimental code for purge dumped: resisted API
    • !stats panel actually deletes itself like it says it would
    • Countless bug crunches in !role
    • ENGM uses a different rich presence state when enabled
    • Startup message thumbnail updated
    • Insult detection refactored
    • New prefab embed for defective commands
    • Previous gameRoles folder deleted
    • New subroutine base handling (slight edits, more to come in V18)
    • !links updated
    • Many security updates
    • !tempname JSON ID’s updated
    • Config file updated
    • Removed db_Test module – no longer relevant
    • Some !vouch responses no longer auto-delete for assistance in knowing who has how many vouches.

NOW THAT’S A LOT OF STUFF! Kudos to sticking with it if you read the whole thing (no kudos to you if you didn’t. You know who you are).

Some feature tutorial videos will be created and posted to YouTube after a while for any further command assistance. Questions and concerns can always be addressed to me either here, CCG, or PlDyn’s Discord.