diff --git a/src/main/java/cc/fascinated/account/Account.java b/src/main/java/cc/fascinated/account/Account.java index 5469dea..0c0082b 100644 --- a/src/main/java/cc/fascinated/account/Account.java +++ b/src/main/java/cc/fascinated/account/Account.java @@ -11,6 +11,7 @@ import lombok.SneakyThrows; import lombok.extern.log4j.Log4j2; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -52,13 +53,13 @@ public class Account { */ private final PlayerColor playerColorProfile; - public Account(UUID uuid) { + public Account(Player player) { //log.info("Loading account for " + uuid); boolean newAccount = false; - this.uuid = uuid; + this.uuid = player.getUniqueId(); - File file = new File(Aetheria.INSTANCE.getDataFolder(), "accounts/" + this.uuid.toString() + ".yml"); + File file = new File(Aetheria.INSTANCE.getDataFolder(), "accounts/" + this.uuid + ".yml"); this.file = file; if (!file.exists()) { newAccount = true; @@ -79,7 +80,7 @@ public class Account { log.info("Created new account for " + this.uuid); Bukkit.broadcast(Style.getMiniMessage().deserialize(Lang.FIRST_JOIN_MESSAGE.getAsString() - .replace("%player%", this.getName()) + .replace("%player%", player.getName()) )); Aetheria.EXECUTOR.execute(() -> { @@ -87,7 +88,7 @@ public class Account { DiscordWebhook discordWebhook = new DiscordWebhook(Config.DISCORD_LOG_WEBHOOK.getAsString()); DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject(); embed.setTitle("New Player Joined"); - embed.addField("Name", Bukkit.getOfflinePlayer(uuid).getName(), true); + embed.addField("Name", player.getName(), true); embed.addField("UUID", uuid.toString(), true); discordWebhook.addEmbed(embed); @@ -128,6 +129,15 @@ public class Account { return Bukkit.getPlayer(uuid); } + /** + * Get the offline player for this account. + * + * @return the offline player + */ + public OfflinePlayer getOfflinePlayer() { + return Bukkit.getOfflinePlayer(uuid); + } + /** * Send a message to the player. * diff --git a/src/main/java/cc/fascinated/account/AccountManager.java b/src/main/java/cc/fascinated/account/AccountManager.java index 379c30a..19f8629 100644 --- a/src/main/java/cc/fascinated/account/AccountManager.java +++ b/src/main/java/cc/fascinated/account/AccountManager.java @@ -23,7 +23,7 @@ public class AccountManager extends Manager { public AccountManager() { for (Player player : Bukkit.getOnlinePlayers()) { - registerAccount(player.getUniqueId()); + registerAccount(player); } Bukkit.getAsyncScheduler().runAtFixedRate(Aetheria.INSTANCE, (task) -> { @@ -34,12 +34,13 @@ public class AccountManager extends Manager { /** * Gets the account for the specified player. * - * @param uuid the UUID of the player + * @param player the player * @return the account */ - public static Account getAccount(UUID uuid) { + public static Account getAccount(Player player) { + UUID uuid = player.getUniqueId(); if (!ACCOUNTS.containsKey(uuid)) { - return registerAccount(uuid); + return registerAccount(player); } return ACCOUNTS.get(uuid); } @@ -47,20 +48,21 @@ public class AccountManager extends Manager { /** * Checks if an account is already registered for the specified player. * - * @param uuid the UUID of the player + * @param player the player * @return true if the account is already registered, false otherwise */ - private boolean accountRegistered(UUID uuid) { - return ACCOUNTS.containsKey(uuid); + private boolean accountRegistered(Player player) { + return ACCOUNTS.containsKey(player.getUniqueId()); } /** * Registers an account for the specified player. * - * @param uuid the UUID of the player + * @param player the player */ - private static Account registerAccount(UUID uuid) { - Account account = new Account(uuid); + private static Account registerAccount(Player player) { + UUID uuid = player.getUniqueId(); + Account account = new Account(player); ACCOUNTS.put(uuid, account); return account; } @@ -79,18 +81,20 @@ public class AccountManager extends Manager { @EventHandler public void onJoin(PlayerJoinEvent event) { - if (accountRegistered(event.getPlayer().getUniqueId())) { // Account already registered + Player player = event.getPlayer(); + if (accountRegistered(player)) { // Account already registered return; } - registerAccount(event.getPlayer().getUniqueId()); + registerAccount(player); } @EventHandler public void onQuit(PlayerQuitEvent event) { - Account account = getAccount(event.getPlayer().getUniqueId()); + Player player = event.getPlayer(); + Account account = getAccount(player); account.save(true); - ACCOUNTS.remove(event.getPlayer().getUniqueId()); + ACCOUNTS.remove(player.getUniqueId()); } @EventHandler diff --git a/src/main/java/cc/fascinated/chat/ChatManager.java b/src/main/java/cc/fascinated/chat/ChatManager.java index 6818b6f..c524128 100644 --- a/src/main/java/cc/fascinated/chat/ChatManager.java +++ b/src/main/java/cc/fascinated/chat/ChatManager.java @@ -36,7 +36,7 @@ public class ChatManager extends Manager { @EventHandler public void onChat(AsyncChatEvent event) { Player player = event.getPlayer(); - Account account = AccountManager.getAccount(player.getUniqueId()); + Account account = AccountManager.getAccount(player); NamedTextColor color = account.getPlayerColorProfile().getColor(); BlockReason blockReason = null; diff --git a/src/main/java/cc/fascinated/command/Command.java b/src/main/java/cc/fascinated/command/Command.java index 6da8c48..861455b 100644 --- a/src/main/java/cc/fascinated/command/Command.java +++ b/src/main/java/cc/fascinated/command/Command.java @@ -38,7 +38,7 @@ public abstract class Command implements CommandExecutor { } Player player = (Player) commandSender; - Account account = AccountManager.getAccount(player.getUniqueId()); + Account account = AccountManager.getAccount(player); this.execute(account, strings); return true; } diff --git a/src/main/java/cc/fascinated/playercolor/PlayerColorManager.java b/src/main/java/cc/fascinated/playercolor/PlayerColorManager.java index c723856..8e2f682 100644 --- a/src/main/java/cc/fascinated/playercolor/PlayerColorManager.java +++ b/src/main/java/cc/fascinated/playercolor/PlayerColorManager.java @@ -83,7 +83,7 @@ public class PlayerColorManager extends Manager { @EventHandler public void onLogin(PlayerLoginEvent event) { Player player = event.getPlayer(); - Account account = AccountManager.getAccount(player.getUniqueId()); + Account account = AccountManager.getAccount(player); PlayerColor playerColor = account.getPlayerColorProfile(); Team team = PlayerColorManager.getScoreboardTeam(playerColor.getColor()); @@ -93,7 +93,7 @@ public class PlayerColorManager extends Manager { @EventHandler public void onQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); - Account account = AccountManager.getAccount(player.getUniqueId()); + Account account = AccountManager.getAccount(player); PlayerColor playerColor = account.getPlayerColorProfile(); Team team = PlayerColorManager.getScoreboardTeam(playerColor.getColor());