diff --git a/http-service/src/main/java/net/runelite/http/service/cache/CacheController.java b/http-service/src/main/java/net/runelite/http/service/cache/CacheController.java index f86f453412..6ba8290bcf 100644 --- a/http-service/src/main/java/net/runelite/http/service/cache/CacheController.java +++ b/http-service/src/main/java/net/runelite/http/service/cache/CacheController.java @@ -24,35 +24,20 @@ */ package net.runelite.http.service.cache; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.List; import java.util.stream.Collectors; -import javax.imageio.ImageIO; import lombok.extern.slf4j.Slf4j; import net.runelite.cache.ConfigType; import net.runelite.cache.IndexType; import net.runelite.cache.definitions.ItemDefinition; -import net.runelite.cache.definitions.ModelDefinition; import net.runelite.cache.definitions.NpcDefinition; import net.runelite.cache.definitions.ObjectDefinition; -import net.runelite.cache.definitions.SpriteDefinition; -import net.runelite.cache.definitions.TextureDefinition; import net.runelite.cache.definitions.loaders.ItemLoader; -import net.runelite.cache.definitions.loaders.ModelLoader; import net.runelite.cache.definitions.loaders.NpcLoader; import net.runelite.cache.definitions.loaders.ObjectLoader; -import net.runelite.cache.definitions.loaders.SpriteLoader; -import net.runelite.cache.definitions.loaders.TextureLoader; -import net.runelite.cache.definitions.providers.ItemProvider; -import net.runelite.cache.definitions.providers.ModelProvider; -import net.runelite.cache.definitions.providers.SpriteProvider; -import net.runelite.cache.definitions.providers.TextureProvider; import net.runelite.cache.fs.ArchiveFiles; -import net.runelite.cache.fs.Container; import net.runelite.cache.fs.FSFile; -import net.runelite.cache.item.ItemSpriteFactory; import net.runelite.http.api.cache.Cache; import net.runelite.http.api.cache.CacheArchive; import net.runelite.http.api.cache.CacheIndex; @@ -61,11 +46,9 @@ import net.runelite.http.service.cache.beans.CacheEntry; import net.runelite.http.service.cache.beans.IndexEntry; import net.runelite.http.service.util.exception.NotFoundException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @@ -222,98 +205,6 @@ public class CacheController return itemdef; } - @GetMapping(path = "item/{itemId}/image", produces = "image/png") - public ResponseEntity getItemImage( - @PathVariable int itemId, - @RequestParam(defaultValue = "1") int quantity, - @RequestParam(defaultValue = "1") int border, - @RequestParam(defaultValue = "3153952") int shadowColor - ) throws IOException - { - final CacheEntry cache = cacheService.findMostRecent(); - ItemProvider itemProvider = new ItemProvider() - { - @Override - public ItemDefinition provide(int itemId) - { - try - { - return getItem(itemId); - } - catch (IOException ex) - { - log.warn(null, ex); - return null; - } - } - }; - ModelProvider modelProvider = new ModelProvider() - { - @Override - public ModelDefinition provide(int modelId) throws IOException - { - IndexEntry indexEntry = cacheService.findIndexForCache(cache, IndexType.MODELS.getNumber()); - ArchiveEntry archiveEntry = cacheService.findArchiveForIndex(indexEntry, modelId); - byte[] archiveData = Container.decompress(cacheService.getArchive(archiveEntry), null).data; - return new ModelLoader().load(modelId, archiveData); - } - }; - SpriteProvider spriteProvider = new SpriteProvider() - { - @Override - public SpriteDefinition provide(int spriteId, int frameId) - { - try - { - IndexEntry indexEntry = cacheService.findIndexForCache(cache, IndexType.SPRITES.getNumber()); - ArchiveEntry archiveEntry = cacheService.findArchiveForIndex(indexEntry, spriteId); - byte[] archiveData = Container.decompress(cacheService.getArchive(archiveEntry), null).data; - SpriteDefinition[] defs = new SpriteLoader().load(spriteId, archiveData); - return defs[frameId]; - } - catch (Exception ex) - { - log.warn(null, ex); - return null; - } - } - }; - - TextureProvider textureProvider2 = new TextureProvider() - { - @Override - public TextureDefinition[] provide() - { - try - { - IndexEntry indexEntry = cacheService.findIndexForCache(cache, IndexType.TEXTURES.getNumber()); - ArchiveEntry archiveEntry = cacheService.findArchiveForIndex(indexEntry, 0); - ArchiveFiles archiveFiles = cacheService.getArchiveFiles(archiveEntry); - TextureLoader loader = new TextureLoader(); - TextureDefinition[] defs = new TextureDefinition[archiveFiles.getFiles().size()]; - int i = 0; - for (FSFile file : archiveFiles.getFiles()) - { - TextureDefinition def = loader.load(file.getFileId(), file.getContents()); - defs[i++] = def; - } - return defs; - } - catch (Exception ex) - { - log.warn(null, ex); - return null; - } - } - }; - - BufferedImage itemImage = ItemSpriteFactory.createSprite(itemProvider, modelProvider, spriteProvider, textureProvider2, - itemId, quantity, border, shadowColor, false); - ByteArrayOutputStream bao = new ByteArrayOutputStream(); - ImageIO.write(itemImage, "png", bao); - return ResponseEntity.ok(bao.toByteArray()); - } - @GetMapping("object/{objectId}") public ObjectDefinition getObject( @PathVariable int objectId