GuildDemote() loop --> Error 307 Kicked from Server
Even with a 5-second zo_callLater() delay between calls, attempting any automation of guild ranks leads to the dreaded kick from server for message spam, followed by "Error 307 Booted from server" for ten minutes.
Is this API even callable at all? If a 5-second delay still triggers the ban, I'm not about to attempt it again even with 10 seconds between calls. How does the UI itself avoid a ban (because I could certainly manually promote/demote more than 1 player every 5 seconds). I've got a couple dozen promotions/demotions pending in my 500-member guild, and not about to spend hours doing them manually. --Z Lua Code:
|
Can your addon run as a background process? Wouldn't it be better to set the interval to a time that won't trigger the 307?
|
You call promote/demote in a loop without any interval inbetween in your SetRank function. Every single of these calls is counted towards the command spam limit. You will have to isolate each call in order to not get kicked.
|
Quote:
Also, not shown here, I make ~500 GetGuildMemberInfo() calls, in a tight loop, before starting the zo_callLater() promote/demote sequence. Those calls probably count against the command spam limit, which means I'm starting on thin ice. I'll add a big delay after the GetGuildMemberInfo() loop, and de-loop the promote/demote cycle. And not test this until I'm done with my dailies, just in case I get another 10-minute time out. ^_^ Thank you for the code review and shared wisdom! --- edit --- Success! 1. Remove the 500x GetGuildMemberInfo() loop at the start. Replace with individual GetGuildMemberIndexFromDisplayName() + GetGuildMemberInfo() calls inside the zo_callLater() sequence. 2. Increase zo_callLater() delay to 10 seconds between each guild member's promotion/demotion. Took 900 seconds to get through 90 guildies. Was still able to promote/demote in a for-loop for those few guildies who were moved 2 or 3 ranks. --Z |
GetGuildMemberInfo is not an issue since it just returns the info that you already have locally on the client. I call that quite liberally in my addons and never had any issues.
What does create issues are functions that need to communicate with the server (e.g. editing notes, changing ranks, inviting members). Unfortunately there is no documentation or api available to tell us how many calls are allowed for each function and which functions share the same limit. For example group map pings seem to run on a different counter than guild functions. |
All times are GMT -6. The time now is 07:12 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI