SecondBot/Core/Commands/Inventory/inventoryContents.cs
2020-04-23 18:19:18 +01:00

55 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using OpenMetaverse;
using BSB.Static;
using BetterSecondBotShared.Static;
namespace BSB.Commands.Inventory
{
public class InventoryContents : CoreCommand
{
public override string[] ArgTypes { get { return new[] { "Smart","UUID" }; } }
public override string[] ArgHints { get { return new[] { "Smart reply target: Channel,Avatar,HTTP","Folder" }; } }
public override string Helpfile { get { return "Maps the given inventory folder [ARG 2] for contents<br/>" +
"Arg 1 *Avatar UUID* sends it via notecard to [ARG 1]<hr/>" +
"Arg 1 *Anything else*<br/>as csv packed as follows folderinventory=UUID~|~entry~|~entry..." +
"entry is formated as follows: itemname###uuid###type<br/>" +
"sent to smart reply target"; } }
public override int MinArgs { get { return 2; } }
public override bool CallFunction(string[] args)
{
if (base.CallFunction(args) == true)
{
if (UUID.TryParse(args[1], out UUID targetfolder) == true)
{
string[] content = HelperInventory.MapFolderInventory(bot, targetfolder);
if (UUID.TryParse(args[0], out UUID targetavatar) == true)
{
string notecardname = "InventoryContents" + helpers.UnixTimeNow().ToString() + "";
if (content != null)
{
bot.SendNotecard(notecardname, String.Join("\n\r", content), targetavatar);
}
else
{
bot.GetClient.Self.InstantMessage(targetavatar, "Unable to load folder or it is empty");
}
return true;
}
else
{
return bot.GetCommandsInterface.SmartCommandReply(args[0], String.Join("~|~", content), CommandName);
}
}
else
{
return Failed("Invaild folder UUID");
}
}
return false;
}
}
}