diff --git a/CHANGELOG.md b/CHANGELOG.md index 30ecefd..bf5bce5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project kind of adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +### [1.3.5] +- Fixed `/sethome`, `/setwarp` and `deathLocation` not setting the correct height when the block under the player is not a fullblock. [(issue #32)](https://github.com/MrSn0wy/TeleportCommands/issues/32) + ### [1.3.4] - Updated Italian translations (Thanks to [Jump-333](https://github.com/Jump-333)!) - Turned DeathLocation into a Hashmap diff --git a/common/src/main/java/dev/mrsnowy/teleport_commands/Constants.java b/common/src/main/java/dev/mrsnowy/teleport_commands/Constants.java index 0be1bf0..6159111 100644 --- a/common/src/main/java/dev/mrsnowy/teleport_commands/Constants.java +++ b/common/src/main/java/dev/mrsnowy/teleport_commands/Constants.java @@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory; public class Constants { public static final String MOD_ID = "teleport_commands"; public static final String MOD_NAME = "Teleport Commands"; - public static final String VERSION = "1.3.4"; + public static final String VERSION = "1.3.5"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_NAME); } diff --git a/common/src/main/java/dev/mrsnowy/teleport_commands/TeleportCommands.java b/common/src/main/java/dev/mrsnowy/teleport_commands/TeleportCommands.java index 1f734e1..8617f58 100644 --- a/common/src/main/java/dev/mrsnowy/teleport_commands/TeleportCommands.java +++ b/common/src/main/java/dev/mrsnowy/teleport_commands/TeleportCommands.java @@ -3,6 +3,7 @@ package dev.mrsnowy.teleport_commands; import com.google.gson.*; import com.mojang.brigadier.CommandDispatcher; import dev.mrsnowy.teleport_commands.storage.StorageManager; +import dev.mrsnowy.teleport_commands.utils.tools; import dev.mrsnowy.teleport_commands.commands.*; import dev.mrsnowy.teleport_commands.storage.DeathLocationStorage; import net.minecraft.commands.CommandSourceStack; @@ -52,11 +53,11 @@ public class TeleportCommands { // Runs when the playerDeath mixin calls it, updates the /back command position public static void onPlayerDeath(ServerPlayer player) { - BlockPos pos = new BlockPos(player.getBlockX(), player.getBlockY(), player.getBlockZ()); + BlockPos blockPos = tools.roundedBlockPos(player.position()); String world = player.level().dimension().identifier().toString(); String uuid = player.getStringUUID(); - DeathLocationStorage.setDeathLocation(uuid, pos, world); + DeathLocationStorage.setDeathLocation(uuid, blockPos, world); } // cleans and updates Storage to the newest "version". This is painful @@ -229,4 +230,4 @@ public class TeleportCommands { return null; } -} \ No newline at end of file +} diff --git a/common/src/main/java/dev/mrsnowy/teleport_commands/commands/home.java b/common/src/main/java/dev/mrsnowy/teleport_commands/commands/home.java index c735e34..baf0d46 100644 --- a/common/src/main/java/dev/mrsnowy/teleport_commands/commands/home.java +++ b/common/src/main/java/dev/mrsnowy/teleport_commands/commands/home.java @@ -161,7 +161,7 @@ public class home { // Adds a new home to the homeList of a player private static void SetHome(ServerPlayer player, String homeName) throws Exception { homeName = homeName.toLowerCase(); - BlockPos blockPos = player.blockPosition(); + BlockPos blockPos = tools.roundedBlockPos(player.position()); String worldString = player.level().dimension().identifier().toString(); // Gets the player's storage and creates it if it doesn't exist @@ -508,4 +508,4 @@ public class home { // send the message player.sendSystemMessage(message, false); } -} \ No newline at end of file +} diff --git a/common/src/main/java/dev/mrsnowy/teleport_commands/commands/warp.java b/common/src/main/java/dev/mrsnowy/teleport_commands/commands/warp.java index 722cc25..77f3c90 100644 --- a/common/src/main/java/dev/mrsnowy/teleport_commands/commands/warp.java +++ b/common/src/main/java/dev/mrsnowy/teleport_commands/commands/warp.java @@ -126,7 +126,7 @@ public class warp { System.out.println(warpName); warpName = warpName.toLowerCase(); - BlockPos blockPos = new BlockPos(player.getBlockX(), player.getBlockY(), player.getBlockZ()); + BlockPos blockPos = tools.roundedBlockPos(player.position()); String worldString = player.level().dimension().identifier().toString(); // Create the NamedLocation diff --git a/common/src/main/java/dev/mrsnowy/teleport_commands/utils/tools.java b/common/src/main/java/dev/mrsnowy/teleport_commands/utils/tools.java index ef242f7..0fb3f97 100644 --- a/common/src/main/java/dev/mrsnowy/teleport_commands/utils/tools.java +++ b/common/src/main/java/dev/mrsnowy/teleport_commands/utils/tools.java @@ -191,6 +191,15 @@ public class tools { } } + /// Turn a Vec3 into a BlockPos with a rounded height. + public static BlockPos roundedBlockPos(Vec3 pos) { + return new BlockPos( + (int) Math.floor(pos.x()), + (int) Math.round(pos.y()), + (int) Math.floor(pos.z()) + ); + } + // Gets the ids of all the worlds public static List getWorldIds() { diff --git a/gradle.properties b/gradle.properties index 9b59230..8a7a98c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ # Every field you add must be added to the root build.gradle expandProps map. # Project -version=1.3.4 +version=1.3.5 group=dev.mrsnowy.teleport_commands java_version=25