private static void SendFriendRequest(string MessageString, IClientInfo Client) { string Sender = AuxiliaryServerWorker.GetElement(MessageString, "-U ", " -Content"); string Receiver = AuxiliaryServerWorker.GetElement(MessageString, "-Content ", "."); AuxiliaryServerWorker.WriteToConsole("[INFO] User " + Sender + " sent a friend request to " + Receiver); string ReceiverIpPort = null; bool FoundOnline = false; foreach (Session Sess in AuxiliaryServerWorker.Sessions) { if (Sess.Username == Receiver) { ReceiverIpPort = Sess.IpPort; FoundOnline = true; } } if (FoundOnline == true) { AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientIDFromIPPort(ReceiverIpPort), AuxiliaryServerWorker.MessageByte(MessageString)); AuxiliaryServerWorker.WriteToConsole("[INFO] Receiver " + Receiver + " received friend request successfully!"); AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientID(Client), AuxiliaryServerWorker.MessageByte("/FriendRequestSent -U " + Receiver)); } else { AuxiliaryServerWorker.WriteToConsole("[WARN] Receiver " + Receiver + " was not online to receive their friend request"); AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientID(Client), AuxiliaryServerWorker.MessageByte("/FriendRequestOffline -U " + Receiver)); //Send offline friend req method here? } }
private static void DoAuthentication(string MessageString, IClientInfo Client) //NewConnection -U Username -P Password. { string UsernameC = AuxiliaryServerWorker.GetElement(MessageString, "-U ", " -P"); string Password = AuxiliaryServerWorker.GetElement(MessageString, "-P ", "."); if (AuxiliaryServerWorker.Usernames.Contains(UsernameC)) { if (AuxiliaryServerWorker.Passwords[AuxiliaryServerWorker.Usernames.IndexOf(UsernameC)] == Password)//Client authenticated successfully { Session NewSession = new Session() { IpPort = Client.RemoteIPv4, Username = UsernameC, Friends = AuxiliaryServerWorker.GetFriendsList(UsernameC), LoginTime = DateTime.Now, ProfilePicture = AuxiliaryServerWorker.GetProfilePicture(UsernameC), Status = AuxiliaryServerWorker.Statuses[AuxiliaryServerWorker.Usernames.IndexOf(UsernameC)] }; AuxiliaryServerWorker.Sessions.Add(NewSession); AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientID(Client), AuxiliaryServerWorker.MessageByte("/AcceptConnection"));//AcceptConnection AuxiliaryServerWorker.WriteToConsole("[INFO] Client " + UsernameC + " successfully authenticated! Creating new session file..."); foreach (Session Sess in AuxiliaryServerWorker.Sessions) { AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientIDFromIPPort(Sess.IpPort), AuxiliaryServerWorker.MessageByte("/UserConnected -U " + UsernameC + ".")); } if (File.Exists(UserDirectories + UsernameC + "\\" + UsernameC + "_lastsession.AntSession")) { try { AuxiliaryServerWorker.WriteToConsole("[INFO] Previous session file located. Updating it now..."); File.Delete(UserDirectories + UsernameC + "\\" + UsernameC + "_lastsession.AntSession"); } catch (Exception exc) { AuxiliaryServerWorker.WriteToConsole("[ERROR] Could not update session file for " + UsernameC + " due to " + exc); } } try { File.WriteAllBytes(UserDirectories + UsernameC + "\\" + UsernameC + "_lastsession.AntSession", AuxiliaryServerWorker.GetSessionBytes(NewSession)); AuxiliaryServerWorker.WriteToConsole("[INFO] Successfully appended session file for " + UsernameC); } catch (Exception exc) { AuxiliaryServerWorker.WriteToConsole("[ERROR] Could not append session file for " + UsernameC + " due to " + exc); } } else { AuxiliaryServerWorker.WriteToConsole("[WARN] Client " + UsernameC + " tried to authenticate with a wrong password!"); } } else { AuxiliaryServerWorker.WriteToConsole("[WARN] Address " + Client.RemoteIPv4 + " tried to authenticate with a non-existant username credential!"); } }
private static void HandleMessage(string MessageString, IClientInfo Client) { string Sender = AuxiliaryServerWorker.GetElement(MessageString, "-U ", " -Content"); string Message = AuxiliaryServerWorker.GetElement(MessageString, "-Content ", "."); AuxiliaryServerWorker.WriteToConsole("[" + Sender + "]: " + Message); foreach (Session Sess in AuxiliaryServerWorker.Sessions) { AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientIDFromIPPort(Sess.IpPort), AuxiliaryServerWorker.MessageByte(MessageString)); } }
private static void UpdateStatus(string MessageString, IClientInfo Client)//UpdateStatus -U Username -Content Msg. { string Sender = AuxiliaryServerWorker.GetElement(MessageString, "-U ", " -Content"); string NewStatus = AuxiliaryServerWorker.GetElement(MessageString, "-Content ", "."); AuxiliaryServerWorker.WriteToConsole("[INFO] User " + Sender + " updated their status to " + NewStatus); foreach (Session Sess in AuxiliaryServerWorker.Sessions) { if (Sess.Username == Sender) { Sess.Status = NewStatus; AuxiliaryServerWorker.WriteToConfig(Sender, NewStatus, false, false, true); } AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientIDFromIPPort(Sess.IpPort), AuxiliaryServerWorker.MessageByte(MessageString)); } }
private static void ProfilePictureUpdatePulse(IClientInfo Client) { string UsernameToUpdate = null; foreach (Session Sess in AuxiliaryServerWorker.Sessions) { if (Sess.IpPort == Client.RemoteIPv4) { UsernameToUpdate = Sess.Username; } } foreach (Session Sess in AuxiliaryServerWorker.Sessions) { AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientIDFromIPPort(Sess.IpPort), AuxiliaryServerWorker.MessageByte("/UserUpdatedPicture -U " + UsernameToUpdate + ".")); Thread.Sleep(200); AntVaultServer.SendBytes(AuxiliaryServerWorker.GetClientIDFromIPPort(Sess.IpPort), AuxiliaryServerWorker.GetBytesFromBitmap(AuxiliaryServerWorker.ProfilePictures[AuxiliaryServerWorker.Usernames.IndexOf(UsernameToUpdate)])); } }