All I'm saying is that in my opinion (loadtime mods excluded, i.e. catalyst, wt_shit, etc.) this is the first time we have a mod that is acting in an intrusive manner against other addons. You're welcome to do what you want, and if you do-- that's fine. No I won't quit the game if Slouken implements priority. I'll implement
I would rather see you hook the function, and keep a running average of cps for each prefix and if the user is booted, provide that information on startup so the user can make an educated decision. If it is of your opinion that you should provide a library that prevents the user from being kicked off, at the expense of latency in the messaging system (i don't entirely disagree) then I think you need to give hooked addons their own slice of the pie.
I know your goal is for everyone to use your library, and hopefully many will (using priorities correctly would be nice to say the least), but if people choose to write their own throttling system (some certainly will) then it would be the best to operate nicely within that environment, otherwise like I said people will write code to disable your throttling mechanism)
I'm just expressing my opinion (loudly) here, and it should be taken as such.
Futhermore.. my addon could send an average of 10 messages over the course of an hour.. but those messages are EXTREMELY critical. The fact that some outside process could delay my addons messages any more than latency allows is just entirely unacceptable. If people are being disconnected, its trivial to provide a function for them that gives statistics on which addons are using a high amount of bandwidth (you could even have a nice meter). You can do this by hooking SendAddOnMessage() which could call the original function IMMEDIATELY and then do some work on the data, to show that AddonX (or prefix Y) is spamming the crap out of your chat channels.
Educate the users, don't make decisions for addon authors for a problem that won't hit more than 10% of the userbase in the bad case. Mikk, I normally agree with you 100% on the things you do, but I just can't stand by this sneaky method of usurping other authors power. If its a matter of protecting the users, make the bandwidth meter that I was talking about. If its a matter of making sure authors don't do stupid things, audit their code and educate the authors AND users on the issues.
I don't want to be forced to write an addon that is written specifically with the intent to disable your library if it exists, or completely overwrite it-- but thats how bad of an idea I think that portion of the code is.
I'm all for constructive discussion, but we didn't get anywhere in the channel last night.
I would like to see the hooking option completely removed. It is BAD BAD BAD BAD BAD BAD BAD BAD. You are saying "use my library, or someone else will completely bork your time sensitive addon". It goes against everything we've always done with addons-- safe hooking, shared event handlers.. everything.
Your addon should NEVER affect mine if I choose not to use it.
The rest I'm completely okay with-- but I would liken this to malware. I think it is a bad idea.