From 5a559aa4c398b0845ddc68ab4b395ff0162cfc57 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sat, 28 Jan 2017 12:43:55 +0100 Subject: [PATCH] Started using TBMCPlayer and added save(); --- .../lib/player/ChromaGamerBase.java | 19 +++++++++++++++++++ .../lib/player/TBMCPlayerBase.java | 13 +++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/buttondevteam/lib/player/ChromaGamerBase.java b/src/main/java/buttondevteam/lib/player/ChromaGamerBase.java index beeaa27..24a1bcb 100644 --- a/src/main/java/buttondevteam/lib/player/ChromaGamerBase.java +++ b/src/main/java/buttondevteam/lib/player/ChromaGamerBase.java @@ -1,6 +1,7 @@ package buttondevteam.lib.player; import java.io.File; +import java.io.IOException; import java.util.HashMap; import java.util.Map.Entry; import java.util.function.Consumer; @@ -68,8 +69,26 @@ public abstract class ChromaGamerBase implements AutoCloseable { return null; } + /** + * Saves the player. It'll pass all exceptions to the caller. To automatically handle the exception, use {@link #save()} instead. + */ @Override public void close() throws Exception { + save_(); + } + + /** + * Saves the player. It'll send all exceptions that may happen. To catch the exception, use {@link #close()} instead. + */ + public void save() { + try { + save_(); + } catch (Exception e) { + TBMCCoreAPI.SendException("Error while saving player data!", e); + } + } + + private void save_() throws IOException { plugindata.save(new File(TBMC_PLAYERS_DIR + getFolder(), getFileName() + ".yml")); } diff --git a/src/main/java/buttondevteam/lib/player/TBMCPlayerBase.java b/src/main/java/buttondevteam/lib/player/TBMCPlayerBase.java index b6c44fa..a910020 100644 --- a/src/main/java/buttondevteam/lib/player/TBMCPlayerBase.java +++ b/src/main/java/buttondevteam/lib/player/TBMCPlayerBase.java @@ -114,13 +114,9 @@ public abstract class TBMCPlayerBase extends ChromaGamerBase { /** * Only intended to use from ButtonCore */ - public static void joinPlayer(UUID uuid) { - YamlConfiguration yc; - if (playerfiles.containsKey(uuid)) - yc = playerfiles.get(uuid); - else - playerfiles.put(uuid, yc = YamlConfiguration.loadConfiguration(new File("minecraft", uuid + ".yml"))); - /*Bukkit.getLogger().info("Loaded player: " + player.getPlayerName()); + public static void joinPlayer(Player p) { + TBMCPlayer player = TBMCPlayerBase.getPlayer(p.getUniqueId(), TBMCPlayer.class); + Bukkit.getLogger().info("Loaded player: " + player.getPlayerName()); if (player.getPlayerName() == null) { player.setPlayerName(p.getName()); Bukkit.getLogger().info("Player name saved: " + player.getPlayerName()); @@ -146,7 +142,8 @@ public abstract class TBMCPlayerBase extends ChromaGamerBase { // Load in other plugins Bukkit.getServer().getPluginManager().callEvent(new TBMCPlayerLoadEvent(player)); - Bukkit.getServer().getPluginManager().callEvent(new TBMCPlayerJoinEvent(player));*/ + Bukkit.getServer().getPluginManager().callEvent(new TBMCPlayerJoinEvent(player)); + player.save(); } /**