{"action":"created","issue":{"url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/108","repository_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs","labels_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/108/labels{/name}","comments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/108/comments","events_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/108/events","html_url":"https://github.com/hammerandchisel/discord-api-docs/issues/108","id":166186958,"number":108,"title":"[Libraries] Rate limit compliant","user":{"login":"jhgg","id":5489149,"avatar_url":"https://avatars.githubusercontent.com/u/5489149?v=3","gravatar_id":"","url":"https://api.github.com/users/jhgg","html_url":"https://github.com/jhgg","followers_url":"https://api.github.com/users/jhgg/followers","following_url":"https://api.github.com/users/jhgg/following{/other_user}","gists_url":"https://api.github.com/users/jhgg/gists{/gist_id}","starred_url":"https://api.github.com/users/jhgg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhgg/subscriptions","organizations_url":"https://api.github.com/users/jhgg/orgs","repos_url":"https://api.github.com/users/jhgg/repos","events_url":"https://api.github.com/users/jhgg/events{/privacy}","received_events_url":"https://api.github.com/users/jhgg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":26,"created_at":"2016-07-18T20:34:42Z","updated_at":"2016-08-26T22:20:14Z","closed_at":null,"body":"We're going to start delisting API libraries that are not properly implementing rate limits. The whole \"get 429ed and then retry\" method doesn't work that well, as it seems this is incredibly prone to getting the bot in a cascading failure mode that just spams the API server. We don't want to keep having to ban bots every day who are getting stuck in these loops (it's becoming a bit of a problem) - so we are going to start discouraging the use of libraries (either by delisting them - or putting a disclaimer/warning until the author implements this feature properly) that do not properly throttle requests. This means that the client should be aware that it is being rate limited on a given method, and not attempt to send any requests during a period that it should know would be immediately rate limited. Please refer to our new [docs on Rate Limiting](https://github.com/hammerandchisel/discord-api-docs/blob/master/docs/topics/RATE_LIMITS.md).\r\n\r\nBelow is a list of libraries that are known to do queuing/throttling properly:\r\n\r\n- [ ] Discord.Net\r\n- [ ] DiscordSharp\r\n- [x] dscord\r\n- [ ] Discordgo\r\n- [x] Discord4J\r\n- [ ] Javacord\r\n- [ ] JDA\r\n- [ ] Discordia\r\n- [ ] litcord\r\n- [ ] discordie\r\n- [ ] discord.io\r\n- [ ] discord.js\r\n- [ ] Eris\r\n- [ ] DiscordPHP\r\n- [ ] discord.py\r\n- [ ] discordrb\r\n- [ ] discord-rs\r\n- [ ] DiscordUnity\r\n\r\nLibrary authors, please comment here letting me know if your lib does implement these properly, and perhaps with a link to the source code so we can take a quick look and make sure it looks right. "},"comment":{"url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/comments/242865770","html_url":"https://github.com/hammerandchisel/discord-api-docs/issues/108#issuecomment-242865770","issue_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/108","id":242865770,"user":{"login":"nopjmp","id":5185561,"avatar_url":"https://avatars.githubusercontent.com/u/5185561?v=3","gravatar_id":"","url":"https://api.github.com/users/nopjmp","html_url":"https://github.com/nopjmp","followers_url":"https://api.github.com/users/nopjmp/followers","following_url":"https://api.github.com/users/nopjmp/following{/other_user}","gists_url":"https://api.github.com/users/nopjmp/gists{/gist_id}","starred_url":"https://api.github.com/users/nopjmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nopjmp/subscriptions","organizations_url":"https://api.github.com/users/nopjmp/orgs","repos_url":"https://api.github.com/users/nopjmp/repos","events_url":"https://api.github.com/users/nopjmp/events{/privacy}","received_events_url":"https://api.github.com/users/nopjmp/received_events","type":"User","site_admin":false},"created_at":"2016-08-26T22:20:14Z","updated_at":"2016-08-26T22:20:14Z","body":"I'm showing that discord.py has this implemented in [this commit](https://github.com/Rapptz/discord.py/commit/1fba1b06faca31d07c9296b2badabfe22f173001)."}}
{"actor":{"display_login":"nopjmp"}}