software-challenge / gui

Software-Challenge GUI since 2020/21
https://software-challenge.de
10 stars 3 forks source link

A player cannot make a move when they are assigned to make the first move as Player One. #103

Closed Vito0912 closed 5 months ago

Vito0912 commented 5 months ago

Was ist passiert?

A player cannot make a move in the GUI when they are assigned to make the first move as Player One. This issue only occurs in the initial game session. If a new game is started using Ctrl+N or via the GUI, the functionality works correctly.

I suspect this problem may be related to a View change request being made before sending the MoveRequest, although I have not looked up the code.

Dein Betriebssystem?

Windows

Logs

08:40:08,915 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
08:40:08,930 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - No custom configurators were discovered as a service.
08:40:08,930 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
08:40:08,930 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
08:40:08,946 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
08:40:08,946 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
08:40:08,962 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 16 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
08:40:08,962 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
08:40:08,962 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
08:40:08,962 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [H:\Downloads\logback.xml]
08:40:08,962 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
08:40:08,962 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/H:/Downloads/software-challenge-gui-25.0.1-windows.jar!/logback.xml]
08:40:08,977 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@623a8092 - URL [jar:file:/H:/Downloads/software-challenge-gui-25.0.1-windows.jar!/logback.xml] is not of type file
08:40:09,046 |-INFO in ch.qos.logback.core.model.processor.TimestampModelHandler - Using current interpretation time, i.e. now, as time reference.
08:40:09,078 |-INFO in ch.qos.logback.core.model.processor.TimestampModelHandler - Adding property to the context with key="time" and value="06-19T084009" to the LOCAL scope
08:40:09,084 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
08:40:09,084 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [sc.util.TidyFileAppender]
08:40:09,100 |-WARN in sc.util.TidyFileAppender[FILE] - This appender no longer admits a layout as a sub-component, set an encoder instead.
08:40:09,100 |-WARN in sc.util.TidyFileAppender[FILE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
08:40:09,100 |-WARN in sc.util.TidyFileAppender[FILE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
08:40:09,100 |-INFO in sc.util.TidyFileAppender[FILE] - File property is set to [log/game-server_06-19T084009.log]
08:40:09,100 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [STDOUT]
08:40:09,100 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.PatternLayout] for [layout] property
08:40:09,115 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
08:40:09,115 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
08:40:09,115 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [sc] to INFO
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [sc.gui] to DEBUG
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [sc.networking.clients.XStreamClient] to INFO
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to INFO
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [STDOUT] to Logger[ROOT]
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@a1cdc6d - End of configuration.
08:40:09,115 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@175b9425 - Registering current configuration as safe fallback point
08:40:09,115 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 153 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

Juni 19, 2024 8:40:09 VORM. com.sun.javafx.application.PlatformImpl startup
WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @3ab1c7db'
Juni 19, 2024 8:40:09 VORM. tornadofx.Stylesheet$Companion detectAndInstallUrlHandler
INFORMATION: Installing CSS url handler, since it was not picked up automatically
08:40:08,915 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
08:40:08,930 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - No custom configurators were discovered as a service.
08:40:08,930 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
08:40:08,930 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
08:40:08,946 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
08:40:08,946 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
08:40:08,962 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 16 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
08:40:08,962 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
08:40:08,962 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
08:40:08,962 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [H:\Downloads\logback.xml]
08:40:08,962 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
08:40:08,962 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/H:/Downloads/software-challenge-gui-25.0.1-windows.jar!/logback.xml]
08:40:08,977 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@623a8092 - URL [jar:file:/H:/Downloads/software-challenge-gui-25.0.1-windows.jar!/logback.xml] is not of type file
08:40:09,046 |-INFO in ch.qos.logback.core.model.processor.TimestampModelHandler - Using current interpretation time, i.e. now, as time reference.
08:40:09,078 |-INFO in ch.qos.logback.core.model.processor.TimestampModelHandler - Adding property to the context with key="time" and value="06-19T084009" to the LOCAL scope
08:40:09,084 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
08:40:09,084 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [sc.util.TidyFileAppender]
08:40:09,100 |-WARN in sc.util.TidyFileAppender[FILE] - This appender no longer admits a layout as a sub-component, set an encoder instead.
08:40:09,100 |-WARN in sc.util.TidyFileAppender[FILE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
08:40:09,100 |-WARN in sc.util.TidyFileAppender[FILE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
08:40:09,100 |-INFO in sc.util.TidyFileAppender[FILE] - File property is set to [log/game-server_06-19T084009.log]
08:40:09,100 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [STDOUT]
08:40:09,100 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.PatternLayout] for [layout] property
08:40:09,115 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
08:40:09,115 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
08:40:09,115 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [sc] to INFO
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [sc.gui] to DEBUG
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [sc.networking.clients.XStreamClient] to INFO
08:40:09,115 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to INFO
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [STDOUT] to Logger[ROOT]
08:40:09,115 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@a1cdc6d - End of configuration.
08:40:09,115 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@175b9425 - Registering current configuration as safe fallback point
08:40:09,115 |-INFO in ch.qos.logback.classic.util.ContextInitializer@548e6d58 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 153 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

08:40:09 WARN               sc.server.Configuration - Could not find server.properties at H:\Downloads\server.properties, will use default values!
08:40:09 INFO   sc.server.network.NewClientListener - Listening on port 13050 for incoming connections.
08:40:09 INFO       sc.server.network.ClientManager - ClientManager running
08:40:09 DEBUG            sc.gui.AppStyle$Companion - System Font: Font[name=System Regular, family=System, style=Regular, size=12.0]
08:40:10 DEBUG      sc.gui.controller.AppController - Requested View change from GAME_CREATION -> GAME_CREATION
08:40:10 WARN       sc.gui.controller.AppController - Noop view change request!
08:40:14 DEBUG      sc.gui.controller.AppController - Requested View change from GAME_CREATION -> GAME_LOADING
08:40:14 INFO   sc.networking.clients.XStreamClient - Creating TCP Network for localhost:13050
08:40:14 INFO   sc.server.network.NewClientListener - Connecting a Client at Socket[addr=/127.0.0.1,port=50680,localport=13050]...
Loading into XStream: sc.plugin2025.util.XStreamClasses@67465c5b
Loading into XStream: sc.plugin2025.util.XStreamClasses@1fb38ad3
08:40:14 INFO       sc.server.network.ClientManager - Delegating new client to ClientManager...
08:40:14 INFO   sc.server.network.NewClientListener - Added Client Client@6e5f9830 to ReadyQueue.
08:40:14 INFO       sc.server.network.ClientManager - Delegation done
08:40:14 INFO   sc.networking.clients.XStreamClient - Creating TCP Network for localhost:13050
08:40:14 INFO   sc.server.network.NewClientListener - Connecting a Client at Socket[addr=/127.0.0.1,port=50681,localport=13050]...
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
Loading into XStream: sc.plugin2025.util.XStreamClasses@6b8a5fd1
Loading into XStream: sc.plugin2025.util.XStreamClasses@2f3db24e
08:40:14 INFO              sc.server.network.Client - Client authenticated as administrator
08:40:14 INFO       sc.server.network.ClientManager - Delegating new client to ClientManager...
08:40:14 INFO   sc.server.network.NewClientListener - Added Client Client@49307845 to ReadyQueue.
08:40:14 INFO       sc.server.network.ClientManager - Delegation done
08:40:14 INFO   sc.networking.clients.XStreamClient - Creating TCP Network for localhost:13050
08:40:14 INFO   sc.server.network.NewClientListener - Connecting a Client at Socket[addr=/127.0.0.1,port=50682,localport=13050]...
Loading into XStream: sc.plugin2025.util.XStreamClasses@760dffed
Loading into XStream: sc.plugin2025.util.XStreamClasses@44b11047
08:40:14 INFO   sc.server.network.NewClientListener - Added Client Client@50b54ae3 to ReadyQueue.
08:40:14 INFO       sc.server.network.ClientManager - Delegating new client to ClientManager...
08:40:14 INFO       sc.server.network.ClientManager - Delegation done
08:40:14 DEBUG                  sc.gui.LobbyManager - Starting new game (paused: false, players: [Player(name=Spieler 1, client=sc.gui.controller.client.GuiClient@7726e79 type Mensch on localhost:13050), Player(name=Spieler 2, client=sc.gui.controller.client.GuiClient@79f7e457 type Mensch on localhost:13050)])
08:40:14 WARN             sc.server.gaming.GameRoom - PAUSE is already false, dropping request
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
08:40:14 INFO   sc.server.gaming.ReservationManager - Reservation 503ba0b4-abb1-4ef5-99ed-0a60d7aab7f5 was redeemed.
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
08:40:14 INFO             sc.server.gaming.GameRoom - Game not ready yet: Game(players=[ONE(Spieler 1), TWO(Spieler 2)], gameState=GameState(board=Board[ÔûÂ, P1, ­ƒÉç, ­ƒº║, ­ƒÉç, ­ƒÑò, ­ƒÑò, ­ƒÑò, P2, ­ƒÉç, ­ƒÑù, ­ƒªö, ­ƒÑò, ­ƒÑò, ­ƒÉç, ­ƒªö, P2, P1, ­ƒº║, ­ƒªö, ­ƒÑò, P2, ­ƒÑò, ­ƒÑù, ­ƒªö, ­ƒÑò, ­ƒÑò, P2, ­ƒÉç, ­ƒº║, ­ƒªö, ­ƒÑò, ­ƒÉç, ­ƒÑò, P1, P2, ­ƒÉç, ­ƒªö, ­ƒÑò, ­ƒÉç, P2, ­ƒÑò, ­ƒÑù, ­ƒªö, P1, ­ƒÑò, ­ƒÉç, ­ƒº║, P2, ­ƒÑò, ­ƒªö, ­ƒÑò, ­ƒÑò, ­ƒÉç, ­ƒº║, P2, ­ƒªö, ­ƒÑù, ­ƒÉç, ­ƒÑò, P1, ­ƒÑò, ­ƒÉç, ­ƒÑò, ­ƒÅü], turn=0, players=[Hare(team=ONE, position=0, salads=5, carrots=68, saladEaten=false, cards=[]), Hare(team=TWO, position=0, salads=5, carrots=68, saladEaten=false, cards=[])], lastMove=null))
08:40:14 INFO   sc.server.gaming.ReservationManager - Reservation afa8580f-f7a5-4881-b600-da2d3196a474 was redeemed.
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
08:40:14 INFO             sc.server.gaming.GameRoom - Starting Game(players=[ONE(Spieler 1), TWO(Spieler 2)], gameState=GameState(board=Board[ÔûÂ, P1, ­ƒÉç, ­ƒº║, ­ƒÉç, ­ƒÑò, ­ƒÑò, ­ƒÑò, P2, ­ƒÉç, ­ƒÑù, ­ƒªö, ­ƒÑò, ­ƒÑò, ­ƒÉç, ­ƒªö, P2, P1, ­ƒº║, ­ƒªö, ­ƒÑò, P2, ­ƒÑò, ­ƒÑù, ­ƒªö, ­ƒÑò, ­ƒÑò, P2, ­ƒÉç, ­ƒº║, ­ƒªö, ­ƒÑò, ­ƒÉç, ­ƒÑò, P1, P2, ­ƒÉç, ­ƒªö, ­ƒÑò, ­ƒÉç, P2, ­ƒÑò, ­ƒÑù, ­ƒªö, P1, ­ƒÑò, ­ƒÉç, ­ƒº║, P2, ­ƒÑò, ­ƒªö, ­ƒÑò, ­ƒÑò, ­ƒÉç, ­ƒº║, P2, ­ƒªö, ­ƒÑù, ­ƒÉç, ­ƒÑò, P1, ­ƒÑò, ­ƒÉç, ­ƒÑò, ­ƒÅü], turn=0, players=[Hare(team=ONE, position=0, salads=5, carrots=68, saladEaten=false, cards=[]), Hare(team=TWO, position=0, salads=5, carrots=68, saladEaten=false, cards=[])], lastMove=null))
08:40:14 DEBUG      sc.gui.controller.AppController - Requested View change from GAME_LOADING -> GAME
08:40:14 INFO    sc.framework.plugins.TwoPlayerGame - Sending MoveRequest to player ONE(Spieler 1)
08:40:14 INFO             sc.server.gaming.GameRoom - Updating Status to ACTIVE (was: CREATED)
08:40:15 DEBUG              sc.gui.view.ControlView - GameControlState START
08:40:15 DEBUG  s.gui.controller.GameFlowController - New state: GameState(board=Board[ÔûÂ, P1, ­ƒÉç, ­ƒº║, ­ƒÉç, ­ƒÑò, ­ƒÑò, ­ƒÑò, P2, ­ƒÉç, ­ƒÑù, ­ƒªö, ­ƒÑò, ­ƒÑò, ­ƒÉç, ­ƒªö, P2, P1, ­ƒº║, ­ƒªö, ­ƒÑò, P2, ­ƒÑò, ­ƒÑù, ­ƒªö, ­ƒÑò, ­ƒÑò, P2, ­ƒÉç, ­ƒº║, ­ƒªö, ­ƒÑò, ­ƒÉç, ­ƒÑò, P1, P2, ­ƒÉç, ­ƒªö, ­ƒÑò, ­ƒÉç, P2, ­ƒÑò, ­ƒÑù, ­ƒªö, P1, ­ƒÑò, ­ƒÉç, ­ƒº║, P2, ­ƒÑò, ­ƒªö, ­ƒÑò, ­ƒÑò, ­ƒÉç, ­ƒº║, P2, ­ƒªö, ­ƒÑù, ­ƒÉç, ­ƒÑò, P1, ­ƒÑò, ­ƒÉç, ­ƒÑò, ­ƒÅü], turn=0, players=[Hare(team=ONE, position=0, salads=5, carrots=68, saladEaten=false, cards=[]), Hare(team=TWO, position=0, salads=5, carrots=68, saladEaten=false, cards=[])], lastMove=null)
08:40:15 DEBUG              sc.gui.view.ControlView - GameControlState PLAYING
08:40:15 DEBUG              sc.gui.view.ControlView - GameControlState null
08:40:15 WARN             sc.server.gaming.GameRoom - PAUSE is already false, dropping request
xeruf commented 5 months ago

Fixed in https://github.com/software-challenge/gui/commit/84c5eea6958a0f03beea04e7119a91aea397e347, thanks for the heads up :)