From 13fc38e81f1af1be9e58ee40f072c0211be8ee06 Mon Sep 17 00:00:00 2001
From: Madpeter <57852827+Madpeterz@users.noreply.github.com>
Date: Sat, 21 Aug 2021 02:33:47 +0100
Subject: [PATCH] Inventory commands
corrects UUID check for rez object, adds new inventoryfolders limited command.
---
Core/Commands/Inventory.cs | 22 +++++++++++++++++++---
Core/Static/Inventory.cs | 26 ++++++++++++++++++++++----
2 files changed, 41 insertions(+), 7 deletions(-)
diff --git a/Core/Commands/Inventory.cs b/Core/Commands/Inventory.cs
index d74fa5d..d3d47f0 100644
--- a/Core/Commands/Inventory.cs
+++ b/Core/Commands/Inventory.cs
@@ -28,14 +28,14 @@ namespace BetterSecondBot.HttpService
{
return Failure("Token not accepted", "RezObject", new [] { item });
}
- if (UUID.TryParse(item, out UUID targetitem) == true)
+ if (UUID.TryParse(item, out UUID targetitem) == false)
{
- return Failure("Invaild item UUID", "RezObject", new [] { item });
+ return Failure("Invaild item UUID: "+ item, "RezObject", new [] { item });
}
InventoryItem itm = bot.GetClient.Inventory.FetchItem(targetitem, bot.GetClient.Self.AgentID, (5 * 1000));
if (itm == null)
{
- return Failure("Unable to find item", "RezObject", new [] { item });
+ return Failure("Unable to find item: " + item, "RezObject", new [] { item });
}
UUID rezedobject = bot.GetClient.Inventory.RequestRezFromInventory(bot.GetClient.Network.CurrentSim, bot.GetClient.Self.SimRotation, bot.GetClient.Self.RelativePosition, itm);
return BasicReply(rezedobject.ToString(), "RezObject", new [] { item });
@@ -432,6 +432,22 @@ namespace BetterSecondBot.HttpService
return Failure("Error", "InventoryFolders");
}
+ [About("Requests folders limited to selected folder")]
+ [ArgHints("targetfolder", "URLARG", "the UUID of the folder or root")]
+ [ReturnHints("single InventoryMapFolder")]
+ [ReturnHints("Error")]
+ [Route(HttpVerbs.Get, "/InventoryFoldersLimited/{targetfolder}/{token}")]
+ public object InventoryFoldersLimited(string targetfolder,string token)
+ {
+ if (tokens.Allow(token, "inventory", "InventoryFoldersLimited", handleGetClientIP()) == false)
+ {
+ return Failure("Token not accepted", "InventoryFoldersLimited");
+ }
+ string reply = HelperInventory.MapFolderJson(bot, targetfolder,false);
+ if (reply != null) return BasicReply(reply, "InventoryFoldersLimited");
+ return Failure("Error", "InventoryFoldersLimited");
+ }
+
[About("Requests the contents of a folder as an array of InventoryMapItem
Formated as follows
InventoryMapItem