Example #1
0
        public InventoryManager(Server.Server server) : base(server)
        {
            server.RegisterEventHandler("Inventory.AddInvItem", new Action <Player, string, int, string>(AddInvItem));
            server.RegisterEventHandler("Inventory.RequestInventory", new Action <Player, string>(RequestInventory));
            server.RegisterEventHandler("Inventory.UseInvItem", new Action <Player, string, int>(UseInvItem));
            server.RegisterEventHandler("Inventory.TakeVehInvItem", new Action <Player, string, int, string>(TakeVehInvItem));
            server.RegisterEventHandler("Inventory.GetInvStats", new Action <Player, string>(GetInvStats));
            CommandRegister.RegisterCommand("use", cmd =>
            {
                var item          = string.Join(" ", cmd.Args).ToLower();
                var playerSession = Server.Instances.Session.GetPlayer(cmd.Player);
                var invItem       = inventoryItems.FirstOrDefault(o => o.Key.ToLower().Equals(item) || o.Value.itemName.ToLower().Equals(item) || o.Value.itemCode.ToLower().Equals(item));
                if (invItem.Key == null)
                {
                    invItem = inventoryItems.FirstOrDefault(o => o.Key.ToLower().Contains(item) || o.Value.itemName.ToLower().Contains(item) || o.Value.itemCode.ToLower().Contains(item));
                }

                if (invItem.Key != null)
                {
                    PlayerInventory playerInv = GetPlayerInventory(playerSession);
                    if (playerInv.HasItem(invItem.Value.itemCode))
                    {
                        playerInv.UseItem(invItem.Value.itemCode, 1);
                    }
                    else
                    {
                        Log.ToClient("[Inventory]", $"You don't have any {invItem.Value.itemName}(s) to use", ConstantColours.Inventory, cmd.Player);
                    }
                }
            });
        }