package me.gnat008.perworldinventory.process;
import me.gnat008.perworldinventory.ConsoleLogger;
import me.gnat008.perworldinventory.data.players.PWIPlayer;
import me.gnat008.perworldinventory.data.players.PWIPlayerManager;
import me.gnat008.perworldinventory.groups.Group;
import me.gnat008.perworldinventory.groups.GroupManager;
import org.bukkit.entity.Player;
import javax.inject.Inject;
/**
* Handle a player leaving the server.
*/
public class PlayerQuitProcess {
@Inject
private GroupManager groupManager;
@Inject
private PWIPlayerManager playerManager;
PlayerQuitProcess() {
}
/**
* Save all of a player's data when they leave the server.
*
* @param player The player leaving.
*/
public void processPlayerLeave(Player player) {
String logoutWorld = player.getWorld().getName();
Group group = groupManager.getGroupFromWorld(logoutWorld);
ConsoleLogger.debug("Player '" + player.getName() + "' quit! Checking cache");
PWIPlayer cached = playerManager.getPlayer(group, player);
if (cached != null) {
ConsoleLogger.debug("Cached data for player '" + player.getName() + "' found! Updating and setting them as saved");
playerManager.updateCache(player, cached);
cached.setSaved(true);
}
ConsoleLogger.debug("Saving logout data for player '" + player.getName() + "'...");
playerManager.savePlayer(group, player, true);
}
}