private void OnUsagePermissionChanged(string userIdString) { var userId = ulong.Parse(userIdString); Backpack.Get(userId).Initialize(); }
private void FetchBackpackItemConsoleCommand(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); if (player == null || !player.IsAlive()) { return; } if (!permission.UserHasPermission(player.UserIDString, FetchPermission)) { PrintToChat(player, lang.GetMessage("No Permission", this, player.UserIDString)); return; } if (!arg.HasArgs(2)) { PrintToConsole(player, lang.GetMessage("Backpack Fetch Syntax", this, player.UserIDString)); return; } if (!VerifyCanOpenBackpack(player, player.userID)) { return; } string[] args = arg.Args; string itemArg = args[0]; int itemID; ItemDefinition itemDefinition = ItemManager.FindItemDefinition(itemArg); if (itemDefinition != null) { itemID = itemDefinition.itemid; } else { // User may have provided an itemID instead of item short name if (!int.TryParse(itemArg, out itemID)) { PrintToChat(player, lang.GetMessage("Invalid Item", this, player.UserIDString)); return; } itemDefinition = ItemManager.FindItemDefinition(itemID); if (itemDefinition == null) { PrintToChat(player, lang.GetMessage("Invalid Item", this, player.UserIDString)); return; } } int desiredAmount; if (!int.TryParse(args[1], out desiredAmount)) { PrintToChat(player, lang.GetMessage("Invalid Item Amount", this, player.UserIDString)); return; } if (desiredAmount < 1) { PrintToChat(player, lang.GetMessage("Invalid Item Amount", this, player.UserIDString)); return; } string itemLocalizedName = itemDefinition.displayName.translated; Backpack backpack = Backpack.Get(player.userID); int quantityInBackpack = backpack.GetItemQuantity(itemID); if (quantityInBackpack == 0) { PrintToChat(player, lang.GetMessage("Item Not In Backpack", this, player.UserIDString), itemLocalizedName); return; } if (desiredAmount > quantityInBackpack) { desiredAmount = quantityInBackpack; } int amountTransferred = backpack.MoveItemsToPlayerInventory(player, itemID, desiredAmount); if (amountTransferred > 0) { PrintToChat(player, lang.GetMessage("Items Fetched", this, player.UserIDString), amountTransferred, itemLocalizedName); } else { PrintToChat(player, lang.GetMessage("Fetch Failed", this, player.UserIDString), itemLocalizedName); } }