// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.workthreads; import engine.mbEnums; import engine.gameManager.DbManager; import engine.gameManager.SessionManager; import engine.objects.PlayerCharacter; import engine.session.Session; import org.pmw.tinylog.Logger; import java.util.ArrayList; import java.util.TimerTask; public class DisconnectTrashTask extends TimerTask { private final ArrayList trashList; // Pass it a list of characters and it will disconnect them // 5 seconds in the future. public DisconnectTrashTask(ArrayList trashList) { this.trashList = new ArrayList<>(trashList); } public void run() { Logger.info("Disconnecting actives from pool of: " + trashList.size()); Session trashSession; int accountUID; for (PlayerCharacter trashPlayer : trashList) { trashSession = SessionManager.getSession(trashPlayer); accountUID = trashPlayer.getAccount().getObjectUUID(); if (trashSession != null) trashSession.getConn().disconnect(); // Remove account from cache DbManager.removeFromCache(mbEnums.GameObjectType.Account, accountUID); } } ; }