fix: fixed PauseSegment and DisconnectSegment, and added logging to all segments

This commit is contained in:
Yannik Bretschneider 2021-06-02 18:27:39 +02:00
parent 2380012d35
commit 96f131e50c
4 changed files with 11 additions and 8 deletions

View File

@ -22,7 +22,7 @@ public class DisconnectSegment implements Segment {
public void processRequests(Packet packet, List<Event> carrier, AtomicBoolean abort) { public void processRequests(Packet packet, List<Event> carrier, AtomicBoolean abort) {
Logger.trace("DisconnectSegment received {} requests.", packet.size()); Logger.trace("DisconnectSegment received {} requests.", packet.size());
if (packet.containsRequestOfType(RequestType.DisconnectRequest)) { if (packet.containsRequestOfType(RequestType.DisconnectRequest)) {
Logger.debug("Player {} sent DisconnectRequest", packet.getOrigin().type); Logger.debug("Player of Type {} sent DisconnectRequest", packet.getOrigin().type);
parent.connection.removePlayer(packet.getOrigin()); parent.connection.removePlayer(packet.getOrigin());
if (packet.getOrigin().type != ParticipantType.Spectator) { if (packet.getOrigin().type != ParticipantType.Spectator) {
@ -33,7 +33,7 @@ public class DisconnectSegment implements Segment {
parent.generateWin(parent.connection.getPlayer2()); parent.generateWin(parent.connection.getPlayer2());
} }
} }
packet.clear();
} }
packet.clear();
} }
} }

View File

@ -22,11 +22,13 @@ public class GameStateSegment implements Segment {
public void processRequests(Packet packet, List<Event> carrier, AtomicBoolean abort) { public void processRequests(Packet packet, List<Event> carrier, AtomicBoolean abort) {
Logger.trace("GameStateSegment received {} requests.", packet.size()); Logger.trace("GameStateSegment received {} requests.", packet.size());
var result = game.checkRequestsAndApply(packet.toArray(new Request[0])); var result = game.checkRequestsAndApply(packet.toArray(new Request[0]));
Logger.trace("GameLogic gener"); Logger.trace("GameLogic generated {} events", result.map(List::size).orElse(0));
if (result.isPresent()) { if (result.isPresent()) {
Logger.trace("Result from GameLogic is present. Adding requests to carrier.");
carrier.addAll(result.get()); carrier.addAll(result.get());
packet.clear(); packet.clear();
} else { } else {
Logger.debug("Result from GameLogic is invalid. Triggering error.");
abort.set(true); abort.set(true);
} }
} }

View File

@ -97,10 +97,8 @@ public class PauseSegment implements Segment {
RequestType.MoveRequest, RequestType.MoveRequest,
RequestType.ExchangeInfinityStoneRequest, RequestType.ExchangeInfinityStoneRequest,
RequestType.UseInfinityStoneRequest, RequestType.UseInfinityStoneRequest,
RequestType.EndRoundRequest, RequestType.EndRoundRequest);
RequestType.PauseStopRequest,
RequestType.PauseStartRequest);
} }
packet.removeRequestsOfTypes(RequestType.PauseStopRequest, RequestType.PauseStartRequest);
} }
} }

View File

@ -1,5 +1,6 @@
package uulm.teamname.marvelous.server.lobby.pipelining; package uulm.teamname.marvelous.server.lobby.pipelining;
import org.tinylog.Logger;
import uulm.teamname.marvelous.gamelibrary.events.Event; import uulm.teamname.marvelous.gamelibrary.events.Event;
import uulm.teamname.marvelous.gamelibrary.gamelogic.GameInstance; import uulm.teamname.marvelous.gamelibrary.gamelogic.GameInstance;
import uulm.teamname.marvelous.gamelibrary.requests.RequestBuilder; import uulm.teamname.marvelous.gamelibrary.requests.RequestBuilder;
@ -19,9 +20,11 @@ public class RequestGameStateSegment implements Segment {
@Override @Override
public void processRequests(Packet packet, List<Event> carrier, AtomicBoolean abort) { public void processRequests(Packet packet, List<Event> carrier, AtomicBoolean abort) {
Logger.trace("RequestGameStateSegment received {} requests", packet.size());
if (packet.containsRequestOfType(RequestType.Req)) { if (packet.containsRequestOfType(RequestType.Req)) {
Logger.trace("Req event found. Returning Gamestate, and clearing entire RequestList");
carrier.add(game.getGameStateEvent()); carrier.add(game.getGameStateEvent());
packet.clear();
} }
packet.clear();
} }
} }