robust create user: allow new userid to be to generate a new random one; handle possible case of a weareble being a inventory link
parent
90482182e5
commit
7c9c5cfedf
|
@ -407,7 +407,7 @@ namespace OpenSim.Services.UserAccountService
|
||||||
else email = cmdparams[5];
|
else email = cmdparams[5];
|
||||||
|
|
||||||
if (cmdparams.Length < 7)
|
if (cmdparams.Length < 7)
|
||||||
rawPrincipalId = MainConsole.Instance.CmdPrompt("User ID", UUID.Random().ToString());
|
rawPrincipalId = MainConsole.Instance.CmdPrompt("User ID (enter for random)", "");
|
||||||
else
|
else
|
||||||
rawPrincipalId = cmdparams[6];
|
rawPrincipalId = cmdparams[6];
|
||||||
|
|
||||||
|
@ -417,7 +417,9 @@ namespace OpenSim.Services.UserAccountService
|
||||||
model = cmdparams[7];
|
model = cmdparams[7];
|
||||||
|
|
||||||
UUID principalId = UUID.Zero;
|
UUID principalId = UUID.Zero;
|
||||||
if (!UUID.TryParse(rawPrincipalId, out principalId))
|
if(String.IsNullOrWhiteSpace(rawPrincipalId))
|
||||||
|
principalId = UUID.Random();
|
||||||
|
else if (!UUID.TryParse(rawPrincipalId, out principalId))
|
||||||
throw new Exception(string.Format("ID {0} is not a valid UUID", rawPrincipalId));
|
throw new Exception(string.Format("ID {0} is not a valid UUID", rawPrincipalId));
|
||||||
|
|
||||||
CreateUser(UUID.Zero, principalId, firstName, lastName, password, email, model);
|
CreateUser(UUID.Zero, principalId, firstName, lastName, password, email, model);
|
||||||
|
@ -823,6 +825,7 @@ namespace OpenSim.Services.UserAccountService
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CopyWearablesAndAttachments(destinationAgent, modelAccount.PrincipalID, modelAppearance);
|
CopyWearablesAndAttachments(destinationAgent, modelAccount.PrincipalID, modelAppearance);
|
||||||
|
@ -876,12 +879,20 @@ namespace OpenSim.Services.UserAccountService
|
||||||
for (int i = 0; i < wearables.Length; i++)
|
for (int i = 0; i < wearables.Length; i++)
|
||||||
{
|
{
|
||||||
wearable = wearables[i];
|
wearable = wearables[i];
|
||||||
m_log.DebugFormat("[XXX]: Getting item {0} from avie {1}", wearable[0].ItemID, source);
|
|
||||||
if (wearable[0].ItemID != UUID.Zero)
|
if (wearable[0].ItemID != UUID.Zero)
|
||||||
{
|
{
|
||||||
|
m_log.DebugFormat("[XXX]: Getting item {0} from avie {1}", wearable[0].ItemID, source);
|
||||||
// Get inventory item and copy it
|
// Get inventory item and copy it
|
||||||
InventoryItemBase item = m_InventoryService.GetItem(source, wearable[0].ItemID);
|
InventoryItemBase item = m_InventoryService.GetItem(source, wearable[0].ItemID);
|
||||||
|
|
||||||
|
if(item != null && item.AssetType == (int)AssetType.Link)
|
||||||
|
{
|
||||||
|
if(item.AssetID == UUID.Zero )
|
||||||
|
item = null;
|
||||||
|
else
|
||||||
|
item = m_InventoryService.GetItem(source, item.AssetID);
|
||||||
|
}
|
||||||
|
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination);
|
InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination);
|
||||||
|
|
Loading…
Reference in New Issue