This is a continuation of the 220.127.116.11 update that came out a few hours ago. I HIGHLY recommend you read the patch notes for that update as well:
ewr_discord. This will prevent collisions with other addons...
This is a pretty significant update. Lots of database and variable names have been changed.
As I already stated, lots of variables have been changed. This is to comply with official XenForo resource standards which were set in place after the initial creation of this addon. These standards were created to prevent resource collisions and other possible issues. Until this update, this addon has never complied with these standards.
- Prefixes have been added to database columns added by this addon.
- Serialized data has been converted to JSON arrays as per new specifications.
Many of the files in this addon have been updated to reflect these changes. I may have missed something. I tested everything on my forum, as well as possible issues with disabling the addon, and everything seems to be working okay.
- The account sync cron job has been made faster. Instead of syncing 1 account every 5 minutes (which limits to 288 accounts per day); the cron has been updated to run every 1 minute (which limits to 1440 accounts per day).
- You can now redefine the sync buffer limit on the options page. In previous versions, an account could only be synced with Discord once every 24 hours. You can now redefine this limit to make the buffer longer or shorter if needed.
- The connected accounts list will now do a better job at showing the user's avatar. It will also now include the user's discriminator ID. Unfortunately, the data may be blank until the user disconnects and reconnects their account.
I think some of the sync issues people have been having is due to a misunderstanding of how accounts are synced. Every time an account is changed on XENFORO, it is moved automatically to the front of the sync queue. However, if an account was changed on DISCORD; there was no way for XenForo to know about the changes; until the next time the account came up in the sync queue. This of course meant an account would have to wait up to 24 hours (or even more if your forum had more than 288 synced accounts on it) before the next time it cycled into the sync queue.
This means, if an account was connected on XENFORO; it was synced immediately. If the account was ALREADY a member of the Discord server, then that user immediately got all their roles as needed and everything appeared to be working properly. However, if the account was NOT a member of of the Discord server, XenForo would have no account to sync to. Then of course, when the user would join the server after the fact, there is no way for XenForo to know the account is now available to sync. So that account would have to wait till the next time it comes up in the sync queue... or they can disconnect and reconnect their account on XENFORO to force themselves back to the front of the sync queue.
- WidgetBot has been having a lot of issues with their clusters. They shut down their official clusters, and then DisWeb became the official cluster... but then DisWeb had their domain stolen from them by an ex-staff member, so that had problems well. So the cluster/shard option has been changed from a dropdown menu to a simple text field with
disweb.dashflo.netas the default value. So now you'll be more easily able to change the cluster at will... you could even use your own cluster if thats what you want to do.
This is a significant update. While it has worked great on my servers for the past two weeks, so have the previous versions, and people still reported issues. So please inform me of any problems.
I've also theorized a possible "quirk". If you have a role set to
- A new "Discord log" has been added to the logs section of the admin CP. This log is mostly for debugging purposes. It will tell you what the bot is sending to and from Discord. This is a supplement to the already available user change logs in XenForo and Discord.
- The way roles are sync'd to and from Discord have been completely re-organized.
- If a role is set to
D->XF, and a user leaves your discord server; they will now properly have their usergroup change revoked.
- If you create a new role on your Discord, but you don't update your XF options to be aware of this new role, the system will now assume the role is set to "none" instead of dropping the role completely.
D->XF, and a user has received the usergroup change... but then you change the role to
XF->D, it would take TWO syncs for completely update a user. The first sync to eliminate the existing usergroup change, and then the second sync to properly apply the role changes.
Because people were CONSTANTLY asking for it, I've added the ability to reverse the sync of roles. Instead of syncing just from XenForo to Discord, you can now set it to sync from Discord to XenForo. You can not sync both ways, as as diff comparisons between two different data sets would be impossible. So you must choose which direction you which you sync in the admin CP.
- The "fast sync" feature has been removed. There was just no way to get the fast sync feature compatible with the new sync directions. However, instead of fast sync, I have set it so that edited users simply jump to the front of the sync queue.
- Added some additional error protection for those all too often situations where Discord's API can't be reached. This should stop some of the random error log spam.