API connections are not changed to proxy mode after a 400 error
Alexre opened this issue ยท 10 comments
What behaviour is observed:
//: # (What happened?) After the IP is rate limited, the api connections are not changed to proxy mode
What behaviour is expected:
//: # (What did you expect?) Continue getting skins via proxy
Steps/models to reproduce:
Plugin list:
Environment description
Latest waterfall job #341
Plugin version:
Bungee? Build from 29 april
Error Log:
Hastebin / Gist link of the error (if any)
https://hastebin.com/iquzubapoq.bash
also
https://hastebin.com/henohudafo.pl
Configuration:
Hastebin / Gist link of your config.yml file
https://hastebin.com/vazapakira.makefile (the proxies listed are working in the moment of the report)
Also, why the error 400 is not rate limited error but if I curl the url from my machine I get {"error":"TooManyRequestsException","errorMessage":"The client has sent too many requests within a certain amount of time"}
Should changeskin detect that error as a rate limit and switch to proxy mode?
Update: the plugin completely died, any skins shows, the ips are not rate limited. The uuid name conversion is done correctly and the skin data is on the database, but the players are not getting the skins applied.
Also, why the error 400 is not rate limited error
400 is bad request. Mojang servers have again issues.
Could you consider using mure APIs like skinrestorer do? Your plugin is the most efficient but it's not working correctly atm
@games647 I'm also trying on a test server with no affluence, the name to uuid is made and the skinurl is obtained too. And the database seems to assign it correctly, but the skin does not appear, and if it does, it will disappear after rejoin
having skin issue too, today, many playear are geting alex/steeve also if they are premium
Wow Mojang really changed the data format representation to pretty json. That's an easy fix.
Sorry for the big delay to everyone affected by this. A little background for anyone interested:
Mojang changed from
{"timestamp":1588530525476,"profileId":"0aaa2c13922a411bb6559b8c08404695","profileName":"games647","signatureRequired":true,"textures":{"SKIN":{"url":"http://textures.minecraft.net/texture/53af76b429bf1bfc465615eef1bbd80ffe3ec3af17d80579a5f9379e1a784025"}}}
to
{
"timestamp" : 1588531387545,
"profileId" : "0aaa2c13922a411bb6559b8c08404695",
"profileName" : "games647",
"signatureRequired" : true,
"textures" : {
"SKIN" : {
"url" : "http ://textures.minecraft.net/texture/53af76b429bf1bfc465615eef1bbd80ffe3ec3af17d80579a5f9379e1a784025"
}
}
}
Since the skin is signed by Mojang, the line breaks are important and break compatibility of ChangeSkin. SkinsRestorer shouldn't have this problem in the first place, because they don't decode and re-encode the skin. They take the normal encoded value. It's a different approach.
I guess is the issue I have ? #186
I was checking other plugins like SkinRestorer and they seem to have fixed it yesterday?