+ Optimizations? I’ve attempted to have better queries and database management, I’ve also added a small system that determines whether or not a specific query is required or not.
+ Speed improvements to MySQL databases? (No longer creates a new connection for every query, it does however queue up queries due to limitations).
+ Changed the value types of both the currency and time watched storage from int (32bit integer) to long (64bit integer), this will increase the limit of max currency from 2,147,483,647 to 9,223,372,036,854,775,807, now all you gotta do is spend a lifetime attempting to acquire that amount OpieOP.
+ Extensions may now alter display names, chat messages and more.
+ Support for hosting indication.
+ Reward your viewers for tuning in the chat of whoever you host (this only reward people who have been in your channel first, meaning that people who haven’t visited your channel but are in that channel will NOT acquire currency). [Will be enabled in the next 1.8 update]
+ Support for partnered channels that do not participate in the subscription program.
* Better management with the host for usage reports, it will no longer download the full list over and over again, the list will be downloaded once and then only the list of active users in the last 5 minutes will be downloaded, this will decrease bandwidth usage for both ends.
* Fixed display name checks when no database is available.
* Base ground for more changes and improvements that are currently not documented have been set, these features will be slowly enabled/added and improved through updates.
** The extensions have been updated to support the changes.
API Changes, Version 4:
+ Added a global command handler.
+ Added Events.Channel.OnStartHosting(string target) and Events.Channel.OnStopHosting().
+ Added OnSendMessage(ref string message, ref ActionSetting actionsetting) event, allowing you to alter chat messages.
* Chat.SendMessage(…..)’s last parameter has been updated from bool to a new enum, ActionSetting with 3 options, ForceAction to force the message to be sent with the action command (/me), UseSetting to use the user setting (this is the default value) and ForceNormal which will force the message to be sent normally.
* The function Users.GetDisplayName(user, bool wait = false) has been updated to Users.GetDisplayName(user, NameAlterLevel altering = NameAlterLevel.None, bool wait = false), the “altering” parameter is a new enum which indicates how much the name can be altered, default is None, meaning not at all, other options are Cosmetic for changes around the name / the name’s caps, and Full for any changes, it can be a totally different name.
* Command definition has been changed, you are no required to include the extension as the first parameter.
* Command handlers’ 2nd parameter is now the Command class (previously inner class) instead of string. You may used the Command class to view some data about the command (use delay, who may use it, etc).
Even though I just released this version I am not certain that everything is working properly, please do let me know if you encounter any issues, especially if you’re a MySQL user.