diff --git a/build.gradle.kts b/build.gradle.kts index 4d36723..8011453 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,8 +20,8 @@ labyMod { displayName = "Death Finder" author = "RappyTV" description = "This addon saves your last death point, so you can find your items again." - minecraftVersion = "1.8<1.20.2" - version = System.getenv().getOrDefault("VERSION", "1.0.4") + minecraftVersion = "1.8<1.20.3" + version = System.getenv().getOrDefault("VERSION", "1.0.5") } minecraft { @@ -35,7 +35,8 @@ labyMod { "1.19.3", "1.19.4", "1.20.1", - "1.20.2" + "1.20.2", + "1.20.3" ) { version, provider -> configureRun(provider, version) } diff --git a/game-runner/src/v1_20_3/java/com/rappytv/deathfinder/v1_20_3/mixins/DeathScreenMixin.java b/game-runner/src/v1_20_3/java/com/rappytv/deathfinder/v1_20_3/mixins/DeathScreenMixin.java new file mode 100644 index 0000000..a69ee6b --- /dev/null +++ b/game-runner/src/v1_20_3/java/com/rappytv/deathfinder/v1_20_3/mixins/DeathScreenMixin.java @@ -0,0 +1,38 @@ +package com.rappytv.deathfinder.v1_20_3.mixins; + +import com.rappytv.deathfinder.DeathFinderAddon; +import com.rappytv.deathfinder.events.DeathEvent; +import com.rappytv.deathfinder.util.Location; +import net.labymod.api.Laby; +import net.minecraft.client.gui.screens.DeathScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.chat.Component; +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.CallbackInfo; + +@Mixin(DeathScreen.class) +public class DeathScreenMixin extends Screen { + + protected DeathScreenMixin(Component title) { + super(title); + } + + @Inject(method = "init", at = @At("TAIL")) + public void onDeathScreen(CallbackInfo ci) { + if(this.minecraft == null || this.minecraft.player == null) return; + + LocalPlayer player = this.minecraft.player; + Location deathLocation = new Location(player.getX(), player.getY(), player.getZ()); + + if(DeathFinderAddon.get().configuration().saveRotation().get()) { + deathLocation.setYaw(player.getYRot()); + deathLocation.setPitch(player.getXRot()); + } + if(deathLocation.equals(DeathFinderAddon.getDeathLocation())) return; + + Laby.fireEvent(new DeathEvent(deathLocation)); + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 3770190..da2cb9e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,7 @@ rootProject.name = "deathfinder" pluginManagement { - val labyGradlePluginVersion = "0.3.30" + val labyGradlePluginVersion = "0.3.38" plugins { id("net.labymod.gradle") version (labyGradlePluginVersion) }