- Выберите загрузчик игры
- Fabric
Official mappings:
package ru.apelsin.injections.player;
import com.mojang.authlib.GameProfile;
import net.minecraft.client.multiplayer.PlayerInfo;
import net.minecraft.client.resources.PlayerSkin;
import net.minecraft.resources.ResourceLocation;
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import ru.apelsin.Constants;
import ru.apelsin.common.QuickImports;
import java.util.function.Supplier;
@Mixin(PlayerInfo.class)
public class PlayerInfoMixin implements QuickImports {
@Unique
private final static ResourceLocation CAPE = Constants.getResource("images/cape.png");
@Inject(method = "createSkinLookup", at = @At("RETURN"), cancellable = true)
private static void createSkinLookup(GameProfile gameProfile, CallbackInfoReturnable<Supplier<PlayerSkin>> cir) {
boolean bl = mc.isLocalPlayer(gameProfile.getId());
if (bl) {
PlayerSkin playerSkin = cir.getReturnValue().get();
PlayerSkin newPlayerSkin = new PlayerSkin(playerSkin.texture(), playerSkin.textureUrl(), CAPE, playerSkin.elytraTexture(), playerSkin.model(), playerSkin.secure());
cir.setReturnValue(() -> newPlayerSkin);
}
}
}
Yarn mappings:
package ru.apelsin.injections.player;
import com.mojang.authlib.GameProfile;
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.util.SkinTextures;
import net.minecraft.util.Identifier;
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import ru.apelsin.Constants;
import ru.apelsin.common.QuickImports;
import java.util.function.Supplier;
@Mixin(PlayerListEntry.class)
public class PlayerInfoMixin implements QuickImports {
@Unique
private final static Identifier CAPE = Constants.getResource("images/cape.png");
@Inject(method = "texturesSupplier", at = @At("RETURN"), cancellable = true)
private static void texturesSupplier(GameProfile gameProfile, CallbackInfoReturnable<Supplier<SkinTextures>> cir) {
boolean bl = mc.uuidEquals(gameProfile.getId());
if (bl) {
SkinTextures playerSkin = cir.getReturnValue().get();
SkinTextures newPlayerSkin = new SkinTextures(playerSkin.texture(), playerSkin.textureUrl(), CAPE, playerSkin.elytraTexture(), playerSkin.model(), playerSkin.secure());
cir.setReturnValue(() -> newPlayerSkin);
}
}
}
пастите на здоровье!