aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-09-08 10:56:02 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-09-08 10:56:02 -0400
commite881432599f949aa6b8b633e44a356a05c6cff3f (patch)
tree6ea02b4b8a58b577f1fc28f8e9045307d1e27501
parentd28f37b4e4fe4185e8ac3a4bfa235b0361ebbe32 (diff)
downloadSkyblocker-e881432599f949aa6b8b633e44a356a05c6cff3f.tar.gz
Skyblocker-e881432599f949aa6b8b633e44a356a05c6cff3f.tar.bz2
Skyblocker-e881432599f949aa6b8b633e44a356a05c6cff3f.zip
Refactor YggdrasilServicesKeyInfoMixin
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java11
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)) {