aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-09-22 12:20:51 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-09-22 12:22:43 -0400
commitfade512e18f73f488648ef697d90772faf014ca9 (patch)
tree2f7c381180e446940e53cef57eb6ba8b63044fd1 /src/main
parent81a61fe9b06d9c4dff7318fb45515a06d7d2d08a (diff)
downloadSkyblocker-fade512e18f73f488648ef697d90772faf014ca9.tar.gz
Skyblocker-fade512e18f73f488648ef697d90772faf014ca9.tar.bz2
Skyblocker-fade512e18f73f488648ef697d90772faf014ca9.zip
1.20.2 + Related Patches
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java20
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java5
-rw-r--r--src/main/resources/fabric.mod.json5
-rw-r--r--src/main/resources/skyblocker.accesswidener3
-rw-r--r--src/main/resources/skyblocker.mixins.json1
6 files changed, 54 insertions, 15 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java
index 2f0921a6..4ca9a642 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java
@@ -1,20 +1,29 @@
package me.xmrvizzy.skyblocker.mixin;
-import me.xmrvizzy.skyblocker.utils.Utils;
-import net.minecraft.client.texture.PlayerSkinProvider;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.ModifyVariable;
-@Mixin(PlayerSkinProvider.class)
+import com.llamalad7.mixinextras.injector.ModifyReturnValue;
+import com.llamalad7.mixinextras.sugar.Local;
+import com.mojang.authlib.GameProfile;
+import com.mojang.authlib.minecraft.MinecraftSessionService;
+
+import me.xmrvizzy.skyblocker.utils.Utils;
+import net.minecraft.client.texture.PlayerSkinProvider.Textures;
+
+@Mixin(targets = "net.minecraft.client.texture.PlayerSkinProvider$1")
public class PlayerSkinProviderMixin {
- /*@ModifyVariable(method = "loadSkin(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$SkinTextureAvailableCallback;Z)V", at = @At("STORE"))
- private Runnable skyblocker$removeInvalidBase64LogSpam(Runnable runnable) {
- return Utils.isOnHypixel() ? () -> {
- try {
- runnable.run();
- } catch (IllegalArgumentException ignored) {
- }
- } : runnable;
- }*/
+
+ @ModifyReturnValue(method = "method_52867", at = @At("RETURN"))
+ private static Textures skyblocker$fixTexturesThatHadAnInvalidSignature(Textures texture, @Local MinecraftSessionService sessionService, @Local GameProfile profile) {
+ if (Utils.isOnHypixel() && texture == Textures.MISSING) {
+ try {
+ return Textures.fromMap(sessionService.getTextures(profile, false), false);
+ } catch (Throwable t) {
+ return Textures.MISSING;
+ }
+ }
+
+ return texture;
+ }
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java
new file mode 100644
index 00000000..f0a0c768
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java
@@ -0,0 +1,20 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import org.slf4j.Logger;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+
+import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
+import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
+import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
+
+import me.xmrvizzy.skyblocker.utils.Utils;
+
+@Mixin(value = YggdrasilMinecraftSessionService.class, remap = false)
+public class YggdrasilMinecraftSessionServiceMixin {
+
+ @WrapOperation(method = "getSecurePropertyValue", remap = false, at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;Ljava/lang/Object;)V", remap = false))
+ private void skyblocker$dontLogMissingSignaturesOrTamperedProperties(Logger logger, String message, Object property, Operation<Void> operation) {
+ if (!Utils.isOnHypixel()) operation.call(logger, message, property);
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java
index d9668100..9abca5ad 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java
@@ -51,4 +51,9 @@ public class YggdrasilServicesKeyInfoMixin {
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
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index ba86509d..888e3374 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -34,11 +34,12 @@
"mixins": [
"skyblocker.mixins.json"
],
+ "accesswidener": "skyblocker.accesswidener",
"depends": {
"fabricloader": ">=0.14.22",
- "fabric-api": ">=0.88.5+1.20.2",
+ "fabric-api": ">=0.89.1+1.20.2",
"cloth-config2": "*",
- "minecraft": "~1.20"
+ "minecraft": "~1.20.2"
},
"conflicts": {
"immediatelyfast": "<=1.1.26+1.20.1"
diff --git a/src/main/resources/skyblocker.accesswidener b/src/main/resources/skyblocker.accesswidener
new file mode 100644
index 00000000..7cf4250e
--- /dev/null
+++ b/src/main/resources/skyblocker.accesswidener
@@ -0,0 +1,3 @@
+accessWidener v2 named
+
+accessible class net/minecraft/client/texture/PlayerSkinProvider$Textures \ No newline at end of file
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index 537f07d3..a4fe92dd 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -24,6 +24,7 @@
"ScoreboardMixin",
"SocialInteractionsPlayerListWidgetMixin",
"WorldRendererMixin",
+ "YggdrasilMinecraftSessionServiceMixin",
"YggdrasilServicesKeyInfoMixin",
"accessor.BeaconBlockEntityRendererInvoker",
"accessor.FrustumInvoker",