ChangeSkinX

ChangeSkinX

446k Downloads

API connections are not changed to proxy mode after a 400 error

Alexre opened this issue ยท 10 comments

commented

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?

commented

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.

commented

image
image

commented

Also, why the error 400 is not rate limited error

400 is bad request. Mojang servers have again issues.

commented

Could you consider using mure APIs like skinrestorer do? Your plugin is the most efficient but it's not working correctly atm

commented

@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

commented

having skin issue too, today, many playear are geting alex/steeve also if they are premium

commented

Finally I could reproduce it. Working on it.

commented

Wow Mojang really changed the data format representation to pretty json. That's an easy fix.

commented

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.

commented

I guess is the issue I have ? #186

I was checking other plugins like SkinRestorer and they seem to have fixed it yesterday?