Fix: Dealer button display issue

This commit is contained in:
Julian Kropff
2026-04-12 21:47:13 +02:00
parent 6216268658
commit b208f1fffd
@@ -496,6 +496,24 @@ public class CasinoGameController {
return; return;
} }
java.util.List<Player> opponents = buildOpponents(players);
boolean meFound = opponents.size() != players.size();
LOGGER.info("updatePlayers: total=" + players.size()
+ " myPlayerId=" + myPlayerId
+ " meFound=" + meFound
+ " opponents=" + opponents.size());
setOpponent(player1Controller, opponents, 0);
setOpponent(player2Controller, opponents, 1);
setOpponent(player3Controller, opponents, 2);
safeRefresh(player1Controller);
safeRefresh(player2Controller);
safeRefresh(player3Controller);
}
private java.util.List<Player> buildOpponents(List<Player> players) {
java.util.List<Player> opponents = new java.util.ArrayList<>(); java.util.List<Player> opponents = new java.util.ArrayList<>();
boolean meFound = false; boolean meFound = false;
@@ -517,18 +535,7 @@ public class CasinoGameController {
opponents.addAll(players); opponents.addAll(players);
} }
LOGGER.info("updatePlayers: total=" + players.size() return opponents;
+ " myPlayerId=" + myPlayerId
+ " meFound=" + meFound
+ " opponents=" + opponents.size());
setOpponent(player1Controller, opponents, 0);
setOpponent(player2Controller, opponents, 1);
setOpponent(player3Controller, opponents, 2);
safeRefresh(player1Controller);
safeRefresh(player2Controller);
safeRefresh(player3Controller);
} }
private void setOpponent(PlayerStatusController slot, java.util.List<Player> list, int index) { private void setOpponent(PlayerStatusController slot, java.util.List<Player> list, int index) {
@@ -556,30 +563,46 @@ public class CasinoGameController {
* @param s The current game state containing the dealer index. * @param s The current game state containing the dealer index.
*/ */
private void highlightDealer(GameState s) { private void highlightDealer(GameState s) {
if (player1Controller != null) player1Controller.setDealer(false);
player1Controller.setDealer(false); if (player2Controller != null) player2Controller.setDealer(false);
player2Controller.setDealer(false); if (player3Controller != null) player3Controller.setDealer(false);
player3Controller.setDealer(false);
myDealerIcon.setVisible(false); myDealerIcon.setVisible(false);
int dealer = s.dealer; if (s == null || s.players == null || s.players.isEmpty()) {
return;
}
if (s.dealer < 0 || s.dealer >= s.players.size()) {
return;
}
if (dealer == DEALER_PLAYER_1) { Player dealerPlayer = s.players.get(s.dealer);
if (dealerPlayer == null || dealerPlayer.getId() == null) {
return;
}
if (myPlayerId != null && myPlayerId.equals(dealerPlayer.getId())) {
myDealerIcon.setVisible(true);
return;
}
java.util.List<Player> opponents = buildOpponents(s.players);
if (opponents.size() > 0 && samePlayer(opponents.get(0), dealerPlayer) && player1Controller != null) {
player1Controller.setDealer(true); player1Controller.setDealer(true);
} }
if (opponents.size() > 1 && samePlayer(opponents.get(1), dealerPlayer) && player2Controller != null) {
if (dealer == DEALER_PLAYER_2) {
player2Controller.setDealer(true); player2Controller.setDealer(true);
} }
if (opponents.size() > 2 && samePlayer(opponents.get(2), dealerPlayer) && player3Controller != null) {
if (dealer == DEALER_PLAYER_3) {
player3Controller.setDealer(true); player3Controller.setDealer(true);
} }
}
if (dealer == DEALER_MYSELF) { private boolean samePlayer(Player a, Player b) {
myDealerIcon.setVisible(true); if (a == null || b == null || a.getId() == null || b.getId() == null) {
return false;
} }
return a.getId().equals(b.getId());
} }
/** /**