edu.umk.mat.merdacz.JGServer
Class Game

java.lang.Object
  extended byedu.umk.mat.merdacz.JGServer.Game

public class Game
extends java.lang.Object

In memory Game representation. Takes care of restoring rooms from NXD. Keeps Rooms for this game. Maintains Players in game (even those which has not yet joined any room). *

Author:
Marcin Daczkowski

Field Summary
private  java.lang.Class gamelet
           
private  java.lang.String name
          Name of this room.
private  Players players
          Players class is thread-save we don't have to synchornize!
private  Rooms rooms
           
 
Constructor Summary
Game(java.lang.String name, java.lang.Class gamelet, java.lang.String roomsFromDb)
           
 
Method Summary
 void addPlayer(Player p)
           
 void broadcast(java.lang.String xmlToSend, Player playerToOmit)
          Sends given message to all players in game except playerToOmit.
 boolean checkPlayer(java.lang.String name)
           
 void delPlayer(Player p)
           
 java.lang.Class getGamelet()
           
 java.lang.String getName()
           
 java.lang.String getPlayersInGame()
           
 Rooms getRooms()
          I don't like that we just pass rooms outside.
 void sendMesageToPlayer(java.lang.String toPlayer, java.lang.String xmlToSend)
          Just wraps same name method from Players (which syncs, and wrapps same from Player).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rooms

private Rooms rooms

gamelet

private java.lang.Class gamelet

players

private Players players
Players class is thread-save we don't have to synchornize!


name

private java.lang.String name
Name of this room.

Constructor Detail

Game

public Game(java.lang.String name,
            java.lang.Class gamelet,
            java.lang.String roomsFromDb)
Parameters:
name - Name of game to create
gamelet - Game plugin
roomsFromDb - XML which contains all rooms which must be restored
Method Detail

getRooms

public Rooms getRooms()
I don't like that we just pass rooms outside. Rooms is synchronized but it is not clean solution (needed by ServerThread).

Returns:
Reference to rooms in that game.

getName

public java.lang.String getName()
Returns:
Game name

addPlayer

public void addPlayer(Player p)
Parameters:
p - Player to add

delPlayer

public void delPlayer(Player p)
Parameters:
p - Player to remove

checkPlayer

public boolean checkPlayer(java.lang.String name)
Parameters:
name - Player name to check for existence
Returns:
true if player already logged in false otherwise

getGamelet

public java.lang.Class getGamelet()
Returns:
Plugin for this game

broadcast

public void broadcast(java.lang.String xmlToSend,
                      Player playerToOmit)
               throws java.io.IOException
Sends given message to all players in game except playerToOmit. It just wrappes same method from Players

Parameters:
xmlToSend - message to broadcast
playerToOmit - Player to omit
Throws:
java.io.IOException

sendMesageToPlayer

public void sendMesageToPlayer(java.lang.String toPlayer,
                               java.lang.String xmlToSend)
                        throws java.io.IOException
Just wraps same name method from Players (which syncs, and wrapps same from Player).

Parameters:
toPlayer -
xmlToSend -
Returns:
Throws:
java.io.IOException

getPlayersInGame

public java.lang.String getPlayersInGame()
Returns:
XML containing all actually logged in players names