improved null safety
This commit is contained in:
@@ -42,7 +42,7 @@ public class LobbyCommand {
|
||||
if (count == 1) builder.append("There is one open session:\n");
|
||||
else builder.append("There are ").append(count).append(" open sessions:\n");
|
||||
|
||||
sessions.forEach((session) -> builder.append(session).append('\n'));
|
||||
sessions.forEach((uuid, session) -> builder.append(session).append('\n'));
|
||||
client.println(builder);
|
||||
} else {
|
||||
client.println("No sessions.");
|
||||
@@ -106,7 +106,7 @@ public class LobbyCommand {
|
||||
@NotNull
|
||||
@Override
|
||||
public Iterator<String> iterator() {
|
||||
return lobby.getSessions().stream().map(SessionData::getUuid).map(UUID::toString).iterator();
|
||||
return lobby.getSessions().values().stream().map(SessionData::getUuid).map(UUID::toString).iterator();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -10,10 +10,10 @@ import java.util.*;
|
||||
|
||||
public final class Lobby extends BaseState {
|
||||
@Getter
|
||||
private final Set<SessionData> sessions = new HashSet<>();
|
||||
private final Map<UUID, SessionData> sessions = new HashMap<>();
|
||||
|
||||
public Lobby(SessionListMessage list) {
|
||||
sessions.addAll(list.getSessions());
|
||||
list.getSessions().forEach(session -> sessions.put(session.getUuid(), session));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -30,18 +30,18 @@ public final class Lobby extends BaseState {
|
||||
public Optional<ClientState> onMessage(Client client, ServerMessage message) {
|
||||
if (message instanceof SessionCreatedMessage created) {
|
||||
var session = created.getSession();
|
||||
sessions.add(session);
|
||||
sessions.put(session.getUuid(), session);
|
||||
return Optional.empty();
|
||||
} else if (message instanceof SessionRemovedMessage removed) {
|
||||
sessions.remove(new SessionData(removed.getSession(), null, 0, null));
|
||||
sessions.remove(removed.getSession());
|
||||
return Optional.empty();
|
||||
} else if (message instanceof SessionModifiedMessage modified) {
|
||||
sessions.remove(modified.getSession());
|
||||
sessions.add(modified.getSession());
|
||||
var session = modified.getSession();
|
||||
sessions.put(session.getUuid(), session);
|
||||
return Optional.empty();
|
||||
} else if (message instanceof SessionListMessage list) {
|
||||
sessions.clear();
|
||||
sessions.addAll(list.getSessions());
|
||||
list.getSessions().forEach(session -> sessions.put(session.getUuid(), session));
|
||||
return Optional.empty();
|
||||
} else {
|
||||
return unexpectedMessage(client, message);
|
||||
|
Reference in New Issue
Block a user