๐ The final version of IveBot 4.0.0, 4 years in the making ๐
There may be bugs in this version due to major refactors, but that's okay for now.
Compared to 4.0-alpha.3, changes include:
- Every command has been split into its own file.
/helphas been slightly reorganised to make more sense.- Yarn has been upgraded to v4.x with PnP replacing
node_modules config.json5properties have been renamed. This is a major breaking change!- The dashboard and bot have gone through various refactoring and code improvements.
Compared to 3.x, IveBot 4.x brings:
- Support for modern Discord features such as intents and slash commands.
- Many commands now support slash commands (however, not all do yet).
- The dashboard has been split out into its own independent subproject.
- The dashboard now uses Discord OAuth for login.
- The bot has gone through massive refactorings, relying on the latest features from Node.js 24 and undergoing massive cleanups.
- Many fields and properties have been renamed. Particularly of note to upgrading users are database and config name changes.
- Yarn 4.x is now used with PnP, along with the latest versions of all dependencies.
- The bot has been migrated to Dysnomia, a fork of Eris that is more actively maintained.
- New commands include
/aifor text completion using OpenAI,/googlefor searching Google and/temperaturefor converting temperatures between units (credit: @0xVR) /currencynow uses a more accurate value for SYP (Syrian Pound) and is more user-friendly (credit: @NixxoNgames)/changeserverregionand/listserverregionshave been refactored to/changevoiceregionand/listvoiceregions- Trivia lists have been moved into the git tree for easier management.
/renameemojihas been added as an alias for/editemoji./ocrnow supports replying to messages, allowing users to extract text from images more easily./creationtimehas been fixed and is no longer broken, along with many other bug fixes.
Upgrading from 3.x / 4.0-alpha.3
Rename the following config.json5 properties:
mongoURL->mongoUrlrootURL->dashboardUrlNASAtoken->nasaApiKeyoxfordAPI->oxfordApiweatherAPIkey->weatherApiKeyfixerAPIkey->fixerApiKeycvAPIkey->gcloudApiKeyopenaiAPIkey->openaiApiKey
Upgrade from 3.x
Delete triviaLists/ from the top-level folder if you created the folder manually earlier. Trivia lists are now located in the git tree in the src/data/ folder for easier management.
Rename MongoDB database properties to their 4.x equivalents by running the following commands in Mongo shell:
use ivebot
db.servers.updateMany({}, { $rename: { serverID: 'id', addRoleForAll: 'publicRoles' } })
db.warnings.updateMany({}, { $rename: { serverID: 'serverId', warnedID: 'warnedId', warnerID: 'warnerId' } })Commits
Major Changes
- Split admin commands to their own files: a655fdd
- Split game commands into their own files: 5eb25c3
- Match /help categories with command folders: 8f53c6b
- Split utility commands into their own files: a62a33f
- Split tool commands into their own files: 48c2df4
- Split internet commands into their own files: b2dff6a
- Reorganise files into imports/client and server: ac01529
- Move tempDB to Maps and Sets: 60ecb90
- Eliminate commonGenerator, more null safety: c075f4f
- Switch to Yarn PnP with workspaces: 3c0b683
- Rename config.json5 properties: 16be789
Minor Changes
- Add options parsing to slash command API: 74cf47d
- Sync dependency versions across Yarn workspaces: 70e722e
Patches
- Move parseSilentDelete to common utilities: f6b3333
- Work on strictNullChecks, enable ESLint unused var: 3c4420e
- Enable ESLint caching and more rules: c8287ba
- Enable all strict ESLint rules in dashboard: 87876d2
- Move to @mui/material-nextjs integration: 5a2cb0b
- Use proper typing for MongoDB, enable more rules: 434fd68
- Upload Yarn PnP SDKs correctly (oops!): 361de5d
- Document usage of Yarn: ef2531a
- Fix eslint-plugin-prettier breaking vscode-eslint: 4550fec
- Fix Husky for Yarn v4 with up-to-date usage: 0fa31fb