Tried converting player name to uuid from third-party api
ziceptor opened this issue · 17 comments
forge-1.11.2-13.20.0.2201-universal.jar
spongeforge-1.11.2-2201-6.0.0-BETA-2023.jar
ChangeSkin.jar latest
`[19:55:32] [Server thread/INFO] [nucleus]: ziceptor ran the command: /setskin blabla
Exception in thread "Thread-18" эт 11, 2017 7:55:33 PM com.github.games647.changeskin.core.MojangSkinApi getUUIDFromAPI
SEVERE: Tried converting player name to uuid from third-party api
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
at com.google.gson.Gson.fromJson(Gson.java:815)
at com.google.gson.Gson.fromJson(Gson.java:768)
at com.google.gson.Gson.fromJson(Gson.java:717)
at com.google.gson.Gson.fromJson(Gson.java:689)
at com.github.games647.changeskin.core.MojangSkinApi.getUUIDFromAPI(MojangSkinApi.java:103)
at com.github.games647.changeskin.core.MojangSkinApi.getUUID(MojangSkinApi.java:61)
at com.github.games647.changeskin.sponge.tasks.NameResolver.run(NameResolver.java:42)
at org.spongepowered.api.scheduler.Task$Builder.lambda$execute$0(Task.java:138)
at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:183)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:338)
at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:70)
at com.google.gson.Gson.fromJson(Gson.java:803)
... 13 more
`
Response of the third-party author
{
"error": "This API has been removed due to causing more issues than it's worth fixing."
}
Sadly. mcapi.ca was the best service so far.
I'm not sure. Maybe this will help? Unfortunately there is no English. But you can use a translator.
http://docs.ely.by/skin-system.html
It doesn't provide the data I need. A digital signature by Mojang is required otherwise the minecraft client will decline to accept the skin data.
This will help in solving the problem?
https://mineskin.org/
MineSkin.org allows you to generate skin texture data signed by Mojang.
These can be used on ingame skull blocks or to change a player's skin using some packet magic :).
[Lib] MineskinSponge - Easy texture to skin conversion
https://forums.spongepowered.org/t/lib-mineskinsponge-easy-texture-to-skin-conversion/16293
There is a plugin (Bukkit/Spigot/Sponge). In 1.11.2 doesn't work. On 1.10.2 is not checked. I think you would be interested. ely.by/skinsystem-plugin/elyby-skinsystem-0.1.1.jar
Another question. Request to mojang is sent at every change of skin? Or load from the cache?
That is enough to have one license client? Others will be able to install from the cache?
TLauncher (http://tlaun.ch/jar) somehow works with Ely.by. Unfortunately there is no source code. It is possible to decompile. Is it possible to integrate the plugin?