public void RemoveNode(VaultNode node) { VaultPlayerInfoNode info = new VaultPlayerInfoNode(node); if (fPlayerToInfo.ContainsKey(info.PlayerID)) fPlayerToInfo.Remove(info.PlayerID); else return; for (int i = 0; i < fDataGridView.Rows.Count; i++) { if (Convert.ToUInt32(fDataGridView.Rows[i].Cells[1].Value) == info.PlayerID) { fDataGridView.Rows.RemoveAt(i); break; } } }
public void AddPlayerInfo(VaultNode node) { VaultPlayerInfoNode info = new VaultPlayerInfoNode(node); if (fPlayerToInfo.ContainsKey(info.PlayerID)) return; Bitmap img = IGetImage(info); string age = (info.Online ? IGetAgeName(info) : String.Empty); fDataGridView.Rows.Add(new object[] { img, info.PlayerID, info.PlayerName, age }); fPlayerToInfo.Add(info.PlayerID, info.BaseNode.ID); //Sort... If no default, use online status if (fDataGridView.SortedColumn != null) fDataGridView.Sort(fDataGridView.SortedColumn, (fDataGridView.SortOrder == SortOrder.Ascending ? ListSortDirection.Ascending : ListSortDirection.Descending)); else fDataGridView.Sort(fOnline, ListSortDirection.Descending); }
private string IGetAgeName(VaultPlayerInfoNode info) { if (kAgesToName.Contains(info.AgeInstanceName)) { VaultAgeInfoNode search = new VaultAgeInfoNode(); search.InstanceName = info.AgeInstanceName; search.InstanceUUID = info.AgeInstanceUUID; //Do the search uint trans = fParent.AuthCli.FindVaultNode(search.BaseNode.ToArray()); fParent.RegisterAuthCB(trans, new Action<uint[], VaultPlayerInfoNode>(IDelayedAgeName), new object[] { info }); } if (info.AgeInstanceName == "AhnonayCathedral") return "Ahnonay Cathedral"; else if (info.AgeInstanceName == "AvatarCustomization") return "Closet"; else if (info.AgeInstanceName == "Bevin") return "Neighborhood"; else if (info.AgeInstanceName == "city") return "Ae'gura"; else if (info.AgeInstanceName == "Descent") return "Great Shaft"; else if (info.AgeInstanceName == "EderDelin") return "Eder Delin"; else if (info.AgeInstanceName == "EderTsogal") return "Eder Tsogal"; else if (info.AgeInstanceName == "Ercana") return "Er'cana"; else if (info.AgeInstanceName == "ErcanaCitySilo") return "Uran Silo"; else if (info.AgeInstanceName == "GreatZero") return "Great Zero"; else if (info.AgeInstanceName == "GuildPub-Cartographers") return "Cartographers' Pub"; else if (info.AgeInstanceName == "GuildPub-Greeters") return "Greeters' Pub"; else if (info.AgeInstanceName == "GuildPub-Maintainers") return "Maintainers' Pub"; else if (info.AgeInstanceName == "GuildPub-Messengers") return "Messengers' Pub"; else if (info.AgeInstanceName == "GuildPub-Writers") return "Writers' Pub"; else if (info.AgeInstanceName == "Hood") return "Neighborhood"; else if (info.AgeInstanceName == "Kveer") return "K'veer"; else if (info.AgeInstanceName == "PelletBahroCave") return "Pellet Cave"; else if (info.AgeInstanceName == "Personal") return "Relto"; else if (info.AgeInstanceName == "philRelto") return "Phil's Relto"; else if (info.AgeInstanceName == "spyroom") return "Sharper's Spy Room"; else if (info.AgeInstanceName == String.Empty) return "*** Linking ***"; return info.AgeInstanceName; }
private Bitmap IGetImage(VaultPlayerInfoNode info) { if (info.Online) { Bitmap b = MUd.Properties.Resources.bullet_green; b.Tag = "online"; return b; } else { Bitmap b = MUd.Properties.Resources.bullet_red; b.Tag = "offline"; return b; } }
private void IDelayedAgeName(uint[] matches, VaultPlayerInfoNode info) { if (matches.Length == 1) { uint trans = fParent.AuthCli.FetchVaultNode(matches[0]); fParent.RegisterAuthCB(trans, new Action<VaultNode, VaultPlayerInfoNode>(IDelayedAgeName), new object[] { info }); } else fParent.LogWarn(String.Format("Got {0} AgeInfos!", matches.Length)); }
private void IDelayedAgeName(VaultNode node, VaultPlayerInfoNode info) { VaultAgeInfoNode age = new VaultAgeInfoNode(node); string name = String.Empty; if (age.Description == String.Empty) if (age.SequenceNumber == 0) name = String.Format("{0} {1}", age.UserDefinedName, age.InstanceName); else name = String.Format("{0} ({1}) {2}", age.UserDefinedName, age.SequenceNumber, age.InstanceName); else name = age.Description; //Find the player's row int idx = -1; foreach (DataGridViewRow r in fDataGridView.Rows) { if (Convert.ToUInt32(r.Cells[1].Value) == info.PlayerID) { idx = fDataGridView.Rows.IndexOf(r); break; } } //Actually update the entry fDataGridView.Rows[idx].Cells[3].Value = name; }
public bool UpdateNode(VaultPlayerInfoNode info) { int idx = -1; foreach (DataGridViewRow r in fDataGridView.Rows) { if (Convert.ToUInt32(r.Cells[1].Value) == info.PlayerID) { idx = fDataGridView.Rows.IndexOf(r); break; } } if (idx == -1) return false; //Has the player logged in? bool retval = ((fDataGridView.Rows[idx].Cells[0].Value as Bitmap).Tag.ToString() == "offline" && info.Online); //Change values fDataGridView.Rows[idx].Cells[0].Value = IGetImage(info); fDataGridView.Rows[idx].Cells[3].Value = (info.Online ? IGetAgeName(info) : String.Empty); //Update and stuff fDataGridView.UpdateCellValue(0, idx); fDataGridView.UpdateCellValue(3, idx); //Sort... If no default, use online status if (fDataGridView.SortedColumn != null) fDataGridView.Sort(fDataGridView.SortedColumn, (fDataGridView.SortOrder == SortOrder.Ascending ? ListSortDirection.Ascending : ListSortDirection.Descending)); else fDataGridView.Sort(fOnline, ListSortDirection.Descending); return retval; }
private void IUpdateNode(VaultNode node) { switch (node.NodeType) { case ENodeType.kNodeImage: case ENodeType.kNodeMarkerList: case ENodeType.kNodeTextNote: fKiMailCtrl.UpdateNode(node); break; case ENodeType.kNodePlayerInfo: VaultPlayerInfoNode info = new VaultPlayerInfoNode(node); bool alerted = IDoBuddyUpdate(info, false); IDoNeighborUpdate(info, alerted); fRecentsCtrl.UpdateNode(info); break; } }
private bool IDoNeighborUpdate(VaultPlayerInfoNode node, bool alertShown) { if (fNeighborsCtrl.UpdateNode(node)) if (Prefrences.NeighborAlert && !alertShown) { fNotifyIcon.ShowBalloonTip(10, "Neighbor Login", String.Format("{0} is now exploring D'ni", node.PlayerName), ToolTipIcon.None); return true; } return false; }
private void IAddFolderToPanes(VaultNode node) { if (node.NodeType == ENodeType.kNodePlayerInfoList) { VaultPlayerInfoListNode list = new VaultPlayerInfoListNode(node); //Basic stuff if (list.FolderType == EStandardNode.kBuddyListFolder) fBaseNodes.Add(EStandardNode.kBuddyListFolder, node.ID); if (list.FolderType == EStandardNode.kIgnoreListFolder) fBaseNodes.Add(EStandardNode.kIgnoreListFolder, node.ID); if (list.FolderType == EStandardNode.kPeopleIKnowAboutFolder) fBaseNodes.Add(EStandardNode.kPeopleIKnowAboutFolder, node.ID); //If it's an AgeOwners folder, we have the Neighborhood :) if (list.FolderType == EStandardNode.kAgeOwnersFolder) fBaseNodes.Add(EStandardNode.kHoodMembersFolder, node.ID); } //Search for Neighborhood in the AgesIOwn if (node.NodeType == ENodeType.kNodeAgeInfoList) { VaultAgeInfoListNode ages = new VaultAgeInfoListNode(node); if (ages.FolderType == EStandardNode.kAgesIOwnFolder) { FetchChildren(node.ID, new Action<VaultNode>(IAddFolderToPanes)); } } //Grab the AgeInfo... if (node.NodeType == ENodeType.kNodeAgeLink) FetchChildren(node.ID, new Action<VaultNode>(IAddFolderToPanes)); //See if this is the Neighborhood or Relto if (node.NodeType == ENodeType.kNodeAgeInfo) { VaultAgeInfoNode ageinfo = new VaultAgeInfoNode(node); if (ageinfo.Filename == "Neighborhood") { //Yep! Grab children :) FetchChildren(node.ID, new Action<VaultNode>(IAddFolderToPanes)); } //HACK!!! Change back to PERSONAL asap! if (ageinfo.Filename == "Neighborhood") { //Stash this node! Oh, and YES this is a strange label, but whatev. fBaseNodes.Add(EStandardNode.kAgeInfoNode, ageinfo.ID); } } //Are these KI Mail Folders? if (node.NodeType == ENodeType.kNodeFolder) { VaultFolderNode folder = new VaultFolderNode(node); if (folder.FolderType == EStandardNode.kAgeJournalsFolder) fBaseNodes.Add(EStandardNode.kAgeJournalsFolder, node.ID); if (folder.FolderType == EStandardNode.kInboxFolder) fBaseNodes.Add(EStandardNode.kInboxFolder, node.ID); } //Is this my PlayerInfo? if (node.NodeType == ENodeType.kNodePlayerInfo) { VaultPlayerInfoNode info = new VaultPlayerInfoNode(node); if (info.PlayerID == fActivePlayer) fBaseNodes.Add(EStandardNode.kPlayerInfoNode, info.ID); } //FIXME: This is a strange hack... //Aparently, it causes the selected tab to update. I would say this is spammy though. ITabSelected(null, new TabControlEventArgs(fTabControl.SelectedTab, fTabControl.SelectedIndex, TabControlAction.Selected)); }
private void IAddBuddy(uint obj) { if (fBuddyCtrl.HasPlayer(obj)) { MessageBox.Show(this, String.Format("KI #{0} is already in the Buddies List", obj), "Already Added", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); LogWarn(String.Format("Attempted to add #{0} to buddies list, but he is already there!", obj)); return; } VaultPlayerInfoNode search = new VaultPlayerInfoNode(); search.PlayerID = obj; //Do the search uint trans = AuthCli.FindVaultNode(search.BaseNode.ToArray()); RegisterAuthCB(trans, new Action<uint[], uint>(IAddBuddy), new object[] { obj }); }