Allow "appearance show" command to take an optional avatar name

0.7.2-post-fixes
Justin Clark-Casey (justincc) 2011-12-06 18:03:16 +00:00
parent 7dce33ce69
commit cc80377325
1 changed files with 40 additions and 11 deletions

View File

@ -96,14 +96,15 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance
this, "appearance show", this, "appearance show",
"appearance show", "appearance show",
"Show appearance information for each avatar in the simulator.", "Show appearance information for each avatar in the simulator.",
"At the moment this actually just checks that we have all the required baked textures. If not, then appearance is 'corrupt' and other avatars will continue to see a cloud.", "Optionally, you can view just a particular avatar's appearance information"
+ "\nAt the moment this actually just checks that we have all the required baked textures. If not, then appearance is 'corrupt' and other avatars will continue to see a cloud.",
HandleShowAppearanceCommand); HandleShowAppearanceCommand);
scene.AddCommand( scene.AddCommand(
this, "appearance send", this, "appearance send",
"appearance send [<first-name> <last-name>]", "appearance send [<first-name> <last-name>]",
"Send appearance data for each avatar in the simulator to other viewers." "Send appearance data for each avatar in the simulator to other viewers.",
+ "\nOptionally, you can specify that only a particular avatar's information is sent.", "Optionally, you can specify that only a particular avatar's appearance data is sent.",
HandleSendAppearanceCommand); HandleSendAppearanceCommand);
} }
@ -159,20 +160,48 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance
protected void HandleShowAppearanceCommand(string module, string[] cmd) protected void HandleShowAppearanceCommand(string module, string[] cmd)
{ {
if (cmd.Length != 2 && cmd.Length < 4)
{
MainConsole.Instance.OutputFormat("Usage: appearance show [<first-name> <last-name>]");
return;
}
bool targetNameSupplied = false;
string optionalTargetFirstName = null;
string optionalTargetLastName = null;
if (cmd.Length >= 4)
{
targetNameSupplied = true;
optionalTargetFirstName = cmd[2];
optionalTargetLastName = cmd[3];
}
lock (m_scenes) lock (m_scenes)
{ {
foreach (Scene scene in m_scenes.Values) foreach (Scene scene in m_scenes.Values)
{ {
scene.ForEachClient( if (targetNameSupplied)
delegate(IClientAPI client)
{ {
if (client is LLClientView && !((LLClientView)client).ChildAgentStatus()) ScenePresence sp = scene.GetScenePresence(optionalTargetFirstName, optionalTargetLastName);
if (sp != null && !sp.IsChildAgent)
{ {
bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(client); bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(sp);
MainConsole.Instance.OutputFormat( MainConsole.Instance.OutputFormat(
"{0} baked appearance texture is {1}", client.Name, bakedTextureValid ? "OK" : "corrupt"); "{0} baked appearance texture is {1}", sp.Name, bakedTextureValid ? "OK" : "corrupt");
}
}
else
{
scene.ForEachRootScenePresence(
sp =>
{
bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(sp);
MainConsole.Instance.OutputFormat(
"{0} baked appearance texture is {1}", sp.Name, bakedTextureValid ? "OK" : "corrupt");
}
);
} }
});
} }
} }
} }