From 319407ecc5282de5ade4e8c94381a981eff5bdfa Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 10 Apr 2022 17:46:11 +0200 Subject: [PATCH] saving the player location when disconnecting for the next server join --- .../listener/PlayerJoinListener.java | 6 ------ .../listener/PlayerQuitListener.java | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/krakatoaapi/listener/PlayerJoinListener.java b/src/main/java/net/krakatoaapi/listener/PlayerJoinListener.java index 1e8100b..2afd20f 100755 --- a/src/main/java/net/krakatoaapi/listener/PlayerJoinListener.java +++ b/src/main/java/net/krakatoaapi/listener/PlayerJoinListener.java @@ -34,11 +34,5 @@ public class PlayerJoinListener implements Listener { RMap map = ProxySystem.getInstance().getRedisManager() .getRedissonClient() .getMap("player:" + uuid); */ - player.sendMessage(player.getLocation().getX() + " " + player.getLocation().getY() + " " + player.getLocation().getZ()); - player.sendMessage(round(player.getLocation().getX()) + " " + round(player.getLocation().getY()) + " " + round(player.getLocation().getZ())); - } - - public double round(double location) { - return Math.round(location * 100.0) / 100.0; } } diff --git a/src/main/java/net/krakatoaapi/listener/PlayerQuitListener.java b/src/main/java/net/krakatoaapi/listener/PlayerQuitListener.java index 0904b81..d2547eb 100755 --- a/src/main/java/net/krakatoaapi/listener/PlayerQuitListener.java +++ b/src/main/java/net/krakatoaapi/listener/PlayerQuitListener.java @@ -1,10 +1,15 @@ package net.krakatoaapi.listener; +import de.dytanic.cloudnet.driver.CloudNetDriver; +import net.krakatoaapi.KrakatoaAPI; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; +import java.util.Map; +import java.util.Objects; + public class PlayerQuitListener implements Listener { @EventHandler @@ -13,6 +18,22 @@ public class PlayerQuitListener implements Listener { event.setQuitMessage(null); + String uuid = KrakatoaAPI.getInstance().getFormatter().formatUuid(Objects.requireNonNull(player.getPlayer()).getUniqueId()); + + /* + * Saving the player location when disconnecting for the next server join + */ + if (!CloudNetDriver.getInstance().getComponentName().startsWith("Lobby")) { + Map map = KrakatoaAPI.getInstance().getRedisManager().getPlayer(uuid); + + if (!map.isEmpty()) { + map.put("lastLocation", round(player.getLocation().getX()) + " " + round(player.getLocation().getY()) + " " + round(player.getLocation().getZ())); + } + } + } + + public double round(double location) { + return Math.round(location * 100.0) / 100.0; } }