diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-09-08 10:56:02 -0400 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-09-08 10:56:02 -0400 |
commit | e881432599f949aa6b8b633e44a356a05c6cff3f (patch) | |
tree | 6ea02b4b8a58b577f1fc28f8e9045307d1e27501 | |
parent | d28f37b4e4fe4185e8ac3a4bfa235b0361ebbe32 (diff) | |
download | Skyblocker-e881432599f949aa6b8b633e44a356a05c6cff3f.tar.gz Skyblocker-e881432599f949aa6b8b633e44a356a05c6cff3f.tar.bz2 Skyblocker-e881432599f949aa6b8b633e44a356a05c6cff3f.zip |
Refactor YggdrasilServicesKeyInfoMixin
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java index b283be24..21826087 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java @@ -1,5 +1,7 @@ package me.xmrvizzy.skyblocker.mixin; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo; import me.xmrvizzy.skyblocker.utils.Utils; import org.slf4j.Logger; @@ -7,7 +9,6 @@ import org.slf4j.LoggerFactory; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import java.util.*; @@ -20,14 +21,14 @@ public class YggdrasilServicesKeyInfoMixin { @Unique private static final List<Integer> ERROR_HASH_ARRAYLIST = new ArrayList<>(); - @Redirect(method = "validateProperty", at = @At(value = "INVOKE", target = "Ljava/util/Base64$Decoder;decode(Ljava/lang/String;)[B", remap = false), remap = false) - private byte[] skyblocker$replaceKnownWrongBase64(Base64.Decoder decoder, String signature) { + @WrapOperation(method = "validateProperty", at = @At(value = "INVOKE", target = "Ljava/util/Base64$Decoder;decode(Ljava/lang/String;)[B", remap = false), remap = false) + private byte[] skyblocker$replaceKnownWrongBase64(Base64.Decoder decoder, String signature, Operation<byte[]> decode) { try { - return decoder.decode(signature); + return decode.call(decoder, signature.replaceAll("[^A-Za-z0-9+/=]","")); } catch (IllegalArgumentException e) { if (Utils.isOnSkyblock()) { if (REPLACEMENT_HASHMAP.containsKey(signature)) { - return decoder.decode(REPLACEMENT_HASHMAP.get(signature)); + return decode.call(decoder, REPLACEMENT_HASHMAP.get(signature)); } int signatureHashCode = signature.hashCode(); if (!ERROR_HASH_ARRAYLIST.contains(signatureHashCode)) { |