예제 #1
0
 public override bool CallFunction(string[] args)
 {
     if (base.CallFunction(args) == true)
     {
         if (UUID.TryParse(args[0], out UUID targetavatar) == true)
         {
             if (UUID.TryParse(args[1], out UUID targetfolder) == true)
             {
                 InventoryBase FindFolderHelper = HelperInventory.FindFolder(bot, bot.GetClient.Inventory.Store.RootFolder, targetfolder);
                 if (FindFolderHelper != null)
                 {
                     bot.GetClient.Inventory.GiveFolder(FindFolderHelper.UUID, FindFolderHelper.Name, targetavatar, false);
                     return(true);
                 }
                 else
                 {
                     return(Failed("Unable to find folder"));
                 }
             }
             else
             {
                 return(Failed("Invaild folder UUID"));
             }
         }
         else
         {
             return(Failed("Invaild avatar UUID"));
         }
     }
     return(false);
 }
예제 #2
0
 public override bool CallFunction(string[] args)
 {
     if (base.CallFunction(args) == true)
     {
         if (UUID.TryParse(args[1], out UUID targetfolder) == true)
         {
             if (UUID.TryParse(args[0], out UUID targetavatar) == true)
             {
                 KeyValuePair <string, string> content = HelperInventory.MapFolderInventoryHumanReadable(bot, targetfolder);
                 if (content.Value != null)
                 {
                     string notecardname = "" + content.Key + " Contents @" + helpers.UnixTimeNow().ToString() + "";
                     bot.SendNotecard(notecardname, content.Value, targetavatar);
                 }
                 else
                 {
                     bot.GetClient.Self.InstantMessage(targetavatar, "Unable to load folder or it is empty");
                 }
                 return(true);
             }
             else
             {
                 return(bot.GetCommandsInterface.SmartCommandReply(true, args[0], HelperInventory.MapFolderInventoryJson(bot, targetfolder), CommandName));
             }
         }
         else
         {
             return(Failed("Invaild folder UUID"));
         }
     }
     return(false);
 }
예제 #3
0
 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);
 }
예제 #4
0
 public object InventoryContents(string folderUUID, string token)
 {
     if (tokens.Allow(token, "inventory", "InventoryContents", handleGetClientIP()) == false)
     {
         return(Failure("Token not accepted", "InventoryContents", new [] { folderUUID }));
     }
     if (UUID.TryParse(folderUUID, out UUID folder) == false)
     {
         return(Failure("Invaild folder UUID", "InventoryContents", new [] { folderUUID }));
     }
     return(BasicReply(HelperInventory.MapFolderInventoryJson(bot, folder), "InventoryContents", new [] { folderUUID }));
 }
예제 #5
0
        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"));
        }
예제 #6
0
        public object getRealUUID(string item, string token)
        {
            if (tokens.Allow(token, "inventory", "getRealUUID", handleGetClientIP()) == false)
            {
                return(Failure("Token not accepted", "getRealUUID", new [] { item }));
            }
            if (UUID.TryParse(item, out UUID itemUUID) == false)
            {
                return(Failure("Invaild item uuid", "getRealUUID", new [] { item }));
            }
            UUID reply = HelperInventory.GetAssetUUID(bot, itemUUID);

            return(BasicReply(reply.ToString(), "getRealUUID", new [] { item }));
        }
예제 #7
0
        public object Detach(string item, string token)
        {
            if (tokens.Allow(token, "inventory", "Detach", handleGetClientIP()) == false)
            {
                return(Failure("Token not accepted", "Detach", new [] { item }));
            }
            if (UUID.TryParse(item, out UUID itemuuid) == false)
            {
                return(Failure("invaild item uuid", "Detach", new [] { item }));
            }
            InventoryItem realitem = HelperInventory.getItemByInventoryUUID(bot, itemuuid);

            bot.GetClient.Appearance.RemoveFromOutfit(realitem);
            return(BasicReply("Ok", "Detach", new [] { item }));
        }
예제 #8
0
 public override bool CallFunction(string[] args)
 {
     if (base.CallFunction(args) == true)
     {
         if (UUID.TryParse(args[0], out UUID targetavatar) == true)
         {
             bot.GetClient.Self.InstantMessage(targetavatar, "Building inventory folder map now [This might take a while]");
             string reply = HelperInventory.MapFolderHumanReadable(bot);
             bot.SendNotecard("Inventory Folders", reply, targetavatar);
             return(true);
         }
         else
         {
             string reply = HelperInventory.MapFolderJson(bot);
             return(bot.GetCommandsInterface.SmartCommandReply(true, args[0], reply, CommandName));
         }
     }
     return(false);
 }
예제 #9
0
        public object SendFolder(string folder, string avatar, string token)
        {
            if (tokens.Allow(token, "inventory", "SendFolder", handleGetClientIP()) == false)
            {
                return(Failure("Token not accepted", "SendFolder", new [] { folder, avatar }));
            }
            ProcessAvatar(avatar);
            if (avataruuid == UUID.Zero)
            {
                return(Failure("Invaild avatar uuid", "SendFolder", new [] { folder, avatar }));
            }
            if (UUID.TryParse(folder, out UUID targetfolder) == true)
            {
                return(Failure("Invaild folder uuid", "SendFolder", new [] { folder, avatar }));
            }
            InventoryBase FindFolderHelper = HelperInventory.FindFolder(bot, bot.GetClient.Inventory.Store.RootFolder, targetfolder);

            if (FindFolderHelper == null)
            {
                return(Failure("Unable to find folder", "SendFolder", new [] { folder, avatar }));
            }
            bot.GetClient.Inventory.GiveFolder(FindFolderHelper.UUID, FindFolderHelper.Name, avataruuid, false);
            return(BasicReply("ok", "SendFolder", new [] { folder, avatar }));
        }
예제 #10
0
        public object RenameInventory(string item, [FormField] string newname, string token)
        {
            if (tokens.Allow(token, "inventory", "RenameInventory", handleGetClientIP()) == false)
            {
                return(Failure("Token not accepted", "RenameInventory", new [] { item, newname }));
            }
            if (UUID.TryParse(item, out UUID target) == false)
            {
                return(Failure("invaild item uuid", "RenameInventory", new [] { item, newname }));
            }
            if (newname.Length < 3)
            {
                return(Failure("Item name is to short", "RenameInventory", new [] { item, newname }));
            }
            InventoryItem realitem = HelperInventory.getItemByInventoryUUID(bot, target);

            if (realitem == null)
            {
                return(Failure("Unable to find inventory item", "RenameInventory", new [] { item, newname }));
            }
            realitem.Name = newname;
            bot.GetClient.Inventory.RequestUpdateItem(realitem);
            return(BasicReply("Ok", "RenameInventory", new [] { item, newname }));
        }