Skip to content

Commit 34f1081

Browse files
committed
show start message also in self play
1 parent ca969ad commit 34f1081

File tree

5 files changed

+42
-34
lines changed

5 files changed

+42
-34
lines changed

src/main/client/src/component/Chat.jsx

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -109,26 +109,21 @@ export const Chat = ({chatId, className}) => {
109109
bottomElement={<>
110110
{messages.map(message => (
111111
<p key={message.n}>
112-
{
113-
message.user ? (
114-
<span>{message.user + ": " + message.message}</span>
115-
) : (
116-
message.type ? (
117-
<>
118-
<table className="table-fixed italic text-gray-400">
119-
<th>Spiel gestartet</th>
120-
{Object.keys(message.pair).map((key, i) => (
121-
<tr key={i}>
122-
<td>{key}</td>
123-
<td>{message.pair[key]}</td>
124-
</tr>
125-
))}
126-
</table>
127-
</>
128-
) : (
129-
<span className="italic text-gray-400">{message.message}</span>
130-
)
131-
)}
112+
{message.type === "start" && <>
113+
<div className="w-full grid grid-cols-2 text-stone-100">
114+
{Object.keys(message.rows).map((key) => <>
115+
<div>{key}</div>
116+
<div>{message.rows[key]}</div>
117+
</>)}
118+
</div>
119+
<div className="my-2 italic text-gray-400">{message.message}</div>
120+
</>}
121+
{message.type === "status" && (
122+
<div className="my-2 italic text-gray-400">{message.message}</div>
123+
)}
124+
{message.type === "user" && (
125+
<div>{message.user + ": " + message.message}</div>
126+
)}
132127
</p>
133128
))}
134129
</>}

src/main/java/com/bernd/ChatController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public ChatWithUsers getChat(@PathVariable String id) {
4848
public void sendChat(ChatRequest chatRequest, Principal principal) {
4949
String user = Auth.getPrincipal(principal);
5050
Chat chat = chats.get(chatRequest.id());
51-
ChatMessage message = new ChatMessage(chat.counter().getAndIncrement(), chatRequest.message(), user, false, null);
51+
ChatMessage message = new ChatMessage(chat.counter().getAndIncrement(), chatRequest.message(), user, "user", null);
5252
chat.messages().add(message);
5353
roomManager.updateRooms(user, chat.id());
5454
operations.convertAndSend("/topic/chat/" + chat.id(), message);

src/main/java/com/bernd/GameController.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.bernd.model.OpenGame;
1212
import com.bernd.model.ViewGame;
1313
import com.bernd.util.RandomString;
14-
import java.util.HashMap;
1514
import org.springframework.http.HttpStatus;
1615
import org.springframework.http.ResponseEntity;
1716
import org.springframework.messaging.core.MessageSendingOperations;
@@ -87,7 +86,7 @@ public void action(Move move, Principal p) {
8786
Move lastMove = game.getLastMove();
8887
if (lastMove.end()) {
8988
Chat chat = chats.get(game.id());
90-
ChatMessage message = new ChatMessage(chat.counter().getAndIncrement(), game.getScore(), null, false, null);
89+
ChatMessage message = new ChatMessage(chat.counter().getAndIncrement(), game.getScore(), null, "status", null);
9190
chat.messages().add(message);
9291
operations.convertAndSend("/topic/chat/" + chat.id(), message);
9392
}
@@ -137,13 +136,9 @@ public ResponseEntity<?> accept(@RequestBody AcceptRequest acceptRequest) {
137136
activeGames.put(ActiveGame.fromGame(fullGame));
138137
Chat chat = chats.get(openGame.id());
139138

140-
HashMap<String, String> spielwerte = new HashMap<>();
141-
spielwerte.put("Handicap", Integer.toString(fullGame.handicap()));
142-
spielwerte.put("Black", fullGame.black());
143-
spielwerte.put("White", fullGame.white());
144-
ChatMessage typeMessage = new ChatMessage(chat.counter().getAndIncrement(), "", null,true, spielwerte);
145-
chat.messages().add(typeMessage);
146-
operations.convertAndSend("/topic/chat/" + chat.id(), typeMessage);
139+
ChatMessage startMessage = ChatMessage.createStartMessage(chat, fullGame);
140+
chat.messages().add(startMessage);
141+
operations.convertAndSend("/topic/chat/" + chat.id(), startMessage);
147142
operations.convertAndSend("/topic/game/" + fullGame.id(), fullGame.toView());
148143
operations.convertAndSend("/topic/lobby/open_games", openGames.games());
149144
operations.convertAndSend("/topic/lobby/active_games", activeGames.games());

src/main/java/com/bernd/LobbyController.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.bernd.game.MoveList;
44
import com.bernd.model.ActiveGame;
55
import com.bernd.model.ActiveGameList;
6+
import com.bernd.model.Chat;
7+
import com.bernd.model.ChatMessage;
68
import com.bernd.model.Game;
79
import com.bernd.model.MatchRequest;
810
import com.bernd.model.OpenGameList;
@@ -25,18 +27,21 @@ public class LobbyController {
2527
private final Games games;
2628
private final OpenGames openGames;
2729
private final ActiveGames activeGames;
30+
private final Chats chats;
2831

2932
LobbyController(
3033
MessageSendingOperations<String> operations,
3134
LobbyUsers lobbyUsers,
3235
OpenGames openGames,
3336
Games games,
34-
ActiveGames activeGames) {
37+
ActiveGames activeGames,
38+
Chats chats) {
3539
this.operations = operations;
3640
this.lobbyUsers = lobbyUsers;
3741
this.games = games;
3842
this.openGames = openGames;
3943
this.activeGames = activeGames;
44+
this.chats = chats;
4045
}
4146

4247
@GetMapping(value = "/api/lobby/hello")
@@ -78,6 +83,9 @@ public ViewGame startEdit(@RequestBody MatchRequest request) {
7883
new int[]{-1, -1},
7984
MoveList.create(request.dim())));
8085
activeGames.put(ActiveGame.fromGame(game));
86+
Chat chat = chats.get(game.id());
87+
ChatMessage startMessage = ChatMessage.createStartMessage(chat, game);
88+
chat.messages().add(startMessage);
8189
return game.toView();
8290
}
8391

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
package com.bernd.model;
22

3-
import java.util.HashMap;
3+
import java.util.LinkedHashMap;
4+
import java.util.Map;
45

56
public record ChatMessage(
67
int n,
78
String message,
89
String user,
9-
boolean type,
10-
HashMap<String, String> pair) {
10+
String type,
11+
Map<String, String> rows) {
12+
13+
public static ChatMessage createStartMessage(Chat chat, Game game) {
14+
Map<String, String> rows = new LinkedHashMap<>();
15+
rows.put("Black", game.black());
16+
rows.put("White", game.white());
17+
int handicap = game.handicap();
18+
rows.put("Handicap", handicap == 0 ? "-" : Integer.toString(handicap));
19+
return new ChatMessage(chat.counter().getAndIncrement(), "Game Start", null, "start", rows);
20+
}
1121
}

0 commit comments

Comments
 (0)