/// <summary> /// Important to check the 'Updated' bool first. Returns the status string for a virtual buddy based on the statistics of the last call of 'Updated'. /// </summary> /// <param name="includeUsername">Specifies if to include the username in the string. Only required at first sending of packet in session of client.</param> internal FriendListArrayPacket BuddyPacket() { FriendListArrayPacket output = new FriendListArrayPacket(); bool Followable = false; string onlineText; //containsUser if (UserManager.containsUser(userID)) { onlineText = "online"; if (UserManager.getUser(userID)._Room != null) { Followable = true; } } else { onlineText = lastVisit; } output.I = userID; output.N = userName; output.M = mission; output.O = onlineText; output.F = Followable; return output; }
internal string getUpdates() { FriendListPacket FriendList = new FriendListPacket(); FriendListArrayPacket[] Buddylist = new FriendListArrayPacket[Buddies.Count]; int count = 0; foreach (Buddy Buddy in Buddies.Values) { Buddylist[count++] = Buddy.BuddyPacket(); } FriendList.F = Buddylist; return JsonConvert.SerializeObject(FriendList); }
internal FriendListArrayPacket[] friendListInit() { int[] userIDs = UserManager.getUserFriendIDs(userID); FriendListArrayPacket[] Buddylist = new FriendListArrayPacket[userIDs.Length]; Buddy Me = new Buddy(userID, User._Username, User._MessengerMission, ""); for (int i = 0; i < userIDs.Length; i++) { string[] buddyInfo = MySQL.runReadRow("SELECT username, messenger, last_online FROM members WHERE id = '" + userIDs[i] + "'"); Buddy Buddy = new Buddy(userIDs[i], buddyInfo[0], buddyInfo[1], buddyInfo[2]); try { if (UserManager.containsUser(Buddy.userID)) UserManager.getUser(userIDs[i]).Messenger.addBuddy(Me); Buddies.Add(userIDs[i], Buddy); } catch { } Buddylist[i] = Buddy.BuddyPacket(); } return Buddylist; }