From 02905fb0fc2c277446a2bfa403bf7b1ee812c729 Mon Sep 17 00:00:00 2001 From: Wynd Date: Thu, 6 Apr 2023 23:56:45 +0300 Subject: [PATCH] Fixed fishes going above the player's head when fished --- README.md | 10 ++++++++ .../xyz/pixelatedw/betterbeta/WyHelper.java | 4 ++- .../betterbeta/mixin/FishHookMixin.java | 25 +++++++++++++++++++ src/main/resources/betterbeta.mixins.json | 3 ++- 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/main/java/xyz/pixelatedw/betterbeta/mixin/FishHookMixin.java diff --git a/README.md b/README.md index 296c77f..8a96123 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,16 @@ After: +
Fixes fishes going above the player's head + +Before:
+
+ ## Troubleshooting **Q: My achievements screen is all messed up** diff --git a/src/main/java/xyz/pixelatedw/betterbeta/WyHelper.java b/src/main/java/xyz/pixelatedw/betterbeta/WyHelper.java index 71f8eed..45dae82 100644 --- a/src/main/java/xyz/pixelatedw/betterbeta/WyHelper.java +++ b/src/main/java/xyz/pixelatedw/betterbeta/WyHelper.java @@ -4,6 +4,8 @@ import java.lang.management.ManagementFactory; import java.util.Random; import net.minecraft.entity.player.Player; +import net.minecraft.item.ItemInstance; +import net.minecraft.item.ItemType; public class WyHelper { @@ -24,7 +26,7 @@ public class WyHelper { Random rand = new Random(); // player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F); -// player.dropItem(new ItemInstance(ItemType.pickaxeGold, 1, 100), false); + player.dropItem(new ItemInstance(ItemType.fishingRod, 1), false); // player.dropItem(new ItemInstance(Tile.STONE, 64), false); // player.level.playLevelEvent((Player)null, 1005, (int)player.x, (int)player.y, (int)player.z, 0); diff --git a/src/main/java/xyz/pixelatedw/betterbeta/mixin/FishHookMixin.java b/src/main/java/xyz/pixelatedw/betterbeta/mixin/FishHookMixin.java new file mode 100644 index 0000000..5af896a --- /dev/null +++ b/src/main/java/xyz/pixelatedw/betterbeta/mixin/FishHookMixin.java @@ -0,0 +1,25 @@ +package xyz.pixelatedw.betterbeta.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArgs; +import org.spongepowered.asm.mixin.injection.invoke.arg.Args; + +import net.minecraft.entity.FishHook; +import net.minecraft.entity.ItemEntity; + +@Mixin(FishHook.class) +public class FishHookMixin { + + @ModifyArgs(method = "method_956", at = @At(value = "INVOKE", target = "Lnet/minecraft/level/Level;spawnEntity(Lnet/minecraft/entity/Entity;)Z")) + private void onFishCaught(Args args) { + ItemEntity item = args.get(0); + FishHook hook = (FishHook) (Object) this; + double x = hook.field_1067.x - hook.x; + double y = hook.field_1067.y - hook.y; + double z = hook.field_1067.z - hook.z; + item.velocityX = x * 0.1D; + item.velocityY = y * 0.1D + Math.sqrt(Math.sqrt(x * x + y * y + z * z)) * 0.05D; + item.velocityZ = z * 0.1D; + } +} diff --git a/src/main/resources/betterbeta.mixins.json b/src/main/resources/betterbeta.mixins.json index bbf916f..0cec68a 100644 --- a/src/main/resources/betterbeta.mixins.json +++ b/src/main/resources/betterbeta.mixins.json @@ -20,7 +20,8 @@ "ItemInstanceMixin", "MinecraftMixin", "MinecartMixin", - "LivingEntityRendererMixin" + "LivingEntityRendererMixin", + "FishHookMixin" ], "injectors": { "defaultRequire": 1