bugfixes
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package eu.jonahbauer.wizard.server;
|
||||
|
||||
import eu.jonahbauer.wizard.common.messages.client.CreateSessionMessage;
|
||||
import eu.jonahbauer.wizard.common.messages.server.ServerMessage;
|
||||
import eu.jonahbauer.wizard.common.messages.server.SessionCreatedMessage;
|
||||
import eu.jonahbauer.wizard.common.messages.server.SessionListMessage;
|
||||
@@ -26,17 +25,12 @@ public class Lobby {
|
||||
|
||||
private Lobby() {}
|
||||
|
||||
public Session createSession(CreateSessionMessage create) {
|
||||
public Session createSession(@NotNull String name, long timeout, @NotNull Configuration configuration) {
|
||||
lock.readLock().lock();
|
||||
try {
|
||||
Session session;
|
||||
do {
|
||||
session = new Session(
|
||||
UUID.randomUUID(),
|
||||
create.getSessionName(),
|
||||
create.getTimeout(),
|
||||
create.getConfiguration()
|
||||
);
|
||||
session = new Session(UUID.randomUUID(), name, timeout, configuration);
|
||||
} while (sessions.putIfAbsent(session.getUuid(), session) != null);
|
||||
|
||||
notifyPlayers(new SessionCreatedMessage(session.toData()));
|
||||
|
@@ -1,9 +1,11 @@
|
||||
package eu.jonahbauer.wizard.server;
|
||||
|
||||
import eu.jonahbauer.wizard.common.messages.server.NackMessage;
|
||||
import lombok.Getter;
|
||||
import org.intellij.lang.annotations.MagicConstant;
|
||||
|
||||
public class NackException extends RuntimeException {
|
||||
@Getter(onMethod = @__({@MagicConstant(valuesFromClass = NackMessage.class)}))
|
||||
private final int code;
|
||||
|
||||
public NackException(@MagicConstant(valuesFromClass = NackMessage.class) int code, String message) {
|
||||
@@ -11,11 +13,6 @@ public class NackException extends RuntimeException {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
@MagicConstant(valuesFromClass = NackMessage.class)
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public NackMessage toMessage() {
|
||||
return new NackMessage(code, getMessage());
|
||||
}
|
||||
|
@@ -26,7 +26,11 @@ public class LobbyState implements ClientState {
|
||||
Lobby.getInstance().leave(player);
|
||||
try {
|
||||
player.buffer();
|
||||
var session = Lobby.getInstance().createSession(create);
|
||||
var session = Lobby.getInstance().createSession(
|
||||
create.getSessionName(),
|
||||
create.getTimeout(),
|
||||
create.getConfiguration()
|
||||
);
|
||||
var uuid = session.join(player, create.getPlayerName());
|
||||
return Optional.of(new SessionState(session.getUuid(), uuid, create.getPlayerName()));
|
||||
} catch (NackException nack) {
|
||||
|
Reference in New Issue
Block a user