v4.2.0 Release
New Features!
-
New commands
/serious_mode on
and/serious_mode off
to disable emoticons and other "fun" features per server.- Currently removes the emoticons used in queues
-
YABOB now shows a discord Presence!
- Randomly updates to a new presence every 30 minutes
- You can find the full list of presences it can show in this file
-
Queue auto clear now has display support! If an auto clear timer is started, the queue will now show a dynamic countdown to when the queue will be cleared.
-
When a queue is open, the voice channel status of all the active helpers will be displayed in the
Currently Available Helpers
embed.
Feature Changes & Performance improvements
-
Embeds that display YABOB's profile picture will now dynamically use the bot client's avatar instead of using the hardcoded Imgur link.
- YABOB will use the avatar that you set it to use in discord's developer portal
- If you update the avatar while the bot is running, you don't need to restart the bot as the avatar is dynamically fetched.
-
Using Discord Modals (basically forms) for
/set_after_session_msg
and/set_queue_auto_clear
- Entering these commands will now prompt a modal (aka a form) with text box that you can fill out and submit.
- Benefits of modals:
- You can now have newline characters (by pressing
Shift
+Enter
) in your after session message - Limit to 2 digit number for hour and minutes for queue auto clear timeout.
- You can now have newline characters (by pressing
-
/list_helpers
now displays a helper's vc status -
Faster
/start
,/stop
,/next
and queue updates #82
Bug Fixes
-
Fixed issues with voice channel links
a. Links sometimes didn't work. This is now fixed
b. Permission Overrides now gets revoked after a student finishes their session.
-
Display error messages when discord.js returns an error. #88
-
Fixes the issue where students loaded from firebase backup cannot be correctly dequeued
Internal changes
-
Firebase is now a built-in feature and no longer an optional extension.
- This means that to set up your own YABOB, you must have the firebase credentials setup.
-
Client object is now a global object and can be accessed in any file. Type is
Client<true>
. This object is guaranteed to have non-null user properties. -
Moved success and error messages to separate files:
a. Server Errors: src/attending-server/expected-server-errors.ts
b. Base Interaction Errors: src/command-handling/builtin-success-messages.ts, src/command-handling/expected-interaction-errors.ts
c. Calendar Extention Errors: src/extensions/session-calendar/calendar-success-messages.ts, src/extensions/session-calendar/expected-calendar-errors.ts -
Better uncaught error handling #59
-
Now using ESModules instead of CommonJS to allow top level await.
-
Generated developer documentation using
typedoc
andtypedoc-plugin-merge-modules
!- Can be found here
- Generated via the command
npm run makeDoc
.
-
Updated to the newest NodeJS LTS version (v18.12.0)