Fix broken PlayerLeaveEventConsumerTest

This commit is contained in:
Aurora Lahtela 2022-08-31 09:07:58 +03:00
parent 9d7684e3fb
commit f14b78dede
2 changed files with 10 additions and 3 deletions

View File

@ -68,10 +68,14 @@ public class PlayerLeaveEventConsumer {
}
public void onLeaveGameServer(PlayerLeave leave) {
onLeaveGameServer(leave, 0);
}
public void onLeaveGameServer(PlayerLeave leave, int attempt) {
Optional<ActiveSession> activeSession = SessionCache.getCachedSession(leave.getPlayerUUID());
if (activeSession.isEmpty()) {
if (activeSession.isEmpty() && attempt < 50) {
// Quit event processed before Join event, delay processing
processing.submitCritical(() -> onLeaveGameServer(leave));
processing.submitCritical(() -> onLeaveGameServer(leave, attempt + 1));
return;
}

View File

@ -151,7 +151,10 @@ class PlayerLeaveEventConsumerTest {
}
@Test
void leavingGameServerSavesBanStatus(Database database, ServerUUID serverUUID) {
void leavingGameServerSavesBanStatus(PlanSystem system, Database database, ServerUUID serverUUID) {
SessionCache sessionCache = system.getCacheSystem().getSessionCache();
long sessionStart = System.currentTimeMillis();
sessionCache.cacheSession(TestConstants.PLAYER_ONE_UUID, new ActiveSession(TestConstants.PLAYER_ONE_UUID, serverUUID, sessionStart, "World", GMTimes.SURVIVAL));
registerPlayer(database, serverUUID);
PlayerLeave leave = createPlayerLeave(createTestPlayer()
.setBanned(true));