c.Avatars.UUIDNameReply -= new EventHandler<UUIDNameReplyEventArgs>(Avatars_UUIDNameReply);
}
+ DateTime UUIDNameOnly = new DateTime(1970, 9, 4, 10, 0, 0, DateTimeKind.Utc);
+
void instance_ClientChanged(object sender, ClientChangedEventArgs e)
{
DeregisterEvents(e.OldClient);
{
names[kvp.Key] = new AgentDisplayName();
names[kvp.Key].ID = kvp.Key;
+ names[kvp.Key].NextUpdate = UUIDNameOnly;
+ names[kvp.Key].IsDefaultDisplayName = true;
}
string[] parts = kvp.Value.Split(' ');
{
case NameMode.OnlyDisplayName:
return n.DisplayName;
- break;
case NameMode.DisplayNameAndUserName:
- return string.Format("{0} ({1})", n.DisplayName, n.UserName);
- break;
+ if (n.IsDefaultDisplayName)
+ return n.DisplayName;
+ else
+ return string.Format("{0} ({1})", n.DisplayName, n.UserName);
default:
return n.LegacyFullName;
}
return false;
}
+
void ProcessDisplayNames(AgentDisplayName[] names)
{
Dictionary<UUID, string> ret = new Dictionary<UUID, string>();
while (requests.Count > 0)
req.Add(requests.Dequeue());
}
+
+
if (req.Count > 0)
{
if (!UseDisplayNames)
{
if (names.ContainsKey(agentID))
{
+ if (Mode != NameMode.Standard && names[agentID].NextUpdate == UUIDNameOnly)
+ {
+ QueueNameRequest(agentID);
+ }
return FormatName(names[agentID]);
}
}
QueueNameRequest(agentID);
return RadegastInstance.INCOMPLETE_NAME;
}
+
+ public string Get(UUID agentID, string defaultValue)
+ {
+ if (Mode == NameMode.Standard)
+ return defaultValue;
+
+ string name = Get(agentID);
+ if (name == RadegastInstance.INCOMPLETE_NAME)
+ return defaultValue;
+
+ return name;
+ }
}
}
existing.Add(avi.Key);
if (!lvwObjects.Items.ContainsKey(avi.Key.ToString()))
{
- string name = instance.getAvatarName(avi.Key);
+ string name = instance.Names.Get(avi.Key);
ListViewItem item = lvwObjects.Items.Add(avi.Key.ToString(), name, string.Empty);
if (avi.Key == client.Self.AgentID)
{
// Stops our name saying "Loading..."
- item.Text = client.Self.Name;
+ item.Text = instance.Names.Get(avi.Key, client.Self.Name);
item.Font = new Font(item.Font, FontStyle.Bold);
}
item.Tag = avi.Key;
if (key == client.Self.AgentID)
{
+ if (instance.Names.Mode != NameMode.Standard)
+ item.Text = instance.Names.Get(key);
continue;
}
if (pos.Z < 0.1)
{
- item.Text = instance.getAvatarName(key) + " (?m)";
+ item.Text = instance.Names.Get(key) + " (?m)";
}
else
{
- item.Text = instance.getAvatarName(key) + " (" + d + "m)";
+ item.Text = instance.Names.Get(key) + " (" + d + "m)";
}
if (foundAvi != null)
{
if (lvwObjects.SelectedItems.Count == 0) return;
UUID av = (UUID)lvwObjects.SelectedItems[0].Tag;
- string name = instance.getAvatarName(av);
+ string name = instance.Names.Get(av);
if (tabConsole.TabExists((client.Self.AgentID ^ av).ToString()))
{
{
if (lvwObjects.SelectedItems.Count == 0) return;
UUID av = (UUID)lvwObjects.SelectedItems[0].Tag;
- string name = instance.getAvatarName(av);
+ string name = instance.Names.Get(av);
instance.MainForm.ShowAgentProfile(name, av);
}
{
InventoryItem item = node.Tag as InventoryItem;
client.Inventory.GiveItem(item.UUID, item.Name, item.AssetType, (UUID)litem.Tag, true);
- instance.TabConsole.DisplayNotificationInChat("Offered item " + item.Name + " to " + instance.getAvatarName((UUID)litem.Tag) + ".");
+ instance.TabConsole.DisplayNotificationInChat("Offered item " + item.Name + " to " + instance.Names.Get((UUID)litem.Tag) + ".");
}
else if (node.Tag is InventoryFolder)
{
InventoryFolder folder = node.Tag as InventoryFolder;
client.Inventory.GiveFolder(folder.UUID, folder.Name, AssetType.Folder, (UUID)litem.Tag, true);
- instance.TabConsole.DisplayNotificationInChat("Offered folder " + folder.Name + " to " + instance.getAvatarName((UUID)litem.Tag) + ".");
+ instance.TabConsole.DisplayNotificationInChat("Offered folder " + folder.Name + " to " + instance.Names.Get((UUID)litem.Tag) + ".");
}
}
private void ctxPay_Click(object sender, EventArgs e)
{
if (lvwObjects.SelectedItems.Count != 1) return;
- (new frmPay(instance, (UUID)lvwObjects.SelectedItems[0].Tag, instance.getAvatarName((UUID)lvwObjects.SelectedItems[0].Tag), false)).ShowDialog();
+ (new frmPay(instance, (UUID)lvwObjects.SelectedItems[0].Tag, instance.Names.Get((UUID)lvwObjects.SelectedItems[0].Tag), false)).ShowDialog();
}
private void ChatConsole_VisibleChanged(object sender, EventArgs e)
try
{
UUID agentID = new UUID(item.Tag.ToString());
- instance.MainForm.ShowAgentProfile(instance.getAvatarName(agentID), agentID);
+ instance.MainForm.ShowAgentProfile(instance.Names.Get(agentID), agentID);
}
catch (Exception) { }
}
{
if (lvwObjects.SelectedItems.Count != 1) return;
UUID person = (UUID)lvwObjects.SelectedItems[0].Tag;
- string pname = instance.getAvatarName(person);
+ string pname = instance.Names.Get(person);
Simulator sim = null;
Vector3 pos;
System.Windows.Forms.ListViewItem item1 = (System.Windows.Forms.ListViewItem)x;
System.Windows.Forms.ListViewItem item2 = (System.Windows.Forms.ListViewItem)y;
- if (item1.Text == instance.Client.Self.Name)
+ if ((item1.Tag is UUID) && ((UUID)item1.Tag == instance.Client.Self.AgentID))
return -1;
- if (item2.Text == instance.Client.Self.Name)
+ if ((item2.Tag is UUID) && ((UUID)item2.Tag == instance.Client.Self.AgentID))
return 1;
int distance1 = int.MaxValue, distance2 = int.MaxValue;
private GridClient client { get { return instance.Client; } }
private TabsConsole tabConsole;
private OSDMap config;
- public VoiceGateway gateway;
+ public VoiceGateway gateway = null;
public VoiceSession session;
private VoiceParticipant selected;
// Callbacks
netcom.ClientLoginStatus += new EventHandler<LoginProgressEventArgs>(netcom_ClientLoginStatus);
- gateway = new VoiceGateway(this.instance.Client);
-
this.instance.MainForm.Load += new EventHandler(MainForm_Load);
config = instance.GlobalSettings["voice"] as OSDMap;
private void Start()
{
+ if (gateway == null)
+ {
+ gateway = new VoiceGateway(this.instance.Client);
+ }
+
// Initialize progress bar
progressBar1.Maximum = (int)VoiceGateway.ConnectionState.SessionRunning;
SetProgress(0);
try
{
netcom.ClientLoginStatus -= new EventHandler<LoginProgressEventArgs>(netcom_ClientLoginStatus);
- UnregisterClientEvents();
- gateway.Stop();
+ if (gateway != null)
+ {
+ UnregisterClientEvents();
+ gateway.Stop();
+ }
}
catch { }
}