Add: LimitedList

This commit is contained in:
2026-04-24 18:28:52 +02:00
parent 73ec565ffc
commit b413ff3bcf
2 changed files with 14 additions and 10 deletions
@@ -2,7 +2,7 @@ package it.polimi.ingsw.gc14;
import java.util.ArrayList; import java.util.ArrayList;
public class LimitedList<Player> extends ArrayList<Player> { public class LimitedList<String> extends ArrayList<String> {
private int limit; private int limit;
private final Runnable action; private final Runnable action;
@@ -12,7 +12,7 @@ public class LimitedList<Player> extends ArrayList<Player> {
} }
@Override @Override
public boolean add(Player element) { public boolean add(String element) {
boolean result = super.add(element); boolean result = super.add(element);
if (size() >= limit) { if (size() >= limit) {
action.run(); action.run();
@@ -23,4 +23,6 @@ public class LimitedList<Player> extends ArrayList<Player> {
public void setElement(int num) { public void setElement(int num) {
this.limit=num; this.limit=num;
} }
public int getLimit(){return limit;}
} }
@@ -27,14 +27,13 @@ public class ServerLauncher {
this.gameController = gameController; this.gameController = gameController;
this.serverTCP = serverTCP; this.serverTCP = serverTCP;
this.players = new LimitedList<>(5, ()->{ this.players = new LimitedList<>(5, ()->{
synchronized (gameController) {
try { try {
serverRMI.notifyAll(gameController.getModel()); run();
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (RemoteException e) { } catch (RemoteException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}
}); });
} }
@@ -70,7 +69,10 @@ public class ServerLauncher {
public void run() throws InterruptedException, RemoteException { public void run() throws InterruptedException, RemoteException {
// Aggiunge il primo player e imposta il numero di giocatori voluti // Aggiunge il primo player e imposta il numero di giocatori voluti
Game model = new Game(players.getLimit());
gameController.setModel(model);
serverRMI.notifyAll(model);
//serverTCP.broadcastUpdate(model);
while (true) { while (true) {