Revert "Fix legacy skin changing issue. The ETag is now included in the hash."

This reverts commit 0b30c127c4.
This commit is contained in:
Sollace 2018-09-03 13:40:16 +02:00
parent e6b6a61176
commit 74c1e6ffe1
3 changed files with 10 additions and 28 deletions

View file

@ -30,7 +30,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.network.NetHandlerPlayClient;
import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.client.network.NetworkPlayerInfo;
import net.minecraft.client.renderer.ThreadDownloadImageData;
import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.ITextureObject;
import net.minecraft.client.resources.DefaultPlayerSkin; import net.minecraft.client.resources.DefaultPlayerSkin;
import net.minecraft.client.resources.IResourceManager; import net.minecraft.client.resources.IResourceManager;
@ -174,7 +173,7 @@ public final class HDSkinManager implements IResourceManagerReloadListener {
} }
} else { } else {
// schedule texture loading on the main thread. // 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()), new File(LiteLoader.getAssetsDirectory(), "hd/" + skinDir + texture.getHash().substring(0, 2) + "/" + texture.getHash()),
texture.getUrl(), texture.getUrl(),
DefaultPlayerSkin.getDefaultSkinLegacy(), DefaultPlayerSkin.getDefaultSkinLegacy(),

View file

@ -30,10 +30,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.imageio.ImageIO; 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 { public class ThreadDownloadImageETag extends SimpleTexture implements IBufferedTexture {
private static final Logger LOGGER = LogManager.getLogger(); private static final Logger LOGGER = LogManager.getLogger();

View file

@ -9,21 +9,21 @@ import com.mojang.authlib.minecraft.MinecraftProfileTexture;
import com.mojang.authlib.yggdrasil.response.MinecraftTexturesPayload; import com.mojang.authlib.yggdrasil.response.MinecraftTexturesPayload;
import com.mojang.util.UUIDTypeAdapter; import com.mojang.util.UUIDTypeAdapter;
import com.voxelmodpack.hdskins.HDSkinManager; import com.voxelmodpack.hdskins.HDSkinManager;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.util.Session; 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.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import java.io.IOException; import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date; import java.util.Date;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ServerType("legacy") @ServerType("legacy")
@ -83,24 +83,12 @@ public class LegacySkinServer implements SkinServer {
} }
private MinecraftProfileTexture loadProfileTexture(GameProfile profile, String url) throws IOException { private MinecraftProfileTexture loadProfileTexture(GameProfile profile, String url) throws IOException {
try (MoreHttpResponses resp = MoreHttpResponses.execute(HDSkinManager.httpClient, new HttpHead(url))) { HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection();
if (!resp.ok()) { if (urlConnection.getResponseCode() / 100 != 2) {
throw new IOException("Bad response code: " + resp.getResponseCode() + ". URL: " + url); throw new IOException("Bad response code: " + urlConnection.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;
}
};
} }
logger.debug("Found skin for {} at {}", profile.getName(), url);
return new MinecraftProfileTexture(url, null);
} }
@Override @Override
@ -168,5 +156,4 @@ public class LegacySkinServer implements SkinServer {
.append("gateway", gateway) .append("gateway", gateway)
.build(); .build();
} }
} }