Skip to content

Releases: retrixe/IveBot

4.0.0

07 Jun 13:04
d646a5e

Choose a tag to compare

🎉 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

4.0-alpha.3

03 Jun 13:13
08bb354

Choose a tag to compare

4.0-alpha.3 Pre-release
Pre-release

🎉 4 years later, but here we are!

This release delivers a bunch of changes under the hood:

  • The bot has been migrated to Dysnomia, a fork of Eris that is more actively maintained.
  • All dependencies have been updated to their latest versions.
  • Prettier is now used for code formatting across the project.
  • 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)
  • The Node.js version requirement has been raised from 12 to 24 (doubled!)
    This allows us to use the built-in fetch API, TypeScript support and watch mode.
  • 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.
  • /about makes it clear that IveBot 4.0 is the preferred version of the bot, and that 3.0 is no longer supported.
  • /creationtime has been fixed and is no longer broken, along with many other bug fixes.

Due to IveBot 4.0 supporting newer Discord features such as threads, it is now the preferred version of the bot (despite being unreleased). IveBot 3.0 is no longer supported and will not receive any updates or bug fixes, since it is practically unusable with modern-day Discord and I don't have the resources to continue maintaining it.

In view of this situation, moving forward, v4.0 development is being streamlined so that it can be released in a more timely manner, with many features being moved out of its scope. I expect the next version will be v4.0 itself, mostly with code refactors under the hood and no additional features.

Upgrading from 4.0-alpha.2

You should delete the triviaLists/ folder at the top level, if you created it manually in an existing setup. This is because trivia lists have been moved into the git tree for easier management at src/data and do not need to be added manually now.

Major Changes

  • Enable Prettier across the project: 67d3e0b
  • Partially format bot with Prettier, update /about: 585cba1
  • Remove node-fetch in favour of built-in fetch: 00cd3a2
  • Use Node.js 24 TypeScript support and watch mode: d7d2f34
  • Use ESLint v9 in main bot: 88d06ae
  • Use ESLint v9 + Prettier in dashboard: 3386f85
  • Update all dependencies excl ESLint: 7ece7e4
  • Migrate to Dysnomia from Eris: 5554e03

Minor Changes

  • Move graphql-schema-linter into dashboard: fdbcb35
  • Better cur usage (#54): 63211c7
  • Move trivia lists into git repository: 1b3e521
  • fixed syp value in currency command (#50): 261eac7
  • Add /renameemoji alias to /editemoji: 09e375f
  • Add /google, embed GraphQL schema in GQL server: 94fbe6e
  • Add model/temp params to /ai, track user IDs: 51330ab
  • Add new /ai command using OpenAI text completion: c202e0f
  • Support replying with /ocr, fix negative /temp: d6d35f7
  • Add /temperature, move /calc and update /help (#38): 8fb9aba

Patches

  • Deduplicate various functions: e1366d1
  • Use Set for tracking evaluated messages: 0817a65
  • Fix /creationtime being completely broken: 7031087
  • Enable multiple ESLint rules: a883d3d
  • Update README and fix ESLint VSCode: 3298694
  • Remove unneeded ESLint build ignore in dashboard: 36b0c87
  • Fix broken re-eval on edit: 832dcc1
  • Create src/data folder to store future datasets: b5008e3
  • Enable some ESLint rules, use TSConfig bases: cabec1c
  • Update all dependencies: 396423a
  • Fix /trivia help: b7060fd
  • Fix manageEmojis permission: bd980a5
  • Update all dependencies: 9b532f2
  • Update Dysnomia, fix breaking attachment change: a7e1248
  • Fix SYP value broken due to insane inflation: ba23bf6
  • Fix /av for people with no role: fd4eace
  • Use OpenAI's davinci model by default: d6d7fd4
  • Fix /namemc when username is invalid: f04028a
  • Fix SYP value being incorrect (take 2): 54bf3c9
  • Fix syp value (#52): 27f682e
  • Fix late removal of gunfight in rare instances: 7575965
  • Upgrade to Apollo Server v4, update ESLint: 982f2b1
  • Upgrade dependencies, fix /creationtime: c1c6b03
  • Make /remindme -c less unwieldy, fix /suppress: debb93a
  • Fix issues with muting and threads, broken nmc: db800be
  • Replace Input with TextField in dashboard: d021edc
  • Update dependencies, update to MUI v5: 3c956c9
  • Update dependencies: 3e63e33
  • Update Eris for text-in-voice support: e547402
  • Fix 4.0-alpha.2 regression of broken kick/ban DMs: b5a4b26
  • Bump next from 12.0.8 to 12.0.9 in /dashboard (#41): 73d7274
  • Update Next.js, Apollo server, fix ESLint, errors: a790dba
  • Bump nanoid from 3.1.25 to 3.2.0 in /dashboard (#39): 9df20e1
  • Bump node-fetch from 2.6.1 to 3.1.1 (#40): a73c35c
  • Fix /temperature parsing: 5ee7974
  • Edit regex for /temperature to allow decimals: 868fb9b
  • Update Eris to version with timeout: f5f99d0
  • Fix commands in DMs, yarn dev script: 8d299c2
  • Bump next from 11.1.1 to 11.1.3 in /dashboard (#37): 8e43ce0
  • Fix some TODOs, register slash commands on ready: f690a4c

4.0-alpha.2

16 Oct 20:31
100d58b

Choose a tag to compare

4.0-alpha.2 Pre-release
Pre-release

🎉 More major work towards IveBot 4.0 \o/

This release is focused towards wiring slash commands support into IveBot. It took a lot of architecturing and decision making (just look at the first and last major change commits), but we got there. The slash command API in IveBot is about as stable as Discord will currently allow it to be :^) apart from that, the dashboard has received a pile of fixes and a bunch of patches have been made which will eventually be backported to 3.2.2. The bot has been updated to Discord API v9, due to the changes, changeserverregion and listserverregions have been refactored to changevoiceregion and listvoiceregions in addition to a pile of code changes under the hood. All of the game commands have been ported to slash commands (apart from gunfight and trivia), as well as a handful of other commands in utilities. The goal for 4.0 is to get all commands ported.

This release is tested in production to be fairly stable (in my previous release, I stated that the next alpha release would be sure to break some stuff, but I don't believe that holds true anymore given the bug-free state of this release). Naturally, the 3.x branch is currently still ideal if you wish to avoid introducing any bugs.

Major Changes

  • Add slash-create, fix dashboard channel menu: 62fa8d4
  • Wire initial slash commands support: 0fa2c28
  • Add slashOptions to commands, port some commands. Current approach is to have slashGenerator and generator: c65e505
  • Add commonGenerators, ephemeral errors. Also, port /serverinfo to slash commands: db8b635
  • Slash /help, use Eris v9, disable region commands: 8732bc0
  • Use Eris Interactions for parsing slash commands. slash-create is still used to sync slash commands with Discord. Also, port /creationtime to slash commands: 1b4dc01
  • Remove slash-create, use Eris to register cmds: f5f58dd

Minor Changes

  • Fix bugs, update list/changevoiceregion: c2328e7
  • Improve+fix errors, validate interaction options. Improve bubble wrapped error logging. Fix errors by allowing slash commands to assert options is array. Add slash command options validator. Fixes any errors caused by broken Discord validation just in case. Also removes any responsibility of slash generators to need to check. Types can be casted safely in slash generators now. No sub command support yet though: 93645f9
  • Register slash commands non-blocking, fix errors: 9208eb6

Patches

  • Bump next from 11.0.1 to 11.1.0 in /dashboard: #34
  • Fix public roles exploit: 8001ba1
  • Fix /ocr on newer Node versions: 4c80771
  • Fix 2 internal errors with /calc and /av: 80b48e4
  • Fix dashboard and slash /help bugs. Dashboard Save button now works. Dashboard Cancel button now works. Dashboard now shows news channels too: 0a07e10
  • Bump next from 11.1.0 to 11.1.1 in /dashboard: #35
  • Exclude roles with disableEveryone too: 3381ec4
  • Bump ansi-regex from 5.0.0 to 5.0.1 in /dashboard: #36
  • Replace deprecated embed property: 5879290

3.2.2

16 Oct 20:51
b63a37d

Choose a tag to compare

Patch update to the 3.x branch containing bug fixes from the 4.0-alpha.2 pre-release. Update is recommended immediately for security reasons.

Patches

  • [backport] exclude roles from allowedMentions: 2af8182
  • [backport] fix 2 errors with /calc and /av: fb0a376
  • [backport] fix /ocr on newer Node versions: 763592c
  • [backport] fix public roles exploit: fdb8aa3

4.0-alpha.1

03 Aug 12:43
f7d0451

Choose a tag to compare

4.0-alpha.1 Pre-release
Pre-release

🎉

First prerelease of IveBot 4.0 \o/ this release is actually so stable that I am currently using it in production despite it featuring many changes underneath. The one most likely to cause bugs is likely intents being enabled, apart from which everything is working remarkably well.

  • Intents have been enabled now.
  • We now use Node.js source maps for better debugging in production.
  • The dashboard GraphQL schema has been updated with far better naming.
  • The dashboard has been isolated from the bot and split into its own sub-folder.
  • The dashboard now ships with updated Apollo Client/Server, Material UI, Next.js and React.
  • The dashboard now uses OAuth to authenticate, and talks to IveBot using an encrypted private API.
  • Certain fields have been renamed in the database to match casing convention or make more sense.
  • We now compile with native ES Modules for top-level await. MongoDB is guaranteed to connect before the bot starts.
  • ESLint has been updated with much stricter rules, which has helped fix a lot of potential floating promises that could cause crashes.

A lot of these changes are internal (apart from the dashboard, of course), but help a lot towards enabling new features and preventing possible errors that haven't showed up but theoretically could. Despite it being a prerelease, I believe the code is in better shape than 3.0's code is. However, 4.0 will be seeing larger updates soon i.e. support for Discord slash commands which is sure to break some stuff under the hood. Since 4.0-alpha.1 will obviously not receive further tangential updates, if there is a bug, you will have to backport the fix from a future version of IveBot 4.x yourself. If you do not wish to do this, I advise sticking with the 3.x branch for now.

Run the following commands in Mongo shell to prepare for the 4.0 update.

use ivebot
db.servers.updateMany({}, { $rename: { serverID: 'id', addRoleForAll: 'publicRoles' } })
db.warnings.updateMany({}, { $rename: { serverID: 'serverId', warnedID: 'warnedId', warnerID: 'warnerId' } })

Major Changes

  • Begin separating dashboard from bot: e1d610f
  • Cleanup dependencies: 8772358
  • Separate bot from dashboard completely: 5b444e7
  • Move bot to src folder, update MongoDB, fix crash. VSCode debugging is broken at the moment: 380ec3a
  • Require Node.js 12, enable source maps. Fix fetch error. Remove @babel/core dependency: 0067c26
  • Get dashboard front-end in working condition. Enable TypeScript strict mode. Back-end is still utterly broken: 402ec06
  • Add config.json, work towards OAuth dashboard: 7f6b143
  • Finish OAuth based resolvers, remove /token. Missing some error handling and mutual server lookup: 7aaca91
  • Update Apollo Client, get auth/dashboard working: 37314c6
  • Support logout, fix linting, update README. The dashboard builds and runs perfectly now: 70ff28f
  • Enable most strict ESLint rules. Also, use Sets where appropriate in tempDB instead of arrays: 4a164d2
  • Use Node.js ES Modules, fix VSCode debug: 77ad487
  • Rename database structure fields. servers: serverID -> id - servers: addRoleForAll -> publicRoles - warnings: serverID -> serverId - warnings: warnerID -> warnerId - warnings: warnedID -> warnerId: d3b7200
  • Add encrypted API to IveBot for dashboard to use. This avoids rate limits by utilising IveBot's guild/member cache: d830933
  • Enable intents, fix statistics error, improve UI. Fix race condition with MongoDB and GQL resolvers. Update ws due to GitHub vulnerability: 5e69d51

Minor Changes

  • Update to latest ESLint: 1f41a5e
  • Enable some ESLint rules: 644a72b
  • Refresh dashboard UI, update trivia hugely. Get dashboard permissions working correctly, with huge ratelimits: 14a6d37

Patches

  • Cleanup some code with TS strict mode: 561d8d4

3.2.1

02 Aug 18:48
02c3b06

Choose a tag to compare

Followup release with important crash fix and /trivia updates. It's expected that support for the 3.x branch will be dropped soon in favour of the 4.x branch, owing to much more improved stability and active development.

Patches

  • [fix] crash error with auto-responses: aceb427
  • [backport] enhance /trivia UX and fix /trivia list: 7962f7f

3.2.0

30 Jul 15:37
eb9c7e0

Choose a tag to compare

🎉

This is likely going to be the last minor release of IveBot 3.x, only patch releases will take place after this. I'm beginning work on IveBot 4.x now which will involve significant reworking and updates to the code, like using intents and splitting the dashboard out, and looking at what we can use in terms of slash commands and other new Discord features, and maybe a new prefix too. Also, huge updates to all of IveBot's dependencies which we haven't updated in a long long time.

As for IveBot 3.2.0, there's quite a bit new! There's a new /trivia command, and you can now edit a command if you did a typo and it error'ed! There's also more insults, fuzzy searching for /xkcd, patches for some crashes and the bot now requires at least Node.js 10. Also, 3.1.0 and older fail to connect to Discord anymore, so an update to 3.2.0 is required now.

Minor Changes

  • Add fuse.js fuzzy search to /xkcd.: 5ecbd30
  • Diversify insults: #22
  • Update to Eris 0.15.1, add re-eval on error. The individual commands don't support it yet though.: 9d84d7a
  • Finish re-eval on error for all commands. /eval was excluded as {error:true} is unsupported. /ocr and /paste were excluded. API errors were also excluded. Cooldowns were also excluded. Moderation commands are incomplete.: 1b0369a
  • Finish re-eval on edit error messages.: 84587d2
  • Compile to ES2018, require Node 10.x.: 9fc8428
  • Add /trivia game command: #19

Patches

  • Fix /help being broken for most commands.: 8749777
  • Update vulnerable dependencies.: ece2966
  • Bump elliptic from 6.5.3 to 6.5.4: #24
  • Add /ver and cleanup some code.: 7721a3e
  • Fix message edits, plan userinfo updates.: 2461bd7
  • Add zalgo char, update security vuln dependencies.: 856ae29
  • Fix autorole on member joins: d2aad1b
  • [fix] await in sync function: 1f256f9
  • [fix] broken /calc with dependency update: ec42b8d
  • Await floating promises and update old code.: 05e070d
  • Update @types/node, ws, package.json.: 3147131

Credits

Huge thanks to @xuxey and @xVyre for helping!

3.1.0

21 Apr 14:26
23c6422

Choose a tag to compare

🎉

This is a minor release with a slew of new features. It includes multiple bug fixes and new commands.

  • Added aliases for reminder.
  • Update to Eris 0.15.0 to continue working properly.
  • Add /suppress.
  • Add /hastebin.
  • Add perms to /help <command>.
  • Add /reminderlist.
  • Fix large number of bugs and old pieces of code.

Minor Changes

  • Add reminder aliases, lower-case calc, update ocr. /ocr <message link> works better with messages containing links now: df5119f
  • Fix random, els and remindme, update getUser, add /perms. getUser now only iterates guild.members once and uses nick. /random will now use 1 as lower limit when only 1 number is passed. Critical bugs in /remindme and /editLastSay fixed. /userinfo cleaned up: a3468ab
  • Update to Eris 0.14.0 as well as package updates: 1fca3f0
  • Add /suppress: #18
  • Add /hastebin and support /nmc effective name: 03ec341
  • Fix paste.gg, update to Eris 0.15: 6d2d2b6
  • Add /help perms and /reminderlist: 75cd274

Patches

  • Fix #2 and move gunfight storage to objects: f64b0e6
  • Use GuildTextableChannel cast and remove members.find(id). Get rid of guild.channels.get(message.channel.id) as cast. Replace leftover members.find(e => e.id === id) with members.get(id): 6b1cfb4
  • Add /perms to help and fix typing in other channels: dad8d7b
  • Make /rh type case insensitive (fix #15, #16): 2783133
  • Fix /dog internal errors (fix #14, #17): f76f960
  • Updated .permission, fix /suppress perm. /suppress uses channel specific perms. .permission -> .permissions Make sure all commands return "Correct usage.": 64db23d
  • Use paste.gg and fix var name: 10ae686
  • Update README, /help, bump Node.js req: de26a1a

Credits

Huge thanks to @xVyre for helping!

3.0.0

11 Jul 19:42
130517e

Choose a tag to compare

🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉

It's finally here! 2 years too late, but hey, it's the final release that counts. If you were using 2.0 for whatever reason (since 3.0 has been stable for use for an year now), time to upgrade. Like, right now. The number of changes is immense and barely countable. There's too. much. new stuff. when coming from 2.0.

For 2.0 users:

  • Switched from discord.io to Eris.
  • The dashboard has received various improvements.
  • Rewrote the command framework to be much more flexible.
  • Timers now run accurately making use of the database.
  • /request has been improved and now has a 24-hour cooldown.
  • FIFA commands have been removed (may be brought back in the future).
  • Commands are now re-evaluated when edited (in the event that a command fails to run).
  • New features were added to the dashboard, like bot autorole, text recognition on image send, and join/leave/ban messages.
  • New commands like /xkcd, /httpcat, /ocr, /eval, /safeeval, /userinfo, /serverinfo, /shutup and management commands for channels and emoji were added.
  • The bot is much less buggy and more mature and stable than before. Most commands have been improved with better responses.
  • Go through all the past releases here for a full list of changes:
    3.0.0-canary.8
    3.0.0-canary.7
    3.0.0-canary.6
    3.0.0-canary.5
    3.0.0-canary.4
    3.0.0-canary.3
    3.0.0-canary.2
    3.0.0-canary.1
    3.0.0-canary.0

Databases used for IveBot 2.0 will need to be upgraded manually.

Run the following in Mongo Shell to upgrade:

// This will reset public roles and join/leave messages for all servers, but is needed for them to work again and to prevent error messages
use ivebot

const servers = db.servers.find({}).toArray().filter(i => i.joinLeaveMessages)

db.servers.updateMany({ '_id': { $in: servers.map(i => i._id) } }, { $unset: { 'joinLeaveMessages.channelName': '' }, $set: { 'joinLeaveMessages.channel': '' } })

print(servers.map(i => i.serverID + ' = ' + (i.joinLeaveMessages.channelName || 'N/A')).join('\n'))

db.servers.updateMany({ addRoleForAll: true }, { $set: { addRoleForAll: '' } })

db.servers.updateMany({ addRoleForAll: false }, { $set: { addRoleForAll: '' } })

For 3.0.0-canary.8 users, what's new:

  • New features like analytics support, ban messages, /robohash human, /ocr --hastebin (automatically used for long text), /ocr <message link>.
  • New commands like /xkcd, /httpcat, /creationtime.
  • Fixed /define.
  • Enhancements to /serverinfo, /safeEval (now as good as /eval), /uptime (process.uptime for accurate up-time).
  • Security fixes like a more secure /eval, fixed /safeEval vulnerability and limited URL download sizes in ocr/addemoji.
  • Latest Eris + allowedMentions is now used to secure against unwanted mentions.
  • /commands, /hulp and /gethelp aliases.
  • Database persisted /mute and /remindme timers to persist across restarts and fire reliably (finally).
  • Just a ton of bug fixes that make IveBot stable.

Minor Changes

  • Add full analytics support. Needs further testing and stabilization: 2d197e2
  • Add support for ban messages and fix /warns without an argument: fca2c60
  • Add /xkcd: 3e0b3e2
  • Update to Next.js 8.1 and Eris 0.10.0 \o/ also, fix bug with /avatar: 1cf4dc5
  • Update to Eris 0.10.1 to fix /serverinfo bug \o/ Eris 0.10.1 includes my PR to support /serverinfo GIF server icons. Also fixed bug where ban messages actually didn't work: 25b6db7
  • Add /robohash human, Nitro Boosting to /serverinfo and fix /define. /define now uses the Oxford Dictionary v2 API: b196a77
  • Update ESLint, add /httpcat, update /help. Fix /say with @everyone. Removed eslint-plugin-typescript and added eslint-plugin-react-hooks: 84e1318
  • Fix ban messages, autorole and add a lot of missing awaits. Update eval. /safeEval is now /eval standard. /eval will now secure the token if detected: 597db52
  • Update Eris, limit URL download sizes, enhance /ocr, add /creationtime. /ocr will upload really long text results to hasteb.in. Take advantage of allowedMentions to restrict mentions. Update /ping <website> response. Fix /serverinfo bug where it does not show nitro boosts even when present: 2f6cacd
  • Update to latest Eris, add /commands and /ocr --hastebin. Use default allowedMentions client option: d30b280
  • Add /xkcd search, use db for reminders and unmute tasks, update /uptime. /uptime uses process.uptime now instead of client.uptime. Add new /help aliases: b2698fb
  • Add /ocr <message link> for confunded people: 9eaa4d0

Patches

  • Use PNG instead of JPEG, fix bug with incorrect role names: 2a428c3
  • Fix images to be 2048 size and update remoteexec and ping: 11e4d4c
  • Enable TS esModuleInterop and fix bot autorole. Add types for isomorphic-unfetch and ms: fbc0296
  • Small refactors, fixes for /addemoji and /slowmode, update /leave: 58072bf
  • Fix /eval bugs and /safeeval security vulnerability. Small perf boost: c01b893
  • .get better than .find along with some minor tweaks: 27b40df
  • Update to Eris 0.11.1 and update the error handler: ab3f338
  • Remove tons of useless ESLint comments, update now.json and /token. Add /oppress as a /mute alias: 3af0d1b
  • Update Eris and fix /define errors: fa06c43
  • Fix /creationtime and remove help export: c4444b6
  • Check for permissions in all admin commands, update /ec and README: fbe72a5

v3.0.0-canary.8

09 Apr 16:51
05986e5

Choose a tag to compare

v3.0.0-canary.8 Pre-release
Pre-release

🎉

As we near v3.0, this is one of the final releases before we begin with RC releases. This release was mainly focused on stabilization and ensuring the code base is as well structured and bug-free as possible. Thanks a lot to community members to help find bugs and make this release possible 🎊 (shout-out to Lexply#8711, VR#0124, Sanguineous#5802, N̞̐ͭ҉̷̲͎í̯̓x̅̐͠x҉͋͌͜҉̮̺ͬo̞ͯ̀#8690 and more)

We also dropped tracking channels by name in join/leave/ban messages (yes, ban messages are a thing now 🎉) which is sure to break every deployment single-handedly, but never fear, this small snippet of code will quickly fix your database and inform you servers which have been affected.

use ivebot

const servers = db.servers.find({}).toArray().filter(i => i.joinLeaveMessages)

db.servers.updateMany({ '_id': { $in: servers.map(i => i._id) } }, { $unset: { 'joinLeaveMessages.channelName': '' }, $set: { 'joinLeaveMessages.channel': '' } })

print(servers.map(i => i.serverID + ' = ' + (i.joinLeaveMessages.channelName || 'N/A')).join('\n'))

Overall, the release is one of IveBot's final canary releases, and will result eventually in 3.0, a culmination of work since April 2018 when work initially started.

Major Changes

  • [BREAKING] Add support for ban messages and track channel by ID: 7f566c6
  • Change channelID field in GraphQL to channel: 2a90021

Minor Changes

  • Refined database handling for the dashboard. The warnings collection is end-to-end controlled already. This file is the only code editing server settings: 19156ff
  • Revamped and updated help: 42735ad
  • Massive performance improvements to login and basic OAuth support: 3830073
  • Updated to Next.js 8.0 for performance 🚀 and fix linting errors. Also updated other packages: ae55c21

Patches

  • Fix /ban and /kick not working + /help camelCase: d8c4d67
  • Update eval, add suggest as alias and add image size to /addEmoji: 2b92545
  • Fix public role permissions and userinfo colors. Add Math.js docs: 4be02dd