aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java59
1 files changed, 0 insertions, 59 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java
deleted file mode 100644
index 9abca5ad..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java
+++ /dev/null
@@ -1,59 +0,0 @@
-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 it.unimi.dsi.fastutil.ints.IntArrayList;
-import it.unimi.dsi.fastutil.ints.IntList;
-import me.xmrvizzy.skyblocker.utils.Utils;
-import org.slf4j.Logger;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.Unique;
-import org.spongepowered.asm.mixin.injection.At;
-
-import java.util.Base64;
-import java.util.Map;
-
-@Mixin(value = YggdrasilServicesKeyInfo.class, remap = false)
-public class YggdrasilServicesKeyInfoMixin {
- @Shadow
- @Final
- private static Logger LOGGER;
- @Unique
- private static final Map<String, String> REPLACEMENT_MAP = Map.of();
- @Unique
- private static final IntList ERRONEUS_SIGNATURE_HASHES = new IntArrayList();
-
- @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 decode.call(decoder, signature);
- } catch (IllegalArgumentException e) {
- try {
- return decode.call(decoder, signature.replaceAll("[^A-Za-z0-9+/=]", ""));
- } catch (IllegalArgumentException e2) {
- if (Utils.isOnSkyblock()) {
- if (REPLACEMENT_MAP.containsKey(signature)) {
- return decode.call(decoder, REPLACEMENT_MAP.get(signature));
- }
- int signatureHashCode = signature.hashCode();
- if (!ERRONEUS_SIGNATURE_HASHES.contains(signatureHashCode)) {
- ERRONEUS_SIGNATURE_HASHES.add(signatureHashCode);
- LOGGER.warn("[Skyblocker Base64 Fixer] Failed to decode base64 string No.{}: {}", ERRONEUS_SIGNATURE_HASHES.size() - 1, signature);
- } else {
- LOGGER.warn("[Skyblocker Base64 Fixer] Failed to decode the base64 string No.{} again", ERRONEUS_SIGNATURE_HASHES.indexOf(signatureHashCode));
- }
- }
- }
- throw e;
- }
- }
-
- @WrapOperation(method = "validateProperty", remap = false, at = @At(value = "INVOKE", target = "org/slf4j/Logger.error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false))
- private void skyblocker$dontLogFailedSignatureValidation(Logger logger, String message, Object property, Object exception, Operation<Void> operation) {
- if (!Utils.isOnHypixel()) operation.call(logger, message, property, exception);
- }
-} \ No newline at end of file