// Method that allows the user to create a new game in the database public void CreateGame( ScreenFrame frame, ServerConnection server, User currentUser, Parsers parser) { try { // Defining variables from typed values in the CreateScreen panel String gamename = frame.getCreate().getTfGameName().getText(); int mapSize = frame.getCreate().getTfMapSize(); String controls = frame.getCreate().getTfControls().getText(); // Checks whether the typed in values are legitimate // Strings controls and gamename can't be empty and the map size can't be 0 if (!controls.equals("") && mapSize != 0 && !gamename.equals("")) { // Creates objects of/instansialize Game and Gamer classes Game game = new Game(); Gamer gamer = new Gamer(); // Sets controls equal to the typed controls gamer.setControls(controls); // Sets id equal to the logged in user (the current user) gamer.setId(currentUser.getId()); // Sets the above defined id as the host of the game game.setHost(gamer); // Sets the gamename and mapsize equal to the typed values game.setName(gamename); game.setMapSize(mapSize); // All of the above setters are used to @post the variables into the database // String json = new Gson().toJson(game); String message = parser.createParser(server.post(json, "games/")); // Checks if the received list of games contains the newly created game // If so a confirmation will be shown to the user if (message.equals(game.getName())) { JOptionPane.showMessageDialog( frame, "Game was created!\nIt's called " + game.getName(), "Success!", JOptionPane.INFORMATION_MESSAGE); } } // Prints a stacktrace when catching an unforeseen error } catch (Exception e) { e.printStackTrace(); } }
@Override public void actionPerformed(ActionEvent e) { switch (e.getActionCommand()) { case "Cancel": screen.show("menu"); break; case "Start game": Game startGame = null; // 1. if tjekker værdien af hvad der er valgt i comboBoxen og sammenligner med de spil som // for-loopet kører igennem // 2. if gør så hosten ikke kan joine sit eget spil for (Game g : games) { if (g.getName().equals(screen.getFindGamePanel().getSelectedGame())) { if (g.getHost().getId() != currentUser.getId()) startGame = g; } } if (startGame != null) { Gamer opponent = new Gamer(); opponent.setId(currentUser.getId()); opponent.setControls(screen.getFindGamePanel().getDirectionsTextfield()); startGame.setOpponent(opponent); String joinGamemessage = api.joinGame(startGame); String startGamemessage = api.startGame(startGame); System.out.println(startGamemessage); String winnerName = ""; for (User u : users) { try { if (u.getId() == Integer.parseInt(startGamemessage)) { winnerName = u.getUsername(); } } catch (NumberFormatException e1) { e1.printStackTrace(); } } JOptionPane.showMessageDialog( screen, joinGamemessage + ". The winner was:" + winnerName); } else { JOptionPane.showMessageDialog(screen, "You can't join a game where you're the host"); } break; } }
@Override public void actionPerformed(ActionEvent e) { switch (e.getActionCommand()) { case "Cancel": screen.show("menu"); break; case "Delete game": Game deleteGame = new Game(); deleteGame.setName(screen.getDeleteGamePanel().getSelectedGame()); for (Game g : deleteGames) { if (g.getName().equals(screen.getDeleteGamePanel().getSelectedGame())) { deleteGame = g; } } // Besked om at spillet er slettet String message = api.deleteGame(deleteGame.getGameId()); JOptionPane.showMessageDialog(screen, message); if (message.equals("Game was deleted")) { screen.getDeleteGamePanel().removeGame(); } break; } }