|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umk.mat.merdacz.JGServer.Room
In memory game room representation.
It should be probably reinvented in future, because at the moment
it doesn't take care of NXD updates (which is actually done external in
ServerThread
. Tho It will need rewritting Game
also :(
Field Summary | |
private java.lang.Class |
gamelet
used to instantinate by ServerThread in its main while-loop TODO is it good to do sth like Class s = r.plugin.getClass() instead? |
private java.util.TreeSet |
invitations
give, take away and modify invitations possible only for owner of channel |
private java.lang.Object |
lockInvitations
|
private java.lang.Object |
lockPlayers
|
private java.lang.Object |
lockPlugin
|
private java.lang.String |
name
|
private java.lang.String |
owner
|
private Players |
players
|
private Gamelet |
plugin
used for keeping some per Room data like cache for boxes in Netris. |
private boolean |
roomState
Used for two main purposes: 1) to auto leave players after it has been removed (they have to free reference in order to GC take care of it) 2) TODO to disallow new joins (is it important when we have 1) ?) |
private java.lang.String |
type
|
Constructor Summary | |
Room(java.lang.String name,
java.lang.String owner,
java.lang.String type,
org.jdom.Element invitations)
there are two essentialy diffrent scenarios of creating room first one is when the player wants to set up his room second when server is restarting. in second case we have to read data from NXD |
Method Summary | |
void |
broadcast(java.lang.String xmlToSend,
Player playerToOmit)
|
void |
delete()
we have to destroy room when it is removed from array (Rooms class). destorying implies: removing internal objects (like plugin). |
java.lang.String |
getName()
|
java.lang.String |
getOwner()
|
java.lang.String |
getPlayersInRoom()
yeah ! |
void |
grantInvite(java.lang.String playerName)
|
boolean |
isRemoved()
|
boolean |
join(Player p)
|
void |
leave(Player p)
|
java.lang.String |
parseRequest(Player player,
org.jdom.Document doc)
Because in most games some data must be shared, or be persistent between requests we need to be aware that some synchronization must be made. |
void |
removeMe()
|
void |
setGamelet(java.lang.Class gamelet)
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
private Players players
private java.lang.String name
private java.lang.String owner
private java.lang.String type
private java.lang.Object lockPlayers
private java.lang.Object lockPlugin
private java.lang.Object lockInvitations
private java.util.TreeSet invitations
private Gamelet plugin
private java.lang.Class gamelet
private boolean roomState
Constructor Detail |
public Room(java.lang.String name, java.lang.String owner, java.lang.String type, org.jdom.Element invitations)
name
- owner
- type
- Method Detail |
public boolean join(Player p)
p
- public void leave(Player p)
p
- public void grantInvite(java.lang.String playerName)
public void setGamelet(java.lang.Class gamelet)
gamelet
- public void delete()
public java.lang.String getName()
public java.lang.String getOwner()
public boolean isRemoved()
public void removeMe()
public java.lang.String parseRequest(Player player, org.jdom.Document doc)
player
- doc
-
public void broadcast(java.lang.String xmlToSend, Player playerToOmit) throws java.io.IOException
xmlToSend
- playerToOmit
-
java.io.IOException
public java.lang.String toString()
public java.lang.String getPlayersInRoom()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |