Draft stability improvements (#9435)

This commit is contained in:
sprangg 2022-09-26 00:33:16 +03:00 committed by GitHub
parent c8c663b976
commit b9530e307d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 116 additions and 4 deletions

View file

@ -736,6 +736,16 @@ public class MageServerImpl implements MageServer {
});
});
}
@Override
public void setBoosterLoaded(final UUID draftId, final String sessionId) throws MageException {
execute("setBoosterLoaded", sessionId, () -> {
managerFactory.sessionManager().getSession(sessionId).ifPresent(session -> {
UUID userId = session.getUserId();
managerFactory.draftManager().setBoosterLoaded(draftId, userId);
});
});
}
@Override
public void quitMatch(final UUID gameId, final String sessionId) throws MageException {

View file

@ -199,6 +199,10 @@ public class DraftController {
public void sendCardMark(UUID userId, UUID cardId) {
draftSessions.get(userPlayerMap.get(userId)).setMarkedCard(cardId);
}
public void setBoosterLoaded(UUID userId) {
draftSessions.get(userPlayerMap.get(userId)).setBoosterLoaded();
}
private synchronized void updateDraft() throws MageException {
for (final Entry<UUID, DraftSession> entry : draftSessions.entrySet()) {

View file

@ -49,6 +49,11 @@ public class DraftManagerImpl implements DraftManager {
public void sendCardMark(UUID draftId, UUID userId, UUID cardId) {
draftControllers.get(draftId).sendCardMark(userId, cardId);
}
@Override
public void setBoosterLoaded(UUID draftId, UUID userId) {
draftControllers.get(draftId).setBoosterLoaded(userId);
}
@Override
public void removeSession(UUID userId) {

View file

@ -144,5 +144,9 @@ public class DraftSession {
public void setMarkedCard(UUID markedCard) {
this.markedCard = markedCard;
}
public void setBoosterLoaded() {
draft.setBoosterLoaded(playerId);
}
}

View file

@ -19,6 +19,8 @@ public interface DraftManager {
DraftPickView sendCardPick(UUID draftId, UUID userId, UUID cardId, Set<UUID> hiddenCards);
void sendCardMark(UUID draftId, UUID userId, UUID cardId);
void setBoosterLoaded(UUID draftId, UUID userId);
void removeSession(UUID userId);