Added saved display name utils with persistent meta

This commit is contained in:
Auxilor
2021-11-01 14:17:29 +00:00
parent ceb95e20b5
commit 899b4297f7
2 changed files with 47 additions and 0 deletions

View File

@@ -2,9 +2,13 @@ package com.willfp.eco.util;
import com.willfp.eco.core.Eco;
import com.willfp.eco.core.Prerequisite;
import com.willfp.eco.core.data.PlayerProfile;
import com.willfp.eco.core.data.keys.PersistentDataKey;
import com.willfp.eco.core.data.keys.PersistentDataKeyType;
import lombok.experimental.UtilityClass;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
@@ -14,6 +18,15 @@ import org.jetbrains.annotations.NotNull;
*/
@UtilityClass
public class PlayerUtils {
/**
* The data key for saved player names.
*/
private static final PersistentDataKey<String> PLAYER_NAME_KEY = new PersistentDataKey<>(
NamespacedKeyUtils.createEcoKey("player_name"),
PersistentDataKeyType.STRING,
"Unknown Player"
);
/**
* Get the audience from a player.
*
@@ -63,4 +76,30 @@ public class PlayerUtils {
}
}
}
/**
* Get saved display name for an offline player.
*
* @param player The player.
* @return The player name.
*/
public String getSavedDisplayName(@NotNull final OfflinePlayer player) {
PlayerProfile profile = PlayerProfile.load(player);
if (player instanceof Player onlinePlayer) {
profile.write(PLAYER_NAME_KEY, onlinePlayer.getDisplayName());
}
return profile.read(PLAYER_NAME_KEY);
}
/**
* Update the saved display name for a player.
*
* @param player The player.
*/
public void updateSavedDisplayName(@NotNull final Player player) {
PlayerProfile profile = PlayerProfile.load(player);
profile.write(PLAYER_NAME_KEY, player.getDisplayName());
}
}