C# Class fCraft.Session

Show file Open project: fragmer/fCraft Class Usage Examples

Public Properties

Property Type Description
CanReceive bool
FullPositionUpdateInterval int
LoginTime System.DateTime
Player Player
canReceive bool
loginTime System.DateTime
outputQueue Queue
player Player
state State

Public Methods

Method Description
AddEntity ( Player player, Position newPos ) : void
ClearBlockUpdateQueue ( ) : void
ClearPriorityOutputQueue ( ) : void
DenyMovement ( ) : void
Disconnect ( ) : void
GetIP ( ) : IPAddress
HideEntity ( VisibleEntity entity ) : void
IoLoop ( ) : void
JoinWorld ( World newWorld ) : void
JoinWorld ( World newWorld, Position position ) : void
JoinWorldInternal ( World newWorld, Position position, bool doUseWorldPosition ) : void
Kick ( string message ) : void
Kick ( string message, LeaveReason leaveReason ) : void

Kick (asynchronous). Immediately blocks all client input, but waits until client thread sends the kick packet.

KickNow ( string message ) : void
KickNow ( string message, LeaveReason leaveReason ) : void

Kick (synchronous). Immediately sends the kick packet. Can only be used from IoThread (this is not thread-safe).

LoginSequence ( ) : void
MeasureBandwidthUseRates ( ) : void
MoveEntity ( VisibleEntity entity, Position newPos ) : void
ProcessMovementPacket ( ) : void
ProcessSetBlockPacket ( ) : void
ReAddEntity ( VisibleEntity entity, Player player, Position newPos ) : void
RemoveEntity ( Player player ) : void
ResetVisibleEntities ( ) : void
Send ( Packet packet ) : void

Send packet (asynchronous, priority queue). This is used for most packets (movement, chat, etc).

Send ( Packet packet, bool isHighPriority ) : void
SendDelayed ( Packet packet ) : void

Send packet (asynchronous, delayed queue). This is currently only used for block updates.

SendNow ( Packet packet ) : void

Send packet to player (synchronous). Sends the packet off immediately. Should not be used from any thread other than this session's IoThread. Not thread-safe (for performance reason).

Session ( TcpClient tcpClient ) : System
Session ( World _world, TcpClient _client ) : System
ShowEntity ( VisibleEntity entity, Position newPos ) : void
Start ( ) : void
ToString ( ) : string
UpdateVisibleEntities ( ) : void
WaitForDisconnect ( ) : void

Blocks the calling thread until this session disconnects.

Private Methods

Method Description
DetectMovementPacketSpam ( ) : bool
HandleInput ( Packet packet ) : void
InputHandler ( ) : void
JoinWorldNow ( World newWorld, bool firstTime, bool doUseWorldSpawn ) : bool
LoginFailure ( string message ) : void
LoginSequence ( ) : bool
LoginSuccess ( ) : void
OutputHandler ( ) : void
ProcessMessagePacket ( ) : bool
ReadString ( ) : string

Method Details

AddEntity() public method

public AddEntity ( Player player, Position newPos ) : void
player Player
newPos Position
return void

ClearBlockUpdateQueue() public method

public ClearBlockUpdateQueue ( ) : void
return void

ClearPriorityOutputQueue() public method

public ClearPriorityOutputQueue ( ) : void
return void

DenyMovement() public method

public DenyMovement ( ) : void
return void

Disconnect() public method

public Disconnect ( ) : void
return void

GetIP() public method

public GetIP ( ) : IPAddress
return System.Net.IPAddress

HideEntity() public method

public HideEntity ( VisibleEntity entity ) : void
entity VisibleEntity
return void

IoLoop() public method

public IoLoop ( ) : void
return void

JoinWorld() public method

public JoinWorld ( World newWorld ) : void
newWorld World
return void

JoinWorld() public method

public JoinWorld ( World newWorld, Position position ) : void
newWorld World
position Position
return void

JoinWorldInternal() public method

public JoinWorldInternal ( World newWorld, Position position, bool doUseWorldPosition ) : void
newWorld World
position Position
doUseWorldPosition bool
return void

Kick() public method

public Kick ( string message ) : void
message string
return void

Kick() public method

Kick (asynchronous). Immediately blocks all client input, but waits until client thread sends the kick packet.
public Kick ( string message, LeaveReason leaveReason ) : void
message string
leaveReason LeaveReason
return void

KickNow() public method

public KickNow ( string message ) : void
message string
return void

KickNow() public method

Kick (synchronous). Immediately sends the kick packet. Can only be used from IoThread (this is not thread-safe).
public KickNow ( string message, LeaveReason leaveReason ) : void
message string
leaveReason LeaveReason
return void

LoginSequence() public method

public LoginSequence ( ) : void
return void

MeasureBandwidthUseRates() public method

public MeasureBandwidthUseRates ( ) : void
return void

MoveEntity() public method

public MoveEntity ( VisibleEntity entity, Position newPos ) : void
entity VisibleEntity
newPos Position
return void

ProcessMovementPacket() public method

public ProcessMovementPacket ( ) : void
return void

ProcessSetBlockPacket() public method

public ProcessSetBlockPacket ( ) : void
return void

ReAddEntity() public method

public ReAddEntity ( VisibleEntity entity, Player player, Position newPos ) : void
entity VisibleEntity
player Player
newPos Position
return void

RemoveEntity() public method

public RemoveEntity ( Player player ) : void
player Player
return void

ResetVisibleEntities() public method

public ResetVisibleEntities ( ) : void
return void

Send() public method

Send packet (asynchronous, priority queue). This is used for most packets (movement, chat, etc).
public Send ( Packet packet ) : void
packet Packet
return void

Send() public method

public Send ( Packet packet, bool isHighPriority ) : void
packet Packet
isHighPriority bool
return void

SendDelayed() public method

Send packet (asynchronous, delayed queue). This is currently only used for block updates.
public SendDelayed ( Packet packet ) : void
packet Packet
return void

SendNow() public method

Send packet to player (synchronous). Sends the packet off immediately. Should not be used from any thread other than this session's IoThread. Not thread-safe (for performance reason).
public SendNow ( Packet packet ) : void
packet Packet
return void

Session() public method

public Session ( TcpClient tcpClient ) : System
tcpClient System.Net.Sockets.TcpClient
return System

Session() public method

public Session ( World _world, TcpClient _client ) : System
_world World
_client System.Net.Sockets.TcpClient
return System

ShowEntity() public method

public ShowEntity ( VisibleEntity entity, Position newPos ) : void
entity VisibleEntity
newPos Position
return void

Start() public method

public Start ( ) : void
return void

ToString() public method

public ToString ( ) : string
return string

UpdateVisibleEntities() public method

public UpdateVisibleEntities ( ) : void
return void

WaitForDisconnect() public method

Blocks the calling thread until this session disconnects.
public WaitForDisconnect ( ) : void
return void

Property Details

CanReceive public property

public bool CanReceive
return bool

FullPositionUpdateInterval public static property

public static int FullPositionUpdateInterval
return int

LoginTime public property

public DateTime,System LoginTime
return System.DateTime

Player public property

public Player Player
return Player

canReceive public property

public bool canReceive
return bool

loginTime public property

public DateTime,System loginTime
return System.DateTime

outputQueue public property

public Queue outputQueue
return Queue

player public property

public Player player
return Player

state public property

public State state
return State