|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--JavaQuest.Server.CGame
Zentrale Klasse des Spieles mit Spieleinitialisierung, Rundenlogik, An- und Abmeldung
CMap
,
CCmdFactory
,
CPlayer
,
CClientThread
,
CTimerThread
,
CUtils
,
CServerProxy
, Serialized FormField Summary | |
private static boolean |
m_bRunning
Running-Flag, true solange der Server laeuft |
private static boolean |
m_bTurn
Wenn true, dann ist ein Spieler am Zug |
private static java.util.Hashtable |
m_hClientThread
Clients die connected sind, mit Namen und Referenz |
private static int |
m_iCmdLineID
Kommando-ID der Kommandozeilensteuerung |
private int |
m_iMaxClients
Maxiamale Anzahl an Clients die Connecten koennen |
private static int |
m_iTurnTime
Rundenzeit, Zeit die der Client an der Reihe sein darf |
private CClientListener |
m_oClientListener
Listener fuer login und logout |
private CCmdFactory |
m_oCmdFactory
Factory zum erzeugen und verwalten der Kommandos |
private static CClientThread |
m_oCurrentClientThread
Thread, der gerade an der Reihe ist |
private static CPlayer |
m_oCurrentPlayer
Spieler, der gerade an der Reihe ist |
private static CMap |
m_oMap
Map des Spiels |
private static CServerProxy |
m_oServerProxy
Serverproxy, fuer CGame-Funktionalitaet ohne CGame-Referenz |
private static CTimerThread |
m_oTimer
Steuert m_bTurn |
(package private) static CUtils |
m_oUtil
Objekt fuer allg. |
private java.lang.String |
m_sConfigFile
Name des Konfigfiles |
private java.lang.String |
m_sHostname
Hostname des Servers |
private java.lang.String |
m_sMapFile
Name des Mapfiles |
private static java.util.Vector |
m_voPlayers
Liste der Spieler die am Spiel teilnehmen |
Constructor Summary | |
CGame(java.lang.String _sConfigFile)
Konstruktor mit ConfigFiles, von Kommandozeile gelesen |
Method Summary | |
private boolean |
chkLoginData(java.lang.String _sName)
Uebpruefen der Login-Daten |
static void |
endTurn()
EndTurn fuer die Kommandozeile |
void |
endTurn(CPlayer _oPlayer)
der Spieler beendet seine Spielrunde vorzeitig |
void |
endTurnFlag()
Runde beenden, wird vom TimerThread gesteuert |
void |
execCommandLine(int i)
Kommandozeilen Befehlsauswahl |
boolean |
execute(int _iCmdIndex)
Spieler fuehrt das Kommando mit dem Index _iCmdIndex aus der Kommandoliste aus dannach wird ein Maprefresh() angestossen |
CClientListener |
getClientListener()
Gibt Referenz auf den ClientListener zurueck ueber den Listener werden Login und Logout realisiert |
CMap |
getMap()
Gibt Referenz auf Map zurueck |
CPlayer |
getPlayer(java.lang.String _sName)
Ermittelt anhand des Names die Referenz auf den Spieler |
java.util.Vector |
getPossibleCommands(CField _oField,
CPlayer _oPlayer)
Moegliche Kommandos erzeugen und dem Client geben, Funktion in Kommandofactory Aufruf wird an CCmdFactory weitergeleitet |
CMap |
login(java.lang.String _sName,
java.lang.String _sIP)
Client loggt sich am Server ein |
void |
logout(java.lang.String _sName)
Logout fuer Notfaelle wird nur Ausgerufen wenn es eine Exception im VerbindungsThread (CClientThread) gegeben hat |
static void |
main(java.lang.String[] args)
MAIN |
static void |
printClientList()
Gibt die Namen aller eingeloggten Spieler am Bildschirm aus |
void |
ServerShutDown()
Server beenden, dadurch werden alle Clients disconnected |
static void |
showthreads()
Zeigt die Namen aller eingeloggten ClientThread und gibt sie am Bildschirm aus |
void |
startTurn()
Runde starten, wird vom TimerThread gesteuert |
Methods inherited from class java.lang.Object |
|
Field Detail |
private CClientListener m_oClientListener
private static java.util.Hashtable m_hClientThread
private static CMap m_oMap
private static java.util.Vector m_voPlayers
private java.lang.String m_sConfigFile
private java.lang.String m_sMapFile
private java.lang.String m_sHostname
private CCmdFactory m_oCmdFactory
private static boolean m_bTurn
private static CPlayer m_oCurrentPlayer
private static CClientThread m_oCurrentClientThread
private static CTimerThread m_oTimer
static CUtils m_oUtil
private static boolean m_bRunning
private static int m_iTurnTime
private static CServerProxy m_oServerProxy
private int m_iMaxClients
private static int m_iCmdLineID
Constructor Detail |
public CGame(java.lang.String _sConfigFile)
Method Detail |
public static void main(java.lang.String[] args)
public CMap getMap()
CMap
public java.util.Vector getPossibleCommands(CField _oField, CPlayer _oPlayer) throws java.rmi.RemoteException
_oField
- Feld fuer das die moeglichen Kommandos erzeugt werden sollen_oPlayer
- Spieler der die Kommandos anfordertCField
,
CPlayer
public CPlayer getPlayer(java.lang.String _sName)
_sName
- Name des Spielers dessen Referenz ermittelt werden sollCPlayer
public void endTurnFlag()
public void startTurn()
public void endTurn(CPlayer _oPlayer)
_oPlayer
- Spieler der die Runde beendetCPlayer
public static void endTurn()
public CClientListener getClientListener()
CClientListener
public void logout(java.lang.String _sName)
_sName
- Name des Spielers der ausgelogged werden sollpublic void ServerShutDown()
public void execCommandLine(int i)
i
- Index des Kommandos, das ausgefuehrt werden sollpublic static void printClientList()
public static void showthreads()
public boolean execute(int _iCmdIndex) throws java.rmi.RemoteException
_iCmdIndex
- Index des Kommandos aus der Liste die per getPossibleCommands angefordert wurdeCCmd
public CMap login(java.lang.String _sName, java.lang.String _sIP) throws java.rmi.RemoteException
_sName
- Name des Spieler der sich einlogged_sIP
- IP des Hosts der sich einloggedCMap
private boolean chkLoginData(java.lang.String _sName) throws java.rmi.RemoteException
_sName
- Name des Spielers der sich einlogen willCGenerelException
- Die Pruefung der Logindaten schlug fehl weil:
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |