Skip to content

Commit

Permalink
Merge branch 'develop' into feature/SWP2019B-252-kartenlogik-serverse…
Browse files Browse the repository at this point in the history
…itige-basisbranch

# Conflicts:
#	.gitignore
#	Common/src/main/java/de/uol/swp/common/game/card/parser/components/CardStack.java
#	Server/src/main/java/de/uol/swp/server/game/Playground.java
#	Server/src/main/java/de/uol/swp/server/game/phase/CompositePhase.java
#	Server/src/main/java/de/uol/swp/server/game/player/Deck.java
  • Loading branch information
MrDrache333 committed May 7, 2020
2 parents 8aae43e + 27e1c7b commit 1d8264a
Show file tree
Hide file tree
Showing 68 changed files with 2,334 additions and 847 deletions.
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,9 @@ target/
.idea
*.iml
*.db
.idea
.xml
!.idea
.idea/inspectionProfiles/Project_Default.xml

*.xml

.idea/
17 changes: 6 additions & 11 deletions Client/src/main/java/de/uol/swp/client/ClientApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.google.inject.Guice;
import com.google.inject.Injector;
import de.uol.swp.client.di.ClientModule;
import de.uol.swp.client.game.GameService;
import de.uol.swp.client.lobby.LobbyService;
import de.uol.swp.client.sound.SoundMediaPlayer;
import de.uol.swp.common.lobby.message.*;
Expand All @@ -22,7 +23,6 @@
import io.netty.channel.Channel;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.control.Alert;
import javafx.stage.Stage;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
Expand All @@ -37,6 +37,7 @@ public class ClientApp extends Application implements ConnectionListener {
private int port;
private UserService userService;
private LobbyService lobbyService;
private GameService gameService;
private User user;
private ClientConnection clientConnection;
private EventBus eventBus;
Expand Down Expand Up @@ -98,6 +99,7 @@ public void start(Stage primaryStage) {
// get user service from guice, is needed for logout
this.userService = injector.getInstance(UserService.class);
this.lobbyService = injector.getInstance(LobbyService.class);
this.gameService = injector.getInstance(GameService.class);

// get event bus from guice
eventBus = injector.getInstance(EventBus.class);
Expand Down Expand Up @@ -229,11 +231,7 @@ public void onCreateLobbyMessage(CreateLobbyMessage message) {
@Subscribe
public void onUserJoinedLobbyMessage(UserJoinedLobbyMessage message) {
if (message.getUser().getUsername().equals(user.getUsername())) {
if (sceneManager.getGameManagement(message.getLobbyID()) != null) {
sceneManager.getGameManagement(message.getLobbyID()).showLobbyView();
} else {
sceneManager.showLobbyScreen(message.getUser(), message.getLobby().getName(), message.getLobbyID(), message.getGameOwner());
}
sceneManager.showLobbyScreen(message.getUser(), message.getLobby().getName(), message.getLobbyID(), message.getGameOwner());
LOG.info("User " + message.getUser().getUsername() + " joined lobby successfully");
}
}
Expand All @@ -251,7 +249,6 @@ public void onUserLeftLobbyMessage(UserLeftLobbyMessage message) {
if (message.getUser().getUsername().equals(user.getUsername())) {
sceneManager.showMainScreen(user);
LOG.info("User " + message.getUser().getUsername() + " left lobby successfully");
sceneManager.getGameManagement(message.getLobbyID()).close();
}
}

Expand Down Expand Up @@ -299,22 +296,19 @@ public void onUpdateUserFailedMessage(UpdateUserFailedMessage message) {
}
}


/**
* Empfängt vom Server die Message, dass ein User gekickt wurde. Bei diesem User wird das Lobbyfenster
* geschlossen und das MainMenu wird angezeigt
*
* @param message KickUserMessage
* @author Darian. Marvin
* @author Darian, Marvin
* @since Sprint 4
*/
@Subscribe
public void onKickUserMessage(KickUserMessage message) {
if (message.getUser().getUsername().equals(user.getUsername())) {
sceneManager.showMainScreen(user);
LOG.info("User " + message.getUser().getUsername() + " is kicked from the lobby successfully");
sceneManager.getGameManagement(message.getLobbyID()).close();
SceneManager.showAlert(Alert.AlertType.WARNING, "Sie wurden aus der Lobby entfernt", "Lobby verlassen");
}
}

Expand All @@ -333,6 +327,7 @@ public void onKickUserMessage(KickUserMessage message) {
@Subscribe
public void onUserLoggedOutMessage(UserLoggedOutMessage message) {
LOG.info("Logout and leaving of all lobbies successful.");

if (message.getUsername().equals(user.getUsername())) {
sceneManager.closeAllStages();
sceneManager.showLoginScreen();
Expand Down
81 changes: 39 additions & 42 deletions Client/src/main/java/de/uol/swp/client/SceneManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@
import de.uol.swp.client.auth.LoginPresenter;
import de.uol.swp.client.auth.events.ShowLoginViewEvent;
import de.uol.swp.client.chat.ChatService;
import de.uol.swp.client.game.GameManagement;
import de.uol.swp.client.game.GameService;
import de.uol.swp.client.game.event.GameQuitEvent;
import de.uol.swp.client.lobby.LobbyService;
import de.uol.swp.client.main.MainMenuPresenter;
import de.uol.swp.client.main.PrimaryPresenter;
import de.uol.swp.client.register.RegistrationPresenter;
import de.uol.swp.client.register.event.RegistrationCanceledEvent;
import de.uol.swp.client.register.event.RegistrationErrorEvent;
Expand All @@ -23,9 +22,9 @@
import de.uol.swp.client.settings.event.CloseSettingsEvent;
import de.uol.swp.client.settings.event.DeleteAccountEvent;
import de.uol.swp.client.sound.SoundMediaPlayer;
import de.uol.swp.client.user.UserService;
import de.uol.swp.common.user.User;
import de.uol.swp.common.user.UserDTO;
import de.uol.swp.common.user.UserService;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
Expand All @@ -37,8 +36,6 @@
import org.apache.logging.log4j.Logger;

import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
Expand Down Expand Up @@ -68,13 +65,11 @@ public class SceneManager {
private Scene mainScene;
private Scene settingsScene;
private Scene deleteAccountScene;
private Scene gameScene;
private Scene lastScene = null;
private Scene currentScene = null;
private User currentUser;
private Map<UUID, Scene> lobbyScenes = new HashMap<>();
private Map<UUID, GameManagement> games = new HashMap<>();
private Map<UUID, Stage> lobbyStages = new HashMap<>();
private PrimaryPresenter primaryPresenter;
private Scene primaryScene;


@Inject
Expand Down Expand Up @@ -209,7 +204,7 @@ public void showLoginErrorScreen() {
}

public void showMainScreen(User currentUser) {
showScene(mainScene, "Welcome " + currentUser.getUsername());
showScene(primaryScene, "Welcome " + currentUser.getUsername());
}


Expand All @@ -233,13 +228,7 @@ public void showRegistrationScreen() {
public void showLobbyScreen(User currentUser, String title, UUID lobbyID, UserDTO gameOwner) {
Platform.runLater(() -> {
//neue Instanz des LobbyPresenter mit (name, id) wird erstellt
GameManagement gameManagement = new GameManagement(eventBus, lobbyID, title, currentUser, chatService, lobbyService, userService, injector, gameOwner, gameService);

eventBus.register(gameManagement);

//LobbyPresenter und lobbyStage in der jeweilige Map speichern. Die lobbyID dient als Schlüssel.
games.put(lobbyID, gameManagement);
gameManagement.showLobbyView();
primaryPresenter.createLobby(currentUser, title, lobbyID, gameOwner);
});
}

Expand Down Expand Up @@ -267,18 +256,6 @@ public void showSettingsScreen(User loggedInUser) {
});
}

/**
* Gibt die übergebenen lobbyID zurück, die zum jeweiligen GameManagement gehört.
*
* @param lobbyID die übergebene LobbyID
* @return GameManagement
* @author Julia, Paula
* @since Sprint3
*/
public GameManagement getGameManagement(UUID lobbyID) {
return games.get(lobbyID);
}

/**
* Schließt alle Stages
*
Expand All @@ -287,7 +264,6 @@ public GameManagement getGameManagement(UUID lobbyID) {
*/
public void closeAllStages() {
Platform.runLater(() -> {
games.values().forEach(GameManagement::close);
if (settingsStage != null) {
settingsStage.close();
}
Expand All @@ -307,8 +283,8 @@ public void closeSettings() {

private void initViews() {
initLoginView();
initMainView();
initRegistrationView();
initPrimaryView();
}

private Parent initPresenter(String fxmlFile) {
Expand All @@ -325,6 +301,36 @@ private Parent initPresenter(String fxmlFile) {
return rootPane;
}

private Parent initPresenter(String fxmlFile, PrimaryPresenter presenter) {
Parent rootPane;
FXMLLoader loader = injector.getInstance(FXMLLoader.class);
try {
URL url = getClass().getResource(fxmlFile);
LOG.debug("Loading " + url);
loader.setLocation(url);
loader.setController(presenter);
rootPane = loader.load();
} catch (Exception e) {
throw new RuntimeException("Could not load View!" + e.getMessage(), e);
}
return rootPane;
}

private void initPrimaryView() {
if (primaryScene == null) {
primaryPresenter = new PrimaryPresenter();
primaryPresenter.initialise(eventBus, currentUser, chatService, lobbyService, userService, injector, gameService);
Parent rootPane = initPresenter(PrimaryPresenter.fxml, primaryPresenter);
primaryScene = new Scene(rootPane, 1400, 790);
primaryScene.getStylesheets().add(styleSheet);
primaryScene.getStylesheets().add(PrimaryPresenter.css);
primaryStage.setOnCloseRequest(event -> {
userService.logout(currentUser);
});
eventBus.register(primaryPresenter);
}
}

private Parent initSettingsPresenter(SettingsPresenter settingsPresenter) {
Parent rootPane;
FXMLLoader loader = injector.getInstance(FXMLLoader.class);
Expand Down Expand Up @@ -355,15 +361,6 @@ private Parent initDeleteAccountPresenter(DeleteAccountPresenter deleteAccountPr
return rootPane;
}

private void initMainView() {
if (mainScene == null) {
Parent rootPane = initPresenter(MainMenuPresenter.fxml);
mainScene = new Scene(rootPane, 1280, 750);
mainScene.getStylesheets().add(styleSheet);
mainScene.getStylesheets().add(MainMenuPresenter.css);
}
}

private void initLoginView() {
if (loginScene == null) {
Parent rootPane = initPresenter(LoginPresenter.fxml);
Expand Down Expand Up @@ -393,9 +390,9 @@ private void initSettingsView(SettingsPresenter settingsPresenter) {
private void initDeleteAccountView() {
if (deleteAccountScene == null) {
Parent rootPane = initDeleteAccountPresenter(new DeleteAccountPresenter(currentUser, lobbyService, userService, eventBus));
deleteAccountScene = new Scene(rootPane, 200, 100);
deleteAccountScene = new Scene(rootPane, 250, 100);
deleteAccountScene.getStylesheets().add(SettingsPresenter.css);

}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import de.uol.swp.client.SceneManager;
import de.uol.swp.client.SceneManagerFactory;
import de.uol.swp.client.chat.ChatService;
import de.uol.swp.client.game.GameService;
import de.uol.swp.client.user.UserService;
import javafx.fxml.FXMLLoader;

Expand Down
Loading

0 comments on commit 1d8264a

Please sign in to comment.