|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.cuny.cat.server.ClientBehaviorController
public class ClientBehaviorController
allows the game server to take actions after a client does something a certain number of times, which may cause the game server unstable. Currently, two behaviors are monitored, reconnection and transaction request made outside rounds.
Parameters
base.reconnection int (5 by default) |
(the maximal number of times a client may reconnect to the game server after dropping out) |
base.request_at_wrong_time int (10 by default) |
(the number of requests made by a client at a wrong time that would lead to a daily ban.) |
Default Base
behavior |
Field Summary | |
---|---|
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,edu.cuny.cat.server.ClientBehaviorController.Counter>> |
behaviorRecords
|
static java.lang.String |
CONNECTION_BANNING_PENALTY
|
static java.lang.String |
DAY_BANNING_PENALTY
penalty types |
static int |
DEFAULT_MAX_NUMBER_OF_RECONNECTION
default times of bad behaviors to incur a penalty |
static int |
DEFAULT_MAX_NUMBER_OF_REQUEST_AT_WRONG_TIME
|
protected int |
maxReconnection
|
protected int |
maxWrongRequest
|
static java.lang.String |
OTHER_PENALTY
|
static java.lang.String |
P_DEF_BASE
|
static java.lang.String |
P_RECONNECTION
parameters |
static java.lang.String |
P_REQUEST_AT_WRONG_TIME
|
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,edu.cuny.cat.server.ClientBehaviorController.Counter>> |
penaltyRecords
|
static java.lang.String |
RECONNECTION
problem-causing behavior types |
static java.lang.String |
REQUEST_AT_WRONG_TIME
|
Constructor Summary | |
---|---|
ClientBehaviorController()
|
Method Summary | |
---|---|
void |
addPenalty(java.lang.String clientId,
java.lang.String penaltyType)
add one unit of the specified penalty. |
int |
getPenalty(java.lang.String clientId,
java.lang.String penaltyType)
|
java.lang.String |
getPenaltyType(java.lang.String behaviorType)
|
void |
observe(java.lang.String clientId,
java.lang.String behaviorType)
updates records after a bad behavior is observed. |
void |
penaltyExecuted(java.lang.String clientId,
java.lang.String penaltyType)
fulfills the specified penalty one on a game client. |
void |
reset()
|
void |
setup(edu.cuny.config.param.ParameterDatabase parameters,
edu.cuny.config.param.Parameter base)
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String RECONNECTION
public static final java.lang.String REQUEST_AT_WRONG_TIME
public static final java.lang.String DAY_BANNING_PENALTY
public static final java.lang.String CONNECTION_BANNING_PENALTY
public static final java.lang.String OTHER_PENALTY
public static final java.lang.String P_RECONNECTION
public static final java.lang.String P_REQUEST_AT_WRONG_TIME
public static final java.lang.String P_DEF_BASE
public static final int DEFAULT_MAX_NUMBER_OF_RECONNECTION
public static final int DEFAULT_MAX_NUMBER_OF_REQUEST_AT_WRONG_TIME
protected int maxReconnection
protected int maxWrongRequest
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,edu.cuny.cat.server.ClientBehaviorController.Counter>> behaviorRecords
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,edu.cuny.cat.server.ClientBehaviorController.Counter>> penaltyRecords
Constructor Detail |
---|
public ClientBehaviorController()
Method Detail |
---|
public void setup(edu.cuny.config.param.ParameterDatabase parameters, edu.cuny.config.param.Parameter base)
setup
in interface edu.cuny.config.param.Parameterizable
public void observe(java.lang.String clientId, java.lang.String behaviorType)
clientId
- the client that did the observed the activitybehaviorType
- the type of behavior that may lead to penaltiespublic void addPenalty(java.lang.String clientId, java.lang.String penaltyType)
clientId
- penaltyType
- public int getPenalty(java.lang.String clientId, java.lang.String penaltyType)
clientId
- penaltyType
-
public java.lang.String getPenaltyType(java.lang.String behaviorType)
behaviorType
-
getPenaltyLevel(String)
public void penaltyExecuted(java.lang.String clientId, java.lang.String penaltyType)
clientId
- the client to be punishedpenaltyType
- the type of penalty to fulfillpublic void reset()
reset
in interface edu.cuny.obj.Resetable
public java.lang.String toString()
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |