From 74c1e6ffe180f313a47489480b1844a7d9b1badc Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 3 Sep 2018 13:40:16 +0200 Subject: [PATCH] Revert "Fix legacy skin changing issue. The ETag is now included in the hash." This reverts commit 0b30c127c40040dfff421ec5141e7293e1e25b48. --- .../voxelmodpack/hdskins/HDSkinManager.java | 3 +- .../hdskins/ThreadDownloadImageETag.java | 4 --- .../hdskins/skins/LegacySkinServer.java | 31 ++++++------------- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java b/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java index 0d5865bf..ea94d0ec 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java @@ -30,7 +30,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.network.NetworkPlayerInfo; -import net.minecraft.client.renderer.ThreadDownloadImageData; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.resources.DefaultPlayerSkin; import net.minecraft.client.resources.IResourceManager; @@ -174,7 +173,7 @@ public final class HDSkinManager implements IResourceManagerReloadListener { } } else { // schedule texture loading on the main thread. - TextureLoader.loadTexture(resource, new ThreadDownloadImageData( + TextureLoader.loadTexture(resource, new ThreadDownloadImageETag( new File(LiteLoader.getAssetsDirectory(), "hd/" + skinDir + texture.getHash().substring(0, 2) + "/" + texture.getHash()), texture.getUrl(), DefaultPlayerSkin.getDefaultSkinLegacy(), diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/ThreadDownloadImageETag.java b/src/hdskins/java/com/voxelmodpack/hdskins/ThreadDownloadImageETag.java index f9c4df07..d9d314b3 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/ThreadDownloadImageETag.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/ThreadDownloadImageETag.java @@ -30,10 +30,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.imageio.ImageIO; -/** - * @deprecated Now that legacy includes the etag in the hash, it is no longer required to save it to disk. - */ -@Deprecated public class ThreadDownloadImageETag extends SimpleTexture implements IBufferedTexture { private static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java b/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java index c43c4c63..b3606faa 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java @@ -9,21 +9,21 @@ import com.mojang.authlib.minecraft.MinecraftProfileTexture; import com.mojang.authlib.yggdrasil.response.MinecraftTexturesPayload; import com.mojang.util.UUIDTypeAdapter; import com.voxelmodpack.hdskins.HDSkinManager; + import net.minecraft.client.Minecraft; import net.minecraft.util.Session; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.Header; -import org.apache.http.HttpHeaders; -import org.apache.http.client.methods.HttpHead; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; import java.util.Date; import java.util.EnumMap; import java.util.Locale; import java.util.Map; import java.util.concurrent.CompletableFuture; + import javax.annotation.Nullable; @ServerType("legacy") @@ -83,24 +83,12 @@ public class LegacySkinServer implements SkinServer { } private MinecraftProfileTexture loadProfileTexture(GameProfile profile, String url) throws IOException { - try (MoreHttpResponses resp = MoreHttpResponses.execute(HDSkinManager.httpClient, new HttpHead(url))) { - if (!resp.ok()) { - throw new IOException("Bad response code: " + resp.getResponseCode() + ". URL: " + url); - } - logger.debug("Found skin for {} at {}", profile.getName(), url); - - Header eTagHeader = resp.getResponse().getFirstHeader(HttpHeaders.ETAG); - final String eTag = eTagHeader == null ? "" : StringUtils.strip(eTagHeader.getValue(), "\""); - - // Add the ETag onto the end of the texture hash. Should properly cache the textures. - return new MinecraftProfileTexture(url, null) { - - @Override - public String getHash() { - return super.getHash() + eTag; - } - }; + HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); + if (urlConnection.getResponseCode() / 100 != 2) { + throw new IOException("Bad response code: " + urlConnection.getResponseCode() + ". URL: " + url); } + logger.debug("Found skin for {} at {}", profile.getName(), url); + return new MinecraftProfileTexture(url, null); } @Override @@ -168,5 +156,4 @@ public class LegacySkinServer implements SkinServer { .append("gateway", gateway) .build(); } - }