private static BuddyList LoadFromDb(Character chr, byte capacity) { var newlist = new BuddyList(capacity, chr); using (var data = CenterServer.Instance.CharacterDatabase.RunQuery( "SELECT * FROM buddylist WHERE charid = @charid", "@charid", chr.ID ) as MySqlDataReader) { while (data.Read()) { int buddycharid = data.GetInt32("buddy_charid"); string buddyname = data.GetString("buddy_charname"); newlist.Add(new BuddyData(buddycharid, buddyname), false); } } using (var invitedata = CenterServer.Instance.CharacterDatabase.RunQuery("SELECT * FROM buddylist_pending WHERE charid = @charid", "@charid", chr.ID) as MySqlDataReader) { while (invitedata.Read()) { int inviterid = invitedata.GetInt32("inviter_charid"); string invitername = invitedata.GetString("inviter_charname"); newlist.BuddyRequests.Enqueue(new BuddyData(inviterid, invitername)); } } return(newlist); }
public Character(Packet pr) { ChannelID = pr.ReadByte(); LastChannel = pr.ReadByte(); FriendsList = new BuddyList(pr); base.DecodeForTransfer(pr); }
public Character AddCharacter(string name, int id, byte channel, short job, byte level, byte gm) { var chr = FindCharacter(id, false); if (chr == null) { chr = new Character() { Name = name, ID = id, isCCing = false, GMLevel = gm, IsOnline = true, }; CharacterStore.Add(chr); } else if (chr.isCCing) { chr.isCCing = false; } chr.ChannelID = channel; chr.IsOnline = true; // Resetting party ID to update it on the server chr.PartyID = chr.PartyID; if (chr.FriendsList == null) { chr.FriendsList = BuddyList.LoadBuddyList(id, name); } chr.GMLevel = gm; Program.MainForm.LogDebug(chr.Name + " Staff? " + chr.IsGM + " GM Level: " + chr.GMLevel); chr.Job = job; chr.Level = level; return(chr); }