From 68fcde4c2cf840e8c2391da001e0f257b6317f51 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 23 Aug 2018 01:26:50 +0200 Subject: [PATCH] Move cache busting to legacy server itself --- .../java/com/voxelmodpack/hdskins/HDSkinManager.java | 7 +------ .../com/voxelmodpack/hdskins/PreviewTextureManager.java | 5 ++--- .../java/com/voxelmodpack/hdskins/SkinUploader.java | 2 +- .../com/voxelmodpack/hdskins/skins/LegacySkinServer.java | 3 ++- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java b/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java index cb3d02a0..eb86fa73 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/HDSkinManager.java @@ -46,7 +46,6 @@ import java.lang.reflect.Modifier; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Collections; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; @@ -161,10 +160,6 @@ public final class HDSkinManager implements IResourceManagerReloadListener { return skin == LOADING ? Optional.empty() : Optional.of(skin); } - public static String bustCache(String url) { - return url + (url.indexOf('?') > -1 ? '&' : '?') + Long.toString(new Date().getTime() / 1000); - } - private void loadTexture(GameProfile profile, final Type type, final SkinAvailableCallback callback) { if (profile.getId() == null) { return; @@ -182,7 +177,7 @@ public final class HDSkinManager implements IResourceManagerReloadListener { // schedule texture loading on the main thread. TextureLoader.loadTexture(resource, new ThreadDownloadImageETag( new File(LiteLoader.getAssetsDirectory(), "hd/" + skinDir + texture.getHash().substring(0, 2) + "/" + texture.getHash()), - bustCache(texture.getUrl()), + texture.getUrl(), DefaultPlayerSkin.getDefaultSkinLegacy(), buffs)); } diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/PreviewTextureManager.java b/src/hdskins/java/com/voxelmodpack/hdskins/PreviewTextureManager.java index 045e7329..9b6cc516 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/PreviewTextureManager.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/PreviewTextureManager.java @@ -29,14 +29,13 @@ public class PreviewTextureManager { } MinecraftProfileTexture texture = textures.get(type); - String url = HDSkinManager.bustCache(texture.getUrl()); ISkinAvailableCallback buff = new ImageBufferDownloadHD(type, () -> { if (callback != null) { - callback.skinAvailable(type, location, new MinecraftProfileTexture(url, Maps.newHashMap())); + callback.skinAvailable(type, location, new MinecraftProfileTexture(texture.getUrl(), Maps.newHashMap())); } }); - PreviewTexture skinTexture = new PreviewTexture(texture.getMetadata("model"), url, def, buff); + PreviewTexture skinTexture = new PreviewTexture(texture.getMetadata("model"), texture.getUrl(), def, buff); TextureLoader.loadTexture(location, skinTexture); diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/SkinUploader.java b/src/hdskins/java/com/voxelmodpack/hdskins/SkinUploader.java index f6ee5b66..01f0f863 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/SkinUploader.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/SkinUploader.java @@ -192,7 +192,7 @@ public class SkinUploader implements Closeable { } public CompletableFuture downloadSkin() { - String loc = HDSkinManager.bustCache(remotePlayer.getLocal(skinType).getRemote().getUrl()); + String loc = remotePlayer.getLocal(skinType).getRemote().getUrl(); return new NetClient("GET", loc).async(HDSkinManager.skinDownloadExecutor); } diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java b/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java index 974aa934..ed806d8e 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/skins/LegacySkinServer.java @@ -18,6 +18,7 @@ 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; @@ -141,7 +142,7 @@ public class LegacySkinServer implements SkinServer { private static String getPath(String address, MinecraftProfileTexture.Type type, GameProfile profile) { String uuid = UUIDTypeAdapter.fromUUID(profile.getId()); String path = type.toString().toLowerCase() + "s"; - return String.format("%s/%s/%s.png", address, path, uuid); + return String.format("%s/%s/%s.png?%s", address, path, uuid, Long.toString(new Date().getTime() / 1000)); } @Override