From 7d38d7db157efa0e6081033e81ac41bfe92b9cb9 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 8 Nov 2021 10:58:18 +0000 Subject: [PATCH] Saved player name changes --- .../main/java/com/willfp/eco/util/PlayerUtils.java | 12 +++++++++++- .../com/willfp/eco/spigot/data/DataListener.kt | 2 +- .../eco/spigot/data/EcoPlayerProfileHandler.kt | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/eco-api/src/main/java/com/willfp/eco/util/PlayerUtils.java b/eco-api/src/main/java/com/willfp/eco/util/PlayerUtils.java index 96fa847e..aee27f4b 100644 --- a/eco-api/src/main/java/com/willfp/eco/util/PlayerUtils.java +++ b/eco-api/src/main/java/com/willfp/eco/util/PlayerUtils.java @@ -90,7 +90,17 @@ public class PlayerUtils { profile.write(PLAYER_NAME_KEY, onlinePlayer.getDisplayName()); } - return profile.read(PLAYER_NAME_KEY); + String saved = profile.read(PLAYER_NAME_KEY); + + if (saved.equals(PLAYER_NAME_KEY.getDefaultValue())) { + String name = player.getName(); + if (name != null) { + profile.write(PLAYER_NAME_KEY, player.getName()); + return player.getName(); + } + } + + return saved; } /** diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/DataListener.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/DataListener.kt index 685d8e86..7b89b200 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/DataListener.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/DataListener.kt @@ -16,7 +16,7 @@ class DataListener : Listener { @EventHandler fun onJoin(event: PlayerJoinEvent) { - (Eco.getHandler().playerProfileHandler as EcoPlayerProfileHandler).unloadPlayer(event.player.uniqueId) + (Eco.getHandler().playerProfileHandler as EcoPlayerProfileHandler).unloadPlayerBlocking(event.player.uniqueId) PlayerUtils.updateSavedDisplayName(event.player) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/EcoPlayerProfileHandler.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/EcoPlayerProfileHandler.kt index f829d1bc..bff6e70e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/EcoPlayerProfileHandler.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/data/EcoPlayerProfileHandler.kt @@ -7,7 +7,7 @@ import com.willfp.eco.core.data.keys.PersistentDataKey import com.willfp.eco.internal.data.EcoPlayerProfile import com.willfp.eco.spigot.EcoSpigotPlugin import org.bukkit.Bukkit -import java.util.UUID +import java.util.* class EcoPlayerProfileHandler( private val plugin: EcoSpigotPlugin @@ -37,6 +37,11 @@ class EcoPlayerProfileHandler( loaded.remove(uuid) } + fun unloadPlayerBlocking(uuid: UUID) { + handler.saveAllBlocking(listOf(uuid)) + loaded.remove(uuid) + } + override fun savePlayer(uuid: UUID) { handler.savePlayer(uuid) }