Add skin fixer

This commit is contained in:
nea
2023-07-31 00:48:15 +02:00
parent dbc56fb352
commit e6e3f4a496
5 changed files with 38 additions and 1 deletions

View File

@@ -19,7 +19,7 @@ sodium = "mc1.20-0.4.10"
freecammod = "1.2.0-mc1.20" freecammod = "1.2.0-mc1.20"
ncr = "Fabric-1.20-v2.2.0" ncr = "Fabric-1.20-v2.2.0"
mixinextras = "0.2.0-beta.9" mixinextras = "0.2.0-beta.9"
jarvis = "1.0.0" jarvis = "1.1.1"
[libraries] [libraries]

View File

@@ -0,0 +1,18 @@
package moe.nea.firmament.mixins;
import moe.nea.firmament.features.fixes.Fixes;
import net.minecraft.client.network.PlayerListEntry;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;
@Mixin(PlayerListEntry.class)
public class MixinPlayerListEntry {
@ModifyArg(method = "loadTextures", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinProvider;loadSkin(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$SkinTextureAvailableCallback;Z)V"))
public boolean shouldBeSecure(boolean originalSecure) {
if (Fixes.TConfig.INSTANCE.getFixUnsignedPlayerSkins()) {
return false;
}
return originalSecure;
}
}

View File

@@ -25,6 +25,7 @@ import moe.nea.firmament.features.chat.ImagePreview
import moe.nea.firmament.features.debug.DebugView import moe.nea.firmament.features.debug.DebugView
import moe.nea.firmament.features.debug.DeveloperFeatures import moe.nea.firmament.features.debug.DeveloperFeatures
import moe.nea.firmament.features.fishing.FishingWarning import moe.nea.firmament.features.fishing.FishingWarning
import moe.nea.firmament.features.fixes.Fixes
import moe.nea.firmament.features.inventory.CraftingOverlay import moe.nea.firmament.features.inventory.CraftingOverlay
import moe.nea.firmament.features.inventory.SaveCursorPosition import moe.nea.firmament.features.inventory.SaveCursorPosition
import moe.nea.firmament.features.inventory.SlotLocking import moe.nea.firmament.features.inventory.SlotLocking
@@ -60,6 +61,7 @@ object FeatureManager : DataHolder<FeatureManager.Config>(serializer(), "feature
loadFeature(ImagePreview) loadFeature(ImagePreview)
loadFeature(SaveCursorPosition) loadFeature(SaveCursorPosition)
loadFeature(CustomSkyBlockTextures) loadFeature(CustomSkyBlockTextures)
loadFeature(Fixes)
if (Firmament.DEBUG) { if (Firmament.DEBUG) {
loadFeature(DeveloperFeatures) loadFeature(DeveloperFeatures)
loadFeature(DebugView) loadFeature(DebugView)

View File

@@ -0,0 +1,16 @@
package moe.nea.firmament.features.fixes
import moe.nea.firmament.features.FirmamentFeature
import moe.nea.firmament.gui.config.ManagedConfig
object Fixes : FirmamentFeature {
override val identifier: String
get() = "fixes"
object TConfig : ManagedConfig(identifier) {
val fixUnsignedPlayerSkins by toggle("player-skins") { true }
}
override fun onLoad() {
}
}

View File

@@ -34,6 +34,7 @@ import kotlinx.coroutines.launch
import net.minecraft.SharedConstants import net.minecraft.SharedConstants
import net.minecraft.block.entity.SkullBlockEntity import net.minecraft.block.entity.SkullBlockEntity
import net.minecraft.client.resource.language.I18n import net.minecraft.client.resource.language.I18n
import net.minecraft.client.texture.PlayerSkinProvider
import net.minecraft.datafixer.Schemas import net.minecraft.datafixer.Schemas
import net.minecraft.datafixer.TypeReferences import net.minecraft.datafixer.TypeReferences
import net.minecraft.item.ItemStack import net.minecraft.item.ItemStack