Fix incompatibility with dulkis skin signature patch
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
|
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
|
||||||
|
* SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
@@ -24,6 +25,13 @@ public class PropertySignatureIgnorePatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject(method = "signature", cancellable = true, at = @At("HEAD"), remap = false)
|
||||||
|
public void returnEmptySignatureInsteadOfNull(CallbackInfoReturnable<String> cir) {
|
||||||
|
if (Fixes.TConfig.INSTANCE.getFixUnsignedPlayerSkins()) {
|
||||||
|
cir.setReturnValue("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Inject(method = "hasSignature", cancellable = true, at = @At("HEAD"), remap = false)
|
@Inject(method = "hasSignature", cancellable = true, at = @At("HEAD"), remap = false)
|
||||||
public void onHasSignature(CallbackInfoReturnable<Boolean> cir) {
|
public void onHasSignature(CallbackInfoReturnable<Boolean> cir) {
|
||||||
if (Fixes.TConfig.INSTANCE.getFixUnsignedPlayerSkins()) {
|
if (Fixes.TConfig.INSTANCE.getFixUnsignedPlayerSkins()) {
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
package moe.nea.firmament.mixins;
|
||||||
|
|
||||||
|
import com.mojang.authlib.SignatureState;
|
||||||
|
import com.mojang.authlib.properties.Property;
|
||||||
|
import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
|
||||||
|
import moe.nea.firmament.features.fixes.Fixes;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
@Mixin(value = YggdrasilMinecraftSessionService.class, remap = false)
|
||||||
|
public class PropertySignatureIgnorePatchForSession {
|
||||||
|
@Inject(method = "getPropertySignatureState", at = @At("HEAD"), cancellable = true, remap = false)
|
||||||
|
public void markEverythingAsSigned(Property property, CallbackInfoReturnable<SignatureState> cir) {
|
||||||
|
// Due to https://github.com/inglettronald/DulkirMod-Fabric/blob/22a3fc514a080fbe31f76f9ba7e85c36d8d0f67f/src/main/java/com/dulkirfabric/mixin/YggdrasilMinecraftSessionServiceMixin.java
|
||||||
|
// we sadly need to inject here too. Dulkirmod is very eager to early on mark a signature as unsigned
|
||||||
|
// and we want the opposite
|
||||||
|
if (Fixes.TConfig.INSTANCE.getFixUnsignedPlayerSkins()) {
|
||||||
|
cir.setReturnValue(SignatureState.SIGNED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user