edu.umk.mat.merdacz.JGServer.plugins.Netris
Class Netris

java.lang.Object
  extended byedu.umk.mat.merdacz.JGServer.plugins.Netris.Netris
All Implemented Interfaces:
Gamelet

public class Netris
extends java.lang.Object
implements Gamelet

It is externaly "locked" by lockPlugin in Room to prevent such scenario: p1, p2, p3 sitsDown; p1, p2, p3 startGame while p3 startGame reaches isAllReady it gives true and thread is switched to p2 which i.e standsUp or p4 sitsDown

One parseRequest is runned at time. This is good beacuse we do not have to synchronize internally. But for efficience and scalabilty is should be done internally (via many locks on different resources)

All parts of JGFramework are written properly (they synchronizes) this only this plugin "problem".

Author:
Marcin Daczkowski

Field Summary
(package private)  BlocksManager blocksManager
           
static int blocksToGrab
           
(package private)  boolean depsByTable
           
(package private)  GameState state
           
(package private)  GameTable table
           
 
Constructor Summary
Netris()
          TODO give plugin *somehow* access those parts of configuration which belongs to it
 
Method Summary
 java.lang.String defeat(Player player)
          Used to both announce that we lost or that we are giving up
 java.lang.String getBlocks(Player player)
           
 java.lang.String getTable()
          Gets players by table and some additional info like how much empty places we still have
 java.lang.String moveBlock(Player player, org.jdom.Element move)
           
 java.lang.String parseRequest(Player player, org.jdom.Document doc)
           
 java.lang.String sitDown(Player player)
           
 java.lang.String standUp(Player player)
          Consider using String playerLoginName not Player
 java.lang.String startGame(Player player)
           
 java.lang.String switchPause(Player player)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

table

GameTable table

state

GameState state

blocksManager

BlocksManager blocksManager

depsByTable

boolean depsByTable

blocksToGrab

public static int blocksToGrab
Constructor Detail

Netris

public Netris()
TODO give plugin *somehow* access those parts of configuration which belongs to it

Method Detail

parseRequest

public java.lang.String parseRequest(Player player,
                                     org.jdom.Document doc)
Specified by:
parseRequest in interface Gamelet

sitDown

public java.lang.String sitDown(Player player)
Parameters:
player -
Returns:

standUp

public java.lang.String standUp(Player player)
Consider using String playerLoginName not Player

Parameters:
player -
Returns:

getTable

public java.lang.String getTable()
Gets players by table and some additional info like how much empty places we still have

Returns:

startGame

public java.lang.String startGame(Player player)
Parameters:
player -
Returns:

switchPause

public java.lang.String switchPause(Player player)
Parameters:
player -
Returns:

getBlocks

public java.lang.String getBlocks(Player player)
Parameters:
player -
Returns:

moveBlock

public java.lang.String moveBlock(Player player,
                                  org.jdom.Element move)
Parameters:
player -
Returns:

defeat

public java.lang.String defeat(Player player)
Used to both announce that we lost or that we are giving up

Parameters:
player -
Returns: