View Javadoc

1   package net.sourceforge.simplegamenet.framework.gui;
2   
3   import java.io.IOException;
4   import java.net.InetAddress;
5   import javax.swing.*;
6   import net.sourceforge.simplegamenet.framework.model.ServerEngineImpl;
7   import net.sourceforge.simplegamenet.framework.transport.RemovePlayerType;
8   import net.sourceforge.simplegamenet.specs.model.GameFactory;
9   import net.sourceforge.simplegamenet.specs.to.GameSettings;
10  import net.sourceforge.simplegamenet.specs.to.PlayerSettings;
11  import net.sourceforge.simplegamenet.specs.to.PlayerSettingsMap;
12  
13  public class ServerGUIFacade {
14  
15      protected SimpleGameNetFrame simpleGameNetFrame;
16  
17      protected JTextArea logTextArea;
18  
19      private ServerEngineImpl serverEngineImpl = null;
20  
21      public ServerGUIFacade(SimpleGameNetFrame simpleGameNetFrame, JTextArea logTextArea) {
22          this.simpleGameNetFrame = simpleGameNetFrame;
23          this.logTextArea = logTextArea;
24      }
25  
26      public void hostGame(ConnectionConfig connectionConfig, GameFactory gameFactory)
27              throws IOException {
28          serverEngineImpl = new ServerEngineImpl(this, connectionConfig.getPort(),
29                  connectionConfig.isBadLanguageFiltered(), gameFactory,
30                  connectionConfig.getGameSettings());
31          InetAddress hostInetAddress = InetAddress.getLocalHost();
32          logTextArea.append("Hosting " + gameFactory.getName() + " server at "
33                  + hostInetAddress.getHostAddress() + " on port " + connectionConfig.getPort()
34                  + "\n");
35      }
36  
37      public void gameSettingsUpdated(GameSettings gameSettings) {
38          logTextArea.append("Game settings updated.\n");
39      }
40  
41      public void playerAdded(PlayerSettingsMap playerSettingsMap, PlayerSettings playerSettings) {
42          logTextArea.append("New player added: " + playerSettings.getNickname() + "\n");
43      }
44  
45      public void playerSettingsUpdated(PlayerSettingsMap playerSettingsMap,
46                                        PlayerSettings updatedPlayerSettings) {
47          logTextArea.append("Player settings updated for "
48                  + updatedPlayerSettings.getNickname()
49                  + "\n");
50      }
51  
52      public void removePlayer(PlayerSettingsMap playerSettingsMap, PlayerSettings playerSettings,
53                               int removePlayerType) {
54          switch (removePlayerType) {
55              case RemovePlayerType.LEFT:
56                  logTextArea.append("Player left: " + playerSettings.getNickname() + "\n");
57                  break;
58              case RemovePlayerType.PROTOCOL_VIOLATION_LEFT:
59                  logTextArea.append("Player left due to server protocol violation: "
60                          + playerSettings.getNickname() + "\n");
61                  break;
62              case RemovePlayerType.KICKED:
63                  logTextArea.append("Player kicked: " + playerSettings.getNickname() + "\n");
64                  break;
65              case RemovePlayerType.BANNED:
66                  logTextArea.append("Player banned: " + playerSettings.getNickname() + "\n");
67                  break;
68              case RemovePlayerType.DISCONNECTED:
69                  logTextArea.append("Player disconnected: " + playerSettings.getNickname()
70                          + "\n");
71                  break;
72              case RemovePlayerType.PROTOCOL_VIOLATION_KICKED:
73                  logTextArea.append("Protocol violating player kicked: "
74                          + playerSettings.getNickname() + "\n");
75                  break;
76          }
77      }
78  
79      public void gameStarted() {
80          logTextArea.append("Game started.\n");
81      }
82  
83      public void gameStopping() {
84          logTextArea.append("Game stopping...\n");
85      }
86  
87      public void gameAborting() {
88          logTextArea.append("Game aborting...\n");
89      }
90  
91      public void gameEnded() {
92          logTextArea.append("Game ended.\n");
93      }
94  
95      public void closeServer() {
96          serverEngineImpl.closeServerInServerThread();
97      }
98  
99      public void hostedGameQuit() {
100         logTextArea.append("Stopped hosting.\n");
101         SwingUtilities.invokeLater(new Runnable() {
102             public void run() {
103                 simpleGameNetFrame.disconnected();
104             }
105         });
106     }
107 
108 }