Files
libremetaverse/Programs/examples/TestClient/Commands/Appearance/AvatarInfoCommand.cs

55 lines
1.8 KiB
C#
Raw Normal View History

using System;
using System.Linq;
using System.Text;
namespace OpenMetaverse.TestClient.Commands.Appearance
{
public class AvatarInfoCommand : Command
{
public AvatarInfoCommand(TestClient testClient)
{
Name = "avatarinfo";
Description = "Print out information on a nearby avatar. Usage: avatarinfo [firstname] [lastname]";
Category = CommandCategory.Appearance;
}
public override string Execute(string[] args, UUID fromAgentID)
{
if (args.Length != 2)
return "Usage: avatarinfo [firstname] [lastname]";
2022-02-25 19:38:11 -06:00
string targetName = $"{args[0]} {args[1]}";
var kvp = Client.Network.CurrentSim.ObjectsAvatars.SingleOrDefault(
avatar => (avatar.Value.Name == targetName));
if (kvp.Value != null)
{
var foundAv = kvp.Value;
StringBuilder output = new StringBuilder();
output.AppendFormat("{0} ({1})", targetName, foundAv.ID);
output.AppendLine();
for (int i = 0; i < foundAv.Textures.FaceTextures.Length; i++)
{
if (foundAv.Textures.FaceTextures[i] != null)
{
Primitive.TextureEntryFace face = foundAv.Textures.FaceTextures[i];
AvatarTextureIndex type = (AvatarTextureIndex)i;
output.AppendFormat("{0}: {1}", type, face.TextureID);
output.AppendLine();
}
}
return output.ToString();
}
else
{
return $"No nearby avatar named {targetName}";
}
}
}
}