/// <summary> /// Buy an item. Currently only outfits supported (itemType 0) /// </summary> /// <param name="userId">Id of user in Database</param> /// <param name="itemId">Id of item</param> /// <param name="itemType">Type of item. Currently only 0 supported</param> /// <returns>Descriptive result as string</returns> public async Task <string> BuyItemForUser(int userId, int netId, int itemId, ShopItemType itemType, bool forceCommerceCheck) { int result; switch (itemType) { case ShopItemType.OUTFIT: result = await m_database.BuyUserOutfit(userId, itemId); break; case ShopItemType.XPBOOST: result = await m_database.BuyUserBoost(userId, itemId); break; case ShopItemType.CURRENCY: // buy user in-game currency result = 1; break; case ShopItemType.DONATION: // donation result = 1; break; case ShopItemType.WEAPONTINT: result = await m_database.BuyUserWeaponTint(userId, itemId); break; default: result = -99; break; } switch (result) { case 0: return("You already own this item"); case -1: return("You don't have enough money"); case -2: return("You need more XP for this item"); case -3: return("Item is for donators only"); case -99: return("Something went wrong"); default: bool commerce = false; if (forceCommerceCheck && CanPlayerStartCommerceSession(netId.ToString())) { commerce = true; } await UpdateItems(userId, netId, itemType, commerce); return("Success"); } }