added RMVLSt command to remove a client from gui

This commit is contained in:
Sebastian Lenzlinger 2022-05-01 15:15:06 +02:00
parent 578016d11d
commit 58e2d693bb
8 changed files with 460 additions and 458 deletions

View File

@ -31,8 +31,9 @@ public class HumanNPC extends Human {
}
/**
* Sends a msg to the ServerGameInfoHandler.humanNpcParser to decide what has to happen now, if the
* npc hasn't been kicked off 8(should never happen to a human though)
* Sends a msg to the ServerGameInfoHandler.humanNpcParser to decide what has to happen now, if
* the npc hasn't been kicked off 8(should never happen to a human though)
*
* @param msg the message that is sent to this player.
* @param game the game the HumanNPC lives on (in game.gameState.passengerTrain)
*/
@ -44,22 +45,23 @@ public class HumanNPC extends Human {
}
/**
* Currently returns a random integer for voting, but only for passengers that haven't been
* kicked off yet
* Currently returns a random integer for voting, but only for passengers that haven't been kicked
* off yet
*
* @param game the game this NPC lives on
*/
public void vote(Game game) {
Passenger[] passengers = game.getGameState().getPassengerTrain();
int kickedOffCounter = 0;
for(Passenger passenger : passengers) {
if(passenger.getKickedOff()) {
for (Passenger passenger : passengers) {
if (passenger.getKickedOff()) {
kickedOffCounter++;
}
}
int[] inGamePositions = new int[passengers.length - kickedOffCounter];
int i = 0;
for(Passenger passenger : passengers) {
if(!passenger.getKickedOff()) {
for (Passenger passenger : passengers) {
if (!passenger.getKickedOff()) {
inGamePositions[i] = passenger.getPosition();
i++;
}
@ -67,7 +69,7 @@ public class HumanNPC extends Human {
int randomNr = (int) (Math.random() * inGamePositions.length);
vote = inGamePositions[randomNr];
hasVoted = true;
game.getGameState().getClientVoteData().setHasVoted(position,hasVoted);
game.getGameState().getClientVoteData().setHasVoted(position, hasVoted);
LOGGER.info("HumanNPC at Position: " + this.getPosition() + " has voted for: " + vote);
}
}

View File

@ -27,7 +27,8 @@ import javafx.scene.text.TextFlow;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class GameController implements Initializable{
public class GameController implements Initializable {
public static final Logger LOGGER = LogManager.getLogger(GameController.class);
public static final BudaLogConfig l = new BudaLogConfig(LOGGER);
@ -39,6 +40,7 @@ public class GameController implements Initializable{
public GameController() {
super();
}
//TODO(Seraina, Sebi): Same issue as ChatController? do with setters?
public GameController(ClientModel c, GameStateModel g) {
client = c;
@ -173,11 +175,12 @@ public class GameController implements Initializable{
LOGGER.info("Do you even get here");
LOGGER.info(client.getClient());
LOGGER.info(client.getClient().getPosition());
if(client.getClient() == null) {
if (client.getClient() == null) {
LOGGER.info("But why???");
}
client.getClient().sendMsgToServer(
Protocol.sendMessageToAllClients + "$" + Protocol.printToGUI + "$" +GuiParameters.noiseHeardAtPosition + "$"
Protocol.sendMessageToAllClients + "$" + Protocol.printToGUI + "$"
+ GuiParameters.noiseHeardAtPosition + "$"
+ client.getClient().getPosition()); //TODO: Test!!
}
@ -191,14 +194,15 @@ public class GameController implements Initializable{
/**
* Takes a given message and displays it in the notificationText Flow in the game Scene
*
* @param msg the message to be displayed
*/
public void addMessageToNotificationText(String msg){
public void addMessageToNotificationText(String msg) {
LOGGER.trace("addMessage " + msg);
Text notification = new Text(msg);
notification.setFill(Color.BLACK);
notification.setStyle("-fx-font: 50 arial;");
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
@ -217,7 +221,7 @@ public class GameController implements Initializable{
*/
public void clearNotificationText() {
LOGGER.trace("clear notify");
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
@ -257,7 +261,7 @@ public class GameController implements Initializable{
name5.setStyle("-fx-font: 25 arial;");
name5.setFill(Color.WHITE);
Text role0;
if(kickedOff[0]) {
if (kickedOff[0]) {
role0 = new Text("\nkicked off");
} else {
role0 = new Text("\n" + roles[0]);
@ -265,7 +269,7 @@ public class GameController implements Initializable{
role0.setStyle("-fx-font: 25 arial;");
role0.setFill(Color.WHITE);
Text role1;
if(kickedOff[1]) {
if (kickedOff[1]) {
role1 = new Text("\nkicked off");
} else {
role1 = new Text("\n" + roles[1]);
@ -273,7 +277,7 @@ public class GameController implements Initializable{
role1.setStyle("-fx-font: 25 arial;");
role1.setFill(Color.WHITE);
Text role2;
if(kickedOff[2]) {
if (kickedOff[2]) {
role2 = new Text("\nkicked off");
} else {
role2 = new Text("\n" + roles[2]);
@ -281,7 +285,7 @@ public class GameController implements Initializable{
role2.setStyle("-fx-font: 25 arial;");
role2.setFill(Color.WHITE);
Text role3;
if(kickedOff[3]) {
if (kickedOff[3]) {
role3 = new Text("\nkicked off");
} else {
role3 = new Text("\n" + roles[3]);
@ -289,7 +293,7 @@ public class GameController implements Initializable{
role3.setStyle("-fx-font: 25 arial;");
role3.setFill(Color.WHITE);
Text role4;
if(kickedOff[4]) {
if (kickedOff[4]) {
role4 = new Text("\nkicked off");
} else {
role4 = new Text("\n" + roles[4]);
@ -297,7 +301,7 @@ public class GameController implements Initializable{
role4.setStyle("-fx-font: 25 arial;");
role4.setFill(Color.WHITE);
Text role5;
if(kickedOff[5]) {
if (kickedOff[5]) {
role5 = new Text("\nkicked off");
} else {
role5 = new Text("\n" + roles[5]);
@ -305,7 +309,7 @@ public class GameController implements Initializable{
role5.setStyle("-fx-font: 25 arial;");
role5.setFill(Color.WHITE);
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
@ -334,7 +338,7 @@ public class GameController implements Initializable{
});
}
public Image loadBellImage(){
public Image loadBellImage() {
Image bell = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/DayOpen/bell.png");
return bell;
}
@ -342,9 +346,9 @@ public class GameController implements Initializable{
/**
* Adds an image of a bell on top of button0
*/
public void noiseDisplay0(){
public void noiseDisplay0() {
LOGGER.debug("noise0 called");
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
@ -360,9 +364,9 @@ public class GameController implements Initializable{
/**
* Adds an image of a bell on top of button1
*/
public void noiseDisplay1(){
public void noiseDisplay1() {
LOGGER.debug("noise1 called");
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
@ -377,15 +381,16 @@ public class GameController implements Initializable{
/**
* Adds an image of a bell on top of button2
*/
public void noiseDisplay2(){
public void noiseDisplay2() {
LOGGER.debug("noise2 called");
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
noiseImage2.setImage(loadBellImage());
} catch (Exception e) {
LOGGER.debug(e.getMessage());;
LOGGER.debug(e.getMessage());
;
}
}
});
@ -432,7 +437,7 @@ public class GameController implements Initializable{
*/
public void noiseDisplay5() {
LOGGER.debug("noise5 called");
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
@ -448,7 +453,7 @@ public class GameController implements Initializable{
* Clears all bells from the view
*/
public void clearAllNoiseDisplay() {
Platform.runLater(new Runnable(){
Platform.runLater(new Runnable() {
@Override
public void run() {
try {

View File

@ -9,6 +9,7 @@ public class ClientListItem {
private final int id;
private static int uid = 0;
public ClientListItem(String name, int id) {
this.name = new SimpleStringProperty(name);
this.id = id;
@ -19,7 +20,7 @@ public class ClientListItem {
}
@Override
public String toString(){
public String toString() {
return name + " ID: " + id;
}

View File

@ -26,8 +26,7 @@ public class LobbyListItem {
private final int MAX_CAPACITY = 6;
private SimpleIntegerProperty noOfPlayersInLobby;
public LobbyListItem(SimpleStringProperty lobbyID,
SimpleStringProperty adminName,
public LobbyListItem(SimpleStringProperty lobbyID, SimpleStringProperty adminName,
SimpleBooleanProperty ownedByClient, SimpleBooleanProperty isOpen,
SimpleIntegerProperty noOfPlayersInLobby) {
this.lobbyID = lobbyID;
@ -66,8 +65,7 @@ public class LobbyListItem {
return clientsInLobby;
}
public void setClientsInLobby(
ObservableList<SimpleStringProperty> clientsInLobby) {
public void setClientsInLobby(ObservableList<SimpleStringProperty> clientsInLobby) {
this.clientsInLobby = clientsInLobby;
}
@ -113,14 +111,9 @@ public class LobbyListItem {
@Override
public String toString() {
return "LobbyListItem{" +
"lobbyID=" + lobbyID +
", adminName=" + adminName +
", clientsInLobby=" + clientsInLobby +
", ownedByClient=" + ownedByClient +
", isOpen=" + isOpen +
", MAX_CAPACITY=" + MAX_CAPACITY +
", noOfPlayersInLobby=" + noOfPlayersInLobby +
'}';
return "LobbyListItem{" + "lobbyID=" + lobbyID + ", adminName=" + adminName
+ ", clientsInLobby=" + clientsInLobby + ", ownedByClient=" + ownedByClient + ", isOpen="
+ isOpen + ", MAX_CAPACITY=" + MAX_CAPACITY + ", noOfPlayersInLobby=" + noOfPlayersInLobby
+ '}';
}
}

View File

@ -335,15 +335,6 @@ public class LoungeSceneViewController implements Initializable {
});
}
public void updateClientListView(ObservableList<ClientListItem> names) {
ObservableList<ClientListItem> clientsLeft = ClientListView.getItems();
clientsLeft.removeAll(names);
this.ClientListView.setItems(names);
for (ClientListItem gone : clientsLeft) {
//TODO
}
}
/**
* Adds players to a lobby
* "NMEMB" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters}
@ -426,6 +417,20 @@ public class LoungeSceneViewController implements Initializable {
}
public void removeClientFromList(String name){
Iterator<ClientListItem> it = clients.iterator();
while (it.hasNext()) {
String uid = it.next().getName();
if (uid.equals(name)) {
it.remove();
break;
}
} }
public void removeClientFromLobby(String s){
//todo
}
public void newGame() {
client.getClient().sendMsgToServer(Protocol.createNewLobby);
}
@ -444,17 +449,6 @@ public class LoungeSceneViewController implements Initializable {
});
}
public void removePlayer(String id) {
Iterator<SimpleStringProperty> it = client.getAllClients().iterator();
while (it.hasNext()) {
String uid = it.next().getValue();
if (uid.equals(id)) {
it.remove();
break;
}
}
}
/**
* Utility to set the client model for this class
*

View File

@ -79,4 +79,10 @@ public class GuiParameters {
* Indicates a player has joined the server. Form: {@code NPLOS$<playerName>}
*/
public static final String newPlayerOnServer = "NPLOS";
/**
* Tells gui to remove a certain player from the list of clients based on user name. Form: {@code
* RMVLST$<playerName>}
*/
public static final String removePlayerFromList = "RMVLST";
}

View File

@ -475,8 +475,9 @@ public class ClientHandler implements Runnable {
public void createNewLobby() {
if (Lobby.clientIsInLobby(this) == -1) {
Lobby newGame = new Lobby(this);
guiUpdateAll(Protocol.printToGUI + "$" + GuiParameters.newLobbyCreated + "$" + getLobby()
.getLobbyID() + ":" + getClientUserName());
guiUpdateAll(
Protocol.printToGUI + "$" + GuiParameters.newLobbyCreated + "$" + getLobby().getLobbyID()
+ ":" + getClientUserName());
LOGGER.debug("Lobby: " + getLobby().getLobbyID() + ". In method createNewLobby()");
} else {
sendAnnouncementToClient("You are already in lobby nr. " + Lobby.clientIsInLobby(this));