3.0.0
π π π π π π π π π π
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