Added saved display name utils with persistent meta
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user