software-challenge / backend

Server, Client und Spiel-Plugins der Software-Challenge Germany
https://www.software-challenge.de
11 stars 10 forks source link

Incoming Moves don't get processed properly #305

Closed anarchuser closed 3 years ago

anarchuser commented 3 years ago

GUI Version: 21.0.6 7ec4e7b Platform: Windows

19:32:41 INFO  sc.server.gaming.GameRoom - Started the game.
19:34:37 WARN  sc.server.network.Client - Packet BLUE Piece PENTO_Z:0 [0,0] wasn't processed.
19:34:37 ERROR sc.networking.clients.XStreamClient - Unknown Communication Error
sc.networking.UnprocessedPacketException: Packet BLUE Piece PENTO_Z:0 [0,0] wasn't processed.
        at sc.server.network.Client.notifyOnPacket(Client.java:85)
        at sc.server.network.Client.onObject(Client.java:206)
        at sc.networking.clients.XStreamClient.receiveThread(XStreamClient.java:110)
        at sc.networking.clients.XStreamClient$1.run(XStreamClient.java:74)
        at java.lang.Thread.run(Thread.java:745)
19:34:37 WARN  sc.networking.clients.XStreamClient - Client sc.server.network.Client@1cbfd7e5 disconnected (Cause: UNKNOWN, Exception: {})
sc.networking.UnprocessedPacketException: Packet BLUE Piece PENTO_Z:0 [0,0] wasn't processed.
        at sc.server.network.Client.notifyOnPacket(Client.java:85)
        at sc.server.network.Client.onObject(Client.java:206)
        at sc.networking.clients.XStreamClient.receiveThread(XStreamClient.java:110)
        at sc.networking.clients.XStreamClient$1.run(XStreamClient.java:74)
        at java.lang.Thread.run(Thread.java:745)
19:34:37 INFO  sc.networking.clients.XStreamClient - Stopping XStreamClient ReceiveThread id:16 client:Client
19:34:37 WARN  sc.networking.clients.XStreamClient - ReceiveThread is stopping itself
19:34:37 INFO  sc.server.gaming.GameRoom - Removing Player One(One) from sc.server.gaming.GameRoom@18e93785
19:34:37 INFO  sc.server.gaming.GameRoom - Updating Status to OVER (was: ACTIVE)
19:34:37 INFO  sc.server.gaming.GameRoom - The game 95876e83-7bf1-4bd8-9f01-68c1bc87c13e is over. (regular=false)
Coronon commented 3 years ago

Server Version: 21.0.1 Platform: Windows Terminal: Powershell

Server:

.\start.bat                                                                    
C:\Users\?\Desktop\BlokusServer>java -Dfile.encoding=UTF-8 -Dlogback.configurationFile=logback.xml -jar server.jar 
20:48:53,244 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Users/?/Desktop/BlokusServer/logback.xml]
20:48:53,307 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
20:48:53,307 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
20:48:53,315 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
20:48:53,333 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@282ba1e - Will use gz compression
20:48:53,377 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - This appender no longer admits a layout as a sub-component, set an encoder instead.
20:48:53,377 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
20:48:53,377 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
20:48:53,378 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: log/game_server.log
20:48:53,378 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [log/game_server.log]
20:48:53,379 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
20:48:53,379 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
20:48:53,380 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.PatternLayout] for [layout] property
20:48:53,380 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
20:48:53,380 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
20:48:53,380 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
20:48:53,381 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [sc] to INFO
20:48:53,381 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
20:48:53,381 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
20:48:53,381 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
20:48:53,381 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
20:48:53,382 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@13b6d03 - Registering current configuration as safe fallback point

20:48:53 INFO  sc.server.Application - Server is starting up...
20:48:53 INFO  sc.server.Configuration - Loading configuration from C:\Users\Gaming\Desktop\BlokusServer\server.properties
20:48:53 INFO  sc.server.network.NewClientListener - Listening on port 13050 for incoming connections.
20:48:53 INFO  sc.server.network.ClientManager - ClientManager running
20:48:57 INFO  sc.server.network.NewClientListener - A Client connected...
20:48:57 INFO  sc.server.network.NewClientListener - Added Client sc.server.network.Client@4b6bd7bb to ReadyQueue.
20:48:57 INFO  sc.server.network.ClientManager - Delegating new client to ClientManager...
20:48:57 INFO  sc.server.network.ClientManager - Delegation done
Security framework of XStream not initialized, XStream is probably vulnerable.
20:49:04 INFO  sc.server.network.Client - Client authenticated as administrator
20:49:04 INFO  sc.server.gaming.GameRoomManager - Created new game of type swc_2021_blokus
20:49:47 INFO  sc.server.network.NewClientListener - A Client connected...
20:49:47 INFO  sc.server.network.NewClientListener - Added Client sc.server.network.Client@10034c43 to ReadyQueue.
20:49:47 INFO  sc.server.network.ClientManager - Delegating new client to ClientManager...
20:49:47 INFO  sc.server.network.ClientManager - Delegation done
20:49:50 INFO  sc.server.gaming.ReservationManager - Reservation c1d446f5-8f56-490e-82b6-de4460b2f73d was redeemed.
20:49:50 INFO  sc.server.gaming.GameRoom - Game isn't ready yet.
20:49:56 INFO  sc.server.network.NewClientListener - A Client connected...
20:49:56 INFO  sc.server.network.NewClientListener - Added Client sc.server.network.Client@70908c0f to ReadyQueue.
20:49:56 INFO  sc.server.network.ClientManager - Delegating new client to ClientManager...
20:49:56 INFO  sc.server.network.ClientManager - Delegation done
20:49:57 INFO  sc.server.gaming.ReservationManager - Reservation 3f04d68a-731a-43a6-8fc7-2bb3f031ba22 was redeemed.
20:49:57 INFO  sc.server.gaming.GameRoom - Updating Status to ACTIVE (was: CREATED)
20:49:57 INFO  sc.server.gaming.GameRoom - Started the game.
20:50:47 WARN  sc.server.network.Client - Packet BLUE Piece PENTO_P:0 [0,0] wasn't processed.
20:50:47 ERROR sc.networking.clients.XStreamClient - Unknown Communication Error
sc.networking.UnprocessedPacketException: Packet BLUE Piece PENTO_P:0 [0,0] wasn't processed.
        at sc.server.network.Client.notifyOnPacket(Client.java:85)
        at sc.server.network.Client.onObject(Client.java:206)
        at sc.networking.clients.XStreamClient.receiveThread(XStreamClient.java:110)
        at sc.networking.clients.XStreamClient$1.run(XStreamClient.java:74)
        at java.lang.Thread.run(Thread.java:745)
20:50:47 WARN  sc.networking.clients.XStreamClient - Client sc.server.network.Client@10034c43 disconnected (Cause: UNKNOWN, Exception: {})
sc.networking.UnprocessedPacketException: Packet BLUE Piece PENTO_P:0 [0,0] wasn't processed.
        at sc.server.network.Client.notifyOnPacket(Client.java:85)
        at sc.server.network.Client.onObject(Client.java:206)
        at sc.networking.clients.XStreamClient.receiveThread(XStreamClient.java:110)
        at sc.networking.clients.XStreamClient$1.run(XStreamClient.java:74)
        at java.lang.Thread.run(Thread.java:745)
20:50:47 INFO  sc.networking.clients.XStreamClient - Stopping XStreamClient ReceiveThread id:14 client:Client
20:50:47 WARN  sc.networking.clients.XStreamClient - ReceiveThread is stopping itself
20:50:47 INFO  sc.server.gaming.GameRoom - Removing Player One(One) from sc.server.gaming.GameRoom@3cc8b62e
20:50:47 INFO  sc.server.gaming.GameRoom - Updating Status to OVER (was: ACTIVE)
20:50:47 INFO  sc.server.gaming.GameRoom - The game 0f247d1b-574e-42db-a758-9fb327f7e8a8 is over. (regular=false)
20:50:47 WARN  sc.server.network.Client - Writing on a closed Stream -> dropped the packet (tried to send package of type RoomPacket) Thread: XStreamClient ReceiveThread id:14 client:Client
20:50:47 WARN  sc.server.network.Client - Writing on a closed Stream -> dropped the packet (tried to send package of type LeftGameEvent) Thread: XStreamClient ReceiveThread id:14 client:Client
20:50:47 INFO  s.f.plugins.RoundBasedGameInstance - Destroying Game
20:50:47 INFO  sc.server.network.ClientManager - Removing client sc.server.network.Client@10034c43 from client manager
20:50:47 INFO  sc.server.Lobby - sc.server.network.Client@10034c43 disconnected.

AdminClient:

nc 127.0.0.1 13050
<protocol>  <authenticate password="examplepassword"/>  <prepare gameType="swc_2021_blokus">    <slot displayName="One" canTimeout="false" shouldBePaused="false"/>    <slot displayName="Two" canTimeout="false" shouldBePaused="false"/>  </prepare>
<protocol>
  <prepared roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <reservation>c1d446f5-8f56-490e-82b6-de4460b2f73d</reservation>
    <reservation>3f04d68a-731a-43a6-8fc7-2bb3f031ba22</reservation>
  </prepared><observe roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"/>

  <observed roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"/>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="memento">
      <state class="state" currentColorIndex="0" turn="0" round="1" startPiece="PENTO_P">
        <startTeam class="team">ONE</startTeam>
        <board/>
        <blueShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </blueShapes>
        <yellowShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </yellowShapes>
        <redShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </redShapes>
        <greenShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </greenShapes>
        <lastMoveMono class="linked-hash-map"/>
        <orderedColors>
          <color>BLUE</color>
          <color>YELLOW</color>
          <color>RED</color>
          <color>GREEN</color>
        </orderedColors>
        <first displayName="One">
          <color class="team">ONE</color>
        </first>
        <second displayName="Two">
          <color class="team">TWO</color>
        </second>
        <startColor>BLUE</startColor>
      </state>
    </data>
  </room>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="result">
      <definition>
        <fragment name="Gewinner">
          <aggregation>SUM</aggregation>
          <relevantForRanking>true</relevantForRanking>
        </fragment>
        <fragment name="Ôêà Punkte">
          <aggregation>AVERAGE</aggregation>
          <relevantForRanking>true</relevantForRanking>
        </fragment>
      </definition>
      <score cause="LEFT" reason="Der Spieler hat das Spiel verlassen">
        <part>0</part>
        <part>0</part>
      </score>
      <score cause="REGULAR" reason="">
        <part>2</part>
        <part>0</part>
      </score>
      <winner displayName="One">
        <color class="team">ONE</color>
      </winner>
      <winner displayName="Two">
        <color class="team">TWO</color>
      </winner>
    </data>
  </room>
  <left roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"/>

Client1 (First turn):

nc 127.0.0.1 13050
<protocol><joinPrepared reservationCode="c1d446f5-8f56-490e-82b6-de4460b2f73d" />
<protocol>
  <joined roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"/>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="welcomeMessage" color="one"/>
  </room>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="memento">
      <state class="state" currentColorIndex="0" turn="0" round="1" startPiece="PENTO_P">
        <startTeam class="team">ONE</startTeam>
        <board/>
        <blueShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </blueShapes>
        <yellowShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </yellowShapes>
        <redShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </redShapes>
        <greenShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </greenShapes>
        <lastMoveMono class="linked-hash-map"/>
        <orderedColors>
          <color>BLUE</color>
          <color>YELLOW</color>
          <color>RED</color>
          <color>GREEN</color>
        </orderedColors>
        <first displayName="One">
          <color class="team">ONE</color>
        </first>
        <second displayName="Two">
          <color class="team">TWO</color>
        </second>
        <startColor>BLUE</startColor>
      </state>
    </data>
  </room>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="sc.framework.plugins.protocol.MoveRequest"/>
  </room><room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"> <data class="sc.plugin2021.SetMove">    <piece color="BLUE" kind="PENTO_P" rotation="NONE" isFlipped="false">      <position x="0" y="0"/>    </piece>   </data> </room>

</protocol>

Client2:

nc 127.0.0.1 13050
<protocol><joinPrepared reservationCode="3f04d68a-731a-43a6-8fc7-2bb3f031ba22" />
<protocol>
  <joined roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"/>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="welcomeMessage" color="two"/>
  </room>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="memento">
      <state class="state" currentColorIndex="0" turn="0" round="1" startPiece="PENTO_P">
        <startTeam class="team">ONE</startTeam>
        <board/>
        <blueShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </blueShapes>
        <yellowShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </yellowShapes>
        <redShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </redShapes>
        <greenShapes class="linked-hash-set">
          <shape>MONO</shape>
          <shape>DOMINO</shape>
          <shape>TRIO_L</shape>
          <shape>TRIO_I</shape>
          <shape>TETRO_O</shape>
          <shape>TETRO_T</shape>
          <shape>TETRO_I</shape>
          <shape>TETRO_L</shape>
          <shape>TETRO_Z</shape>
          <shape>PENTO_L</shape>
          <shape>PENTO_T</shape>
          <shape>PENTO_V</shape>
          <shape>PENTO_S</shape>
          <shape>PENTO_Z</shape>
          <shape>PENTO_I</shape>
          <shape>PENTO_P</shape>
          <shape>PENTO_W</shape>
          <shape>PENTO_U</shape>
          <shape>PENTO_R</shape>
          <shape>PENTO_X</shape>
          <shape>PENTO_Y</shape>
        </greenShapes>
        <lastMoveMono class="linked-hash-map"/>
        <orderedColors>
          <color>BLUE</color>
          <color>YELLOW</color>
          <color>RED</color>
          <color>GREEN</color>
        </orderedColors>
        <first displayName="One">
          <color class="team">ONE</color>
        </first>
        <second displayName="Two">
          <color class="team">TWO</color>
        </second>
        <startColor>BLUE</startColor>
      </state>
    </data>
  </room>
  <room roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8">
    <data class="result">
      <definition>
        <fragment name="Gewinner">
          <aggregation>SUM</aggregation>
          <relevantForRanking>true</relevantForRanking>
        </fragment>
        <fragment name="Ôêà Punkte">
          <aggregation>AVERAGE</aggregation>
          <relevantForRanking>true</relevantForRanking>
        </fragment>
      </definition>
      <score cause="LEFT" reason="Der Spieler hat das Spiel verlassen">
        <part>0</part>
        <part>0</part>
      </score>
      <score cause="REGULAR" reason="">
        <part>2</part>
        <part>0</part>
      </score>
      <winner displayName="One">
        <color class="team">ONE</color>
      </winner>
      <winner displayName="Two">
        <color class="team">TWO</color>
      </winner>
    </data>
  </room>
  <left roomId="0f247d1b-574e-42db-a758-9fb327f7e8a8"/>
xeruf commented 3 years ago

Obsolete