protected void Handle_OnDisconnect(object sender, ServerEventArgs args) { var client = args.Client; var ip = client.GetIP; string nick = null; try { nick = nickTable[client]; nickTable.Remove(client); Log.Info("Server:Disconnect:DisassociatedNick:Data:Nick:<{0}>".format(nick)); SendPacket(MakePacket("{0} has left the chat.".Timestamped().format(nick))); } catch (KeyNotFoundException) { Log.Warn("Exception:ServerException:UnknownNickAssociation:Data:Key:<{0}>".format(ip)); Log.Warn("Exception:ServerException:UnknownNickAssociation:Data:PossibleValue:<{0}>".format(nick)); Log.Warn( "Exception:ServerException:UnknownNickAssociation:Data:Note:User may not have authenticated with the server before disconnecting." .format(nick)); } }
private void HandleAutheticatePacket(AuthRequestPacket requestPacket, Client client) { const string nickInUseKey = "Server:AuthFail:Reason:NickInUse:Data:Nick:<{0}>"; var username = requestPacket.UserName; var args = new ServerEventArgs(false, client); if (!IsNickAvailable(username)) { Log.Info(nickInUseKey.format(username)); SendPacket(new AuthResponsePacket() { Success = false, Message = "NickInUse:{0}".format(username) }, client); } else { nickTable[client] = username; SendPacket(new AuthResponsePacket() { Success = true, Message = username }, client); SendServerMessage("Please welcome {0} to the server!".format(username)); args.Success = true; } Authenticate(client, args); }
private void Handle_OnConnect(object sender, ServerEventArgs e) { SendPacket(new RequestAuthPacket(), e.Client); }
protected override void DefaultHandle_OnConnect(object sender, ServerEventArgs args) { base.DefaultHandle_OnConnect(sender, args); var client = args.Client; SendServerMessage("Welcome to the server! Please select a username:", client); }
private void Handle_OnDisconnect(object sender, ServerEventArgs e) { var client = e.Client; if (!PlayerTable.Contains(client)) return; var username = PlayerTable[client]; PlayerTable.Remove(username); Game.RemovePlayer(username); UpdateGameState(); if (Game.Players.Count == 0) Game = new Game(Settings); }