From 8341dc9fa3fc40e8d92fbd7fdbb79daeacfcea52 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Mon, 16 Dec 2019 21:06:17 +0100 Subject: [PATCH] Don't check overlay hash for overlays that didn't exist before (#2136) --- .../mixins/RSAbstractArchiveMixin.java | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractArchiveMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractArchiveMixin.java index 0ad010348f..89642eeb10 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractArchiveMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractArchiveMixin.java @@ -50,26 +50,30 @@ public abstract class RSAbstractArchiveMixin implements RSAbstractArchive final Logger log = client.getLogger(); final String path = String.format("/runelite/%s/%s", archiveId, groupId); - String overlayHash, originalHash; + // rsData will be null if this script didn't exist at first + if (rsData != null) + { + String overlayHash, originalHash; - try (final InputStream hashIn = getClass().getResourceAsStream(path + ".hash")) - { - overlayHash = CharStreams.toString(new InputStreamReader(hashIn)); - originalHash = Hashing.sha256().hashBytes(rsData).toString(); - } - catch (IOException e) - { - log.warn("Missing overlay hash for {}/{}", archiveId, groupId); - return rsData; - } + try (final InputStream hashIn = getClass().getResourceAsStream(path + ".hash")) + { + overlayHash = CharStreams.toString(new InputStreamReader(hashIn)); + originalHash = Hashing.sha256().hashBytes(rsData).toString(); + } + catch (IOException e) + { + log.warn("Missing overlay hash for {}/{}", archiveId, groupId); + return rsData; + } - // Check if hash is correct first, so we don't have to load the overlay file if it doesn't match - if (!overlayHash.equalsIgnoreCase(originalHash)) - { - log.warn("Mismatch in overlaid cache archive hash for {}/{}: {} != {}", - archiveId, groupId, overlayHash, originalHash); - overlayOutdated = true; - return rsData; + // Check if hash is correct first, so we don't have to load the overlay file if it doesn't match + if (!overlayHash.equalsIgnoreCase(originalHash)) + { + log.warn("Mismatch in overlaid cache archive hash for {}/{}: {} != {}", + archiveId, groupId, overlayHash, originalHash); + overlayOutdated = true; + return rsData; + } } try (final InputStream ovlIn = getClass().getResourceAsStream(path))