diff --git a/Common/source/customskinloader/fake/FakeSkinManager.java b/Common/source/customskinloader/fake/FakeSkinManager.java index 3574b91..9787911 100644 --- a/Common/source/customskinloader/fake/FakeSkinManager.java +++ b/Common/source/customskinloader/fake/FakeSkinManager.java @@ -24,24 +24,20 @@ import net.minecraft.client.renderer.ThreadDownloadImageData; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.resources.DefaultPlayerSkin; -import net.minecraft.client.resources.SkinManager; import net.minecraft.util.ResourceLocation; -public class FakeSkinManager extends SkinManager { +public class FakeSkinManager{ private static final ExecutorService THREAD_POOL = new ThreadPoolExecutor(0, 2, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue()); private final TextureManager textureManager; public FakeSkinManager(TextureManager textureManagerInstance, File skinCacheDirectory, MinecraftSessionService sessionService) { - super(textureManagerInstance, skinCacheDirectory, sessionService); this.textureManager=textureManagerInstance; HttpTextureUtil.defaultCacheDir=skinCacheDirectory; } - @Override public ResourceLocation loadSkin(MinecraftProfileTexture profileTexture, Type textureType){ return this.loadSkin(profileTexture, textureType, null); } - @Override public ResourceLocation loadSkin(final MinecraftProfileTexture profileTexture, final Type textureType, final SkinAvailableCallback skinAvailableCallback){ HttpTextureInfo info=HttpTextureUtil.toHttpTextureInfo(profileTexture.getUrl()); @@ -57,7 +53,6 @@ public class FakeSkinManager extends SkinManager { } return resourcelocation; } - @Override public void loadProfileTextures(final GameProfile profile, final SkinAvailableCallback skinAvailableCallback, final boolean requireSecure){ THREAD_POOL.submit(new Runnable(){ public void run(){ @@ -74,7 +69,6 @@ public class FakeSkinManager extends SkinManager { } }); } - @Override public Map loadSkinFromCache(GameProfile profile){ return CustomSkinLoader.loadProfileFromCache(profile); } diff --git a/Forge/source/customskinloader/forge/ForgeMod.java b/Forge/source/customskinloader/forge/ForgeMod.java index aacc52f..279c3eb 100644 --- a/Forge/source/customskinloader/forge/ForgeMod.java +++ b/Forge/source/customskinloader/forge/ForgeMod.java @@ -2,7 +2,7 @@ package customskinloader.forge; import net.minecraftforge.fml.common.Mod; -@Mod(modid = "customskinloader", name = "CustomSkinLoader", version = "@MOD_FULL_VERSION@", clientSideOnly=true) +@Mod(modid = "customskinloader", name = "CustomSkinLoader", version = "@MOD_FULL_VERSION@", clientSideOnly=true, acceptedMinecraftVersions="[1.8,)") public class ForgeMod{ } \ No newline at end of file diff --git a/Forge/source/customskinloader/forge/ForgeSkinManager.java b/Forge/source/customskinloader/forge/ForgeSkinManager.java new file mode 100644 index 0000000..f7227d4 --- /dev/null +++ b/Forge/source/customskinloader/forge/ForgeSkinManager.java @@ -0,0 +1,55 @@ +package customskinloader.fake; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.google.common.collect.Maps; +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.minecraft.MinecraftProfileTexture; +import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; +import com.mojang.authlib.minecraft.MinecraftSessionService; + +import customskinloader.CustomSkinLoader; +import customskinloader.fake.FakeSkinManager; +import customskinloader.utils.HttpTextureUtil; +import customskinloader.utils.HttpTextureUtil.HttpTextureInfo; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.IImageBuffer; +import net.minecraft.client.renderer.ThreadDownloadImageData; +import net.minecraft.client.renderer.texture.ITextureObject; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.DefaultPlayerSkin; +import net.minecraft.client.resources.SkinManager; +import net.minecraft.util.ResourceLocation; + +public class FakeSkinManager extends SkinManager { + private FakeSkinManager fakeManager;//Fake Skin Manager + + public FakeSkinManager(TextureManager textureManagerInstance, File skinCacheDirectory, MinecraftSessionService sessionService) { + super(textureManagerInstance, skinCacheDirectory, sessionService); + this.fakeManager=new FakeSkinManager(textureManagerInstance,skinCacheDirectory,sessionService); + } + + @Override + public ResourceLocation loadSkin(MinecraftProfileTexture profileTexture, Type textureType){ + return this.loadSkin(profileTexture, textureType, null); + } + @Override + public ResourceLocation loadSkin(final MinecraftProfileTexture profileTexture, final Type textureType, final SkinAvailableCallback skinAvailableCallback){ + return this.fakeManager.loadSkin(profileTexture, textureType, skinAvailableCallback); + } + @Override + public void loadProfileTextures(final GameProfile profile, final SkinAvailableCallback skinAvailableCallback, final boolean requireSecure){ + this.fakeManager.loadProfileTextures(profile, skinAvailableCallback, requireSecure); + } + @Override + public Map loadSkinFromCache(GameProfile profile){ + return this.fakeManager.loadSkinFromCache(profile); + } +}