summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/morbing/mixin
diff options
context:
space:
mode:
authornea <romangraef@gmail.com>2022-06-06 17:30:02 +0200
committernea <romangraef@gmail.com>2022-06-06 17:30:14 +0200
commitbedfa3b4d0507e0de4beb522285a18ecef80ea2a (patch)
treebaad8e208aaf56648a9b317cbdbd18e838758dee /src/main/java/moe/nea/morbing/mixin
parent8429ee15a20c38fe3a094bebf4ba4eb51c2cedd7 (diff)
downloadmorbingtime-bedfa3b4d0507e0de4beb522285a18ecef80ea2a.tar.gz
morbingtime-bedfa3b4d0507e0de4beb522285a18ecef80ea2a.tar.bz2
morbingtime-bedfa3b4d0507e0de4beb522285a18ecef80ea2a.zip
More morbing
Diffstat (limited to 'src/main/java/moe/nea/morbing/mixin')
-rw-r--r--src/main/java/moe/nea/morbing/mixin/AccessorBrewingRecipeRegistry.java16
-rw-r--r--src/main/java/moe/nea/morbing/mixin/MixinAbstractClientPlayerEntity.java38
2 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/morbing/mixin/AccessorBrewingRecipeRegistry.java b/src/main/java/moe/nea/morbing/mixin/AccessorBrewingRecipeRegistry.java
new file mode 100644
index 0000000..994b72e
--- /dev/null
+++ b/src/main/java/moe/nea/morbing/mixin/AccessorBrewingRecipeRegistry.java
@@ -0,0 +1,16 @@
+package moe.nea.morbing.mixin;
+
+import net.minecraft.item.Item;
+import net.minecraft.potion.Potion;
+import net.minecraft.recipe.BrewingRecipeRegistry;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Invoker;
+
+@Mixin(BrewingRecipeRegistry.class)
+public interface AccessorBrewingRecipeRegistry {
+ @Invoker(value = "registerPotionRecipe")
+ static void registerPotionRecipe(Potion input, Item item, Potion output) {
+ throw new IllegalStateException("Mixin not applied");
+ }
+
+}
diff --git a/src/main/java/moe/nea/morbing/mixin/MixinAbstractClientPlayerEntity.java b/src/main/java/moe/nea/morbing/mixin/MixinAbstractClientPlayerEntity.java
new file mode 100644
index 0000000..553414e
--- /dev/null
+++ b/src/main/java/moe/nea/morbing/mixin/MixinAbstractClientPlayerEntity.java
@@ -0,0 +1,38 @@
+package moe.nea.morbing.mixin;
+
+import com.mojang.authlib.GameProfile;
+import moe.nea.morbing.Morbing;
+import moe.nea.morbing.MorbingTimeStatus;
+import net.minecraft.client.network.AbstractClientPlayerEntity;
+import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.util.Identifier;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.world.World;
+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(AbstractClientPlayerEntity.class)
+public abstract class MixinAbstractClientPlayerEntity extends PlayerEntity {
+
+ public MixinAbstractClientPlayerEntity(World world, BlockPos pos, float yaw, GameProfile profile) {
+ super(world, pos, yaw, profile);
+ }
+
+ @Inject(method = "hasSkinTexture", at = @At("HEAD"), cancellable = true)
+ public void onHasSkinTexture(CallbackInfoReturnable<Boolean> cir) {
+ if (hasStatusEffect(MorbingTimeStatus.INSTANCE)) {
+ cir.setReturnValue(true);
+ }
+ }
+
+ @Inject(method = "getSkinTexture", at = @At("HEAD"), cancellable = true)
+ public void onGetSkinTexture(CallbackInfoReturnable<Identifier> cir) {
+ if (hasStatusEffect(MorbingTimeStatus.INSTANCE)) {
+ cir.setReturnValue(Morbing.identifier("morbingskin.png"));
+ }
+ }
+
+
+}