package fr.xephi.authme.process.quit; import com.github.Anon8281.universalScheduler.UniversalScheduler; import fr.xephi.authme.data.limbo.LimboService; import fr.xephi.authme.process.SynchronousProcess; import fr.xephi.authme.settings.commandconfig.CommandManager; import org.bukkit.entity.Player; import javax.inject.Inject; public class ProcessSyncPlayerQuit implements SynchronousProcess { @Inject private LimboService limboService; @Inject private CommandManager commandManager; /** * Processes a player having quit. * * @param player the player that left * @param wasLoggedIn true if the player was logged in when leaving, false otherwise */ public void processSyncQuit(Player player, boolean wasLoggedIn) { if (wasLoggedIn) { commandManager.runCommandsOnLogout(player); } else { limboService.restoreData(player); if (!UniversalScheduler.isFolia) { // AuthMeReReloaded - Fix #146 (Very stupid solution, but works) // player.saveData(); // #1238: Speed is sometimes not restored properly } } player.leaveVehicle(); } }