aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java
new file mode 100644
index 00000000..9bf260da
--- /dev/null
+++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java
@@ -0,0 +1,42 @@
+package io.github.moulberry.notenoughupdates.mixins;
+
+import io.github.moulberry.notenoughupdates.miscfeatures.NPCRetexturing;
+import net.minecraft.client.entity.AbstractClientPlayer;
+import net.minecraft.client.network.NetworkPlayerInfo;
+import net.minecraft.client.resources.DefaultPlayerSkin;
+import net.minecraft.util.ResourceLocation;
+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(AbstractClientPlayer.class)
+public class MixinAbstractClientPlayer {
+
+ @Inject(method="hasSkin", at=@At("HEAD"), cancellable = true)
+ public void hasSkin(CallbackInfoReturnable<Boolean> cir) {
+ AbstractClientPlayer $this = (AbstractClientPlayer)(Object)this;
+ if(NPCRetexturing.getInstance().getSkin($this) != null) {
+ cir.setReturnValue(true);
+ }
+ }
+
+ @Inject(method="getLocationSkin()Lnet/minecraft/util/ResourceLocation;", at=@At("HEAD"), cancellable = true)
+ public void getLocationSkin(CallbackInfoReturnable<ResourceLocation> cir) {
+ AbstractClientPlayer $this = (AbstractClientPlayer)(Object)this;
+ NPCRetexturing.Skin skin = NPCRetexturing.getInstance().getSkin($this);
+ if(skin != null) {
+ cir.setReturnValue(skin.skinLocation);
+ }
+ }
+
+ @Inject(method="getSkinType", at=@At("HEAD"), cancellable = true)
+ public void getSkinType(CallbackInfoReturnable<String> cir) {
+ AbstractClientPlayer $this = (AbstractClientPlayer)(Object)this;
+ NPCRetexturing.Skin skin = NPCRetexturing.getInstance().getSkin($this);
+ if(skin != null) {
+ cir.setReturnValue(skin.skinny ? "slim" : "default");
+ }
+ }
+
+}