Skip to content

4.0.0

Latest

Choose a tag to compare

@retrixe retrixe released this 07 Jun 13:04
d646a5e

๐ŸŽ‰ 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.
  • /help has been slightly reorganised to make more sense.
  • Yarn has been upgraded to v4.x with PnP replacing node_modules
  • config.json5 properties 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 /ai for text completion using OpenAI, /google for searching Google and /temperature for converting temperatures between units (credit: @0xVR)
  • /currency now uses a more accurate value for SYP (Syrian Pound) and is more user-friendly (credit: @NixxoNgames)
  • /changeserverregion and /listserverregions have been refactored to /changevoiceregion and /listvoiceregions
  • Trivia lists have been moved into the git tree for easier management.
  • /renameemoji has been added as an alias for /editemoji.
  • /ocr now supports replying to messages, allowing users to extract text from images more easily.
  • /creationtime has 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 -> mongoUrl
  • rootURL -> dashboardUrl
  • NASAtoken -> nasaApiKey
  • oxfordAPI -> oxfordApi
  • weatherAPIkey -> weatherApiKey
  • fixerAPIkey -> fixerApiKey
  • cvAPIkey -> gcloudApiKey
  • openaiAPIkey -> 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