2023-11-19 15:44:13 +01:00
|
|
|
package net.anvilcraft.anvillib.cosmetics.remote.thread;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.net.URI;
|
|
|
|
|
|
|
|
import net.anvilcraft.anvillib.AnvilLib;
|
|
|
|
import net.anvilcraft.anvillib.cosmetics.remote.RemoteCosmetic;
|
|
|
|
import net.anvilcraft.anvillib.cosmetics.remote.RemoteCosmeticProvider;
|
|
|
|
import net.anvilcraft.anvillib.cosmetics.remote.model.CosmeticData;
|
|
|
|
|
|
|
|
public class CosmeticLoaderThread extends FileDownloaderThread {
|
|
|
|
private URI url;
|
2023-11-24 18:52:05 +01:00
|
|
|
private RemoteCosmeticProvider provider;
|
2023-11-19 15:44:13 +01:00
|
|
|
|
|
|
|
public CosmeticLoaderThread(URI url, RemoteCosmeticProvider provider) {
|
|
|
|
super("0.2.0");
|
|
|
|
this.url = url;
|
|
|
|
this.provider = provider;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
try {
|
|
|
|
CosmeticData data = this.loadJson(url, CosmeticData.class);
|
2023-11-24 18:52:05 +01:00
|
|
|
if (data == null)
|
|
|
|
throw new IOException("Cosmetic not found");
|
2023-11-19 15:44:13 +01:00
|
|
|
RemoteCosmetic cosmetic = new RemoteCosmetic(data.id);
|
|
|
|
this.provider.cosmetics.put(data.id, cosmetic);
|
|
|
|
this.provider.loadAssets(data, cosmetic);
|
|
|
|
} catch (IOException e) {
|
|
|
|
AnvilLib.LOGGER.error("Can't load cosmetic", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|