public static void GetTitleData() { var getRequest = new ClientModels.GetTitleDataRequest(); // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey }; PlayFabClientAPI.GetTitleData(getRequest, GetTitleDataCallback, PfSharedControllerEx.FailCallback("GetTitleData")); }
public static void PurchaseUserItem(string itemId, uint qty) { if (qty == 1) { string vcKey; int cost; if (PfSharedModelEx.globalClientUser.GetClientItemPrice(null, itemId, out vcKey, out cost)) { var purchaseRequest = new PurchaseItemRequest(); purchaseRequest.ItemId = itemId; purchaseRequest.VirtualCurrency = vcKey; purchaseRequest.Price = cost; PlayFabClientAPI.PurchaseItem(purchaseRequest, PurchaseUserItemCallback, PfSharedControllerEx.FailCallback("PurchaseItem")); } else { Debug.LogWarning("You cannot afford this item"); } } else { var multiRequest = new StartPurchaseRequest(); multiRequest.Items = new List <ItemPurchaseRequest>(); multiRequest.Items.Add(new ItemPurchaseRequest { ItemId = itemId, Quantity = qty }); PlayFabClientAPI.StartPurchase(multiRequest, StartPurchaseCallback, PfSharedControllerEx.FailCallback("StartPurchase")); } }
private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { var catalogRequest = new ServerModels.GetCatalogItemsRequest(); PlayFabServerAPI.GetCatalogItems(catalogRequest, GetCatalogCallback, PfSharedControllerEx.FailCallback("GetCatalogItems")); GetUserInventory(playFabId); }
private static void OnVcChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { if (characterId == null) // Reload the user inventory GetUserVc(); else // Reload the character inventory GetCharacterVc(characterId); }
public static void CancelTrade(string tradeId) { var cancelRequest = new ClientModels.CancelTradeRequest(); cancelRequest.TradeId = tradeId; PlayFabClientAPI.CancelTrade(cancelRequest, CancelTradeCallback, PfSharedControllerEx.FailCallback("CancelTrade")); }
private static void ConfirmPurchaseCallback(ConfirmPurchaseResult result) { // TODO: This may not have ideal results with stacks... PfSharedModelEx.globalClientUser.clientUserItems.AddRange(result.Items); PfSharedModelEx.globalClientUser.UpdateInvDisplay(PfSharedControllerEx.Api.Client); PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client, false); }
public static void UnlockUserContainerCallback(UnlockContainerItemResult unlockResult) { string characterId = ((UnlockContainerItemRequest)unlockResult.Request).CharacterId; PfSharedModelEx.globalClientUser.clientUserItems.AddRange(unlockResult.GrantedItems); var unlockedItem = PfSharedModelEx.globalClientUser.GetClientItem(characterId, unlockResult.UnlockedItemInstanceId); if (unlockedItem != null && unlockedItem.RemainingUses > 0) { unlockedItem.RemainingUses -= 1; if (unlockedItem.RemainingUses <= 0) { PfSharedModelEx.globalClientUser.RemoveItems(characterId, new HashSet <string>() { unlockResult.UnlockedItemInstanceId }); } } PfSharedModelEx.globalClientUser.UpdateInvDisplay(PfSharedControllerEx.Api.Client); bool needsFullRefresh = (unlockedItem == null); // If we couldn't find our unlocked item, we're stuck and we need a full refresh PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, characterId, PfSharedControllerEx.Api.Client, needsFullRefresh); PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnVcChanged, PfSharedModelEx.globalClientUser.playFabId, characterId, PfSharedControllerEx.Api.Client, true); // unlockResult contains no information about potential currency we may have gained }
public static void GetUserVc(string playFabId) { var getRequest = new ServerModels.GetUserInventoryRequest(); getRequest.PlayFabId = playFabId; PlayFabServerAPI.GetUserInventory(getRequest, GetUserVcCallback, PfSharedControllerEx.FailCallback("GetUserInventory")); }
public void MoveToUserCallback(ServerModels.MoveItemToUserFromCharacterResult moveResult) { string playFabId = ((ServerModels.MoveItemToUserFromCharacterRequest)moveResult.Request).PlayFabId; string characterId = ((ServerModels.MoveItemToUserFromCharacterRequest)moveResult.Request).CharacterId; string movedItemInstanceId = ((ServerModels.MoveItemToUserFromCharacterRequest)moveResult.Request).ItemInstanceId; bool requiresRefresh = true; UserModel userModel; CharacterModel tempModel; PfInvServerChar characterModel; if (PfSharedModelEx.serverUsers.TryGetValue(playFabId, out userModel) && userModel.serverCharacterModels.TryGetValue(characterId, out tempModel)) { characterModel = tempModel as PfInvServerChar; var movedItem = userModel.GetServerItem(characterId, movedItemInstanceId); if (movedItem != null) { userModel.RemoveItems(characterId, new HashSet <string>() { movedItemInstanceId }); userModel.serverUserItems.Add(movedItem); requiresRefresh = false; } userModel.UpdateInvDisplay(PfSharedControllerEx.Api.Server); characterModel.UpdateInvDisplay(); } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, playFabId, null, PfSharedControllerEx.Api.Server, requiresRefresh); PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, playFabId, characterId, PfSharedControllerEx.Api.Server, requiresRefresh); }
private static void OnCatalogLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { // Find the designated trade target item foreach (var catalogPair in PfSharedModelEx.clientCatalog) if (catalogPair.Value.DisplayName.ToLower().Contains(PfSharedModelEx.SWILL_NAME.ToLower())) PfSharedModelEx.swillItemId = catalogPair.Key; }
public void GetInventory() { var getRequest = new GetCharacterInventoryRequest(); getRequest.CharacterId = characterId; PlayFabClientAPI.GetCharacterInventory(getRequest, GetInventoryCallback, PfSharedControllerEx.FailCallback("GetCharacterInventory")); }
private static void OnInventoryChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { UserModel updatedUser; CharacterModel tempCharacter; if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser)) return; if (characterId == null) { // Reload the user inventory GetUserInventory(playFabId)(); } else { // Reload the character inventory if (updatedUser.characterIds.IndexOf(characterId) == -1 || !updatedUser.serverCharacterModels.TryGetValue(characterId, out tempCharacter)) return; PfInvServerChar eachCharacter = tempCharacter as PfInvServerChar; if (eachCharacter == null || eachCharacter.inventory == null) return; eachCharacter.GetInventory(); } }
public static void GetPublisherData() { var getRequest = new ClientModels.GetPublisherDataRequest(); getRequest.Keys = PfSharedModelEx.defaultPublisherKeys; // TODO: Temporary - keys are mandatory, and we don't know what keys already exist. PlayFabClientAPI.GetPublisherData(getRequest, GetPublisherDataCallback, PfSharedControllerEx.FailCallback("GetPublisherData")); }
public void GetInventory() { var getRequest = new ServerModels.GetCharacterInventoryRequest(); getRequest.PlayFabId = playFabId; getRequest.CharacterId = characterId; PlayFabServerAPI.GetCharacterInventory(getRequest, GetInventoryCallback, PfSharedControllerEx.FailCallback("GetCharacterInventory")); }
private static void GetUserReadOnlyDataCallback(ClientModels.GetUserDataResult result) { foreach (var eachDataEntry in result.Data) { PfSharedModelEx.globalClientUser.userReadOnlyData[eachDataEntry.Key] = eachDataEntry.Value.Value; } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnUserDataLoaded, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false); }
public static void GetUserReadOnlyData() { var getRequest = new ClientModels.GetUserDataRequest(); getRequest.PlayFabId = PfSharedModelEx.globalClientUser.playFabId; // You may ask for yourself specifically, any other playFabId you're aware of, or null to default to yourself // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey }; PlayFabClientAPI.GetUserReadOnlyData(getRequest, GetUserDataCallback, PfSharedControllerEx.FailCallback("GetUserReadOnlyData")); }
private static void GetInternalTitleDataCallback(ServerModels.GetTitleDataResult result) { foreach (var eachTitleEntry in result.Data) { PfSharedModelEx.titleInternalData[eachTitleEntry.Key] = eachTitleEntry.Value; } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnTitleDataLoaded, null, null, PfSharedControllerEx.Api.Server, false); }
private static void GetPublisherDataCallback(ClientModels.GetPublisherDataResult result) { foreach (var eachPublisherEntry in result.Data) { PfSharedModelEx.publisherData[eachPublisherEntry.Key] = eachPublisherEntry.Value; } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnTitleDataLoaded, null, null, PfSharedControllerEx.Api.Client, false); }
public static void GetUserStatistics(string playFabId) { var request = new GetUserStatisticsRequest(); request.PlayFabId = playFabId; PlayFabServerAPI.GetUserStatistics(request, GetUserStatisticsCallback, PfSharedControllerEx.FailCallback("GetUserStatistics")); }
private static void AcceptTradeCallback(ClientModels.AcceptTradeResponse result) { Debug.Log("Existing trade completed: " + result.Trade.TradeId); PfSharedModelEx.globalClientUser.RemoveTrade(result.Trade.TradeId); PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client, true); }
public void ConsumeItem(string itemInstanceId) { var consumeRequest = new ConsumeItemRequest(); consumeRequest.ConsumeCount = 1; consumeRequest.CharacterId = characterId; consumeRequest.ItemInstanceId = itemInstanceId; PlayFabClientAPI.ConsumeItem(consumeRequest, ConsumeItemCallback, PfSharedControllerEx.FailCallback("ConsumeItem")); }
public static void AcceptTrade(string tradeId, string offeringPlayerId, List <string> acceptedInventoryInstanceIds) { var acceptRequest = new ClientModels.AcceptTradeRequest(); acceptRequest.TradeId = tradeId; acceptRequest.OfferingPlayerId = offeringPlayerId; acceptRequest.AcceptedInventoryInstanceIds = acceptedInventoryInstanceIds; PlayFabClientAPI.AcceptTrade(acceptRequest, AcceptTradeCallback, PfSharedControllerEx.FailCallback("CancelTrade")); }
public static void ConsumeUserItem(string itemInstanceId) { var consumeRequest = new ConsumeItemRequest(); consumeRequest.ConsumeCount = 1; consumeRequest.CharacterId = null; // To indicate user inventory consumeRequest.ItemInstanceId = itemInstanceId; PlayFabClientAPI.ConsumeItem(consumeRequest, ConsumeItemCallback, PfSharedControllerEx.FailCallback("ConsumeItem")); }
public void RevokeItem(string itemInstanceId) { var revokeRequest = new AdminModels.RevokeInventoryItemRequest(); revokeRequest.PlayFabId = playFabId; revokeRequest.CharacterId = characterId; revokeRequest.ItemInstanceId = itemInstanceId; PlayFabAdminAPI.RevokeInventoryItem(revokeRequest, RevokeItemCallback, PfSharedControllerEx.FailCallback("RevokeInventoryItem")); }
public static void GetUserData(string playFabId) { var getRequest = new ServerModels.GetUserDataRequest(); getRequest.PlayFabId = playFabId; // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey }; PlayFabServerAPI.GetUserData(getRequest, GetUserDataCallback, PfSharedControllerEx.FailCallback("GetUserData")); }
private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { UserModel updatedUser; if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser)) return; for (int i = 0; i < updatedUser.characterIds.Count; i++) GetCharacterVc(playFabId, updatedUser.characterIds[i])(); }
public void GrantCharacterItemCallback(ServerModels.GrantItemsToCharacterResult grantResult) { // Merge the items we received with the items we know we have //UserModel userModel; //if (PfSharedModelEx.serverUsers.TryGetValue(playFabId, out userModel)) // userModel.serverUserItems.AddRange(grantResult.ItemGrantResults); // TODO: Type mismatch makes this too complicated for now PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, playFabId, characterId, PfSharedControllerEx.Api.Server, true); }
private static void GetInternalUserDataCallback(ServerModels.GetUserDataResult result) { string playFabId = result.PlayFabId; foreach (var eachUserEntry in result.Data) { PfSharedModelEx.serverUsers[playFabId].userInternalData[eachUserEntry.Key] = eachUserEntry.Value.Value; } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnUserDataLoaded, null, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false); }
public static void LoginWithEmail(string titleId, string devSecretKey, string email, string password) { PlayFabSettings.TitleId = titleId; PlayFabSettings.DeveloperSecretKey = devSecretKey; var loginRequest = new LoginWithEmailAddressRequest(); loginRequest.Email = email; loginRequest.Password = password; PlayFabClientAPI.LoginWithEmailAddress(loginRequest, LoginCallBack, PfSharedControllerEx.FailCallback("LoginWithEmailAddress")); }
private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { GetUserInventory(); PfSharedModelEx.globalClientUser.clientCharacterModels.Clear(); for (int i = 0; i < PfSharedModelEx.globalClientUser.characterIds.Count; i++) { var newInv = new PfInvClientChar(PfSharedModelEx.globalClientUser.playFabId, PfSharedModelEx.globalClientUser.characterIds[i], PfSharedModelEx.globalClientUser.characterNames[i]); PfSharedModelEx.globalClientUser.clientCharacterModels[PfSharedModelEx.globalClientUser.characterIds[i]] = newInv; } }
private static void OpenTradeCallback(ClientModels.OpenTradeResponse result) { // At this point, the tradeId needs to be shared via some mechanism, such as photon, a game server, shared-group-data, or external implementation // Since we fulfill this trade with ourselves, that step is somewhat automatic in this example Debug.Log("New trade opened: " + result.Trade.TradeId); PfSharedModelEx.globalClientUser.RemoveItems(null, new HashSet <string>(result.Trade.OfferedInventoryInstanceIds)); PfSharedModelEx.globalClientUser.openTrades.Add(result.Trade); PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false); }
private static void ModifyUserVcCallback(ServerModels.ModifyUserVirtualCurrencyResult modifyResult) { UserModel userModel; if (PfSharedModelEx.serverUsers.TryGetValue(modifyResult.PlayFabId, out userModel)) { userModel.SetVcBalance(null, modifyResult.VirtualCurrency, modifyResult.Balance); } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnVcChanged, modifyResult.PlayFabId, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false); }
public static void GrantUserItem(string playFabId, string itemId) { var grantRequest = new ServerModels.GrantItemsToUserRequest(); grantRequest.PlayFabId = playFabId; grantRequest.ItemIds = new List <string>() { itemId }; PlayFabServerAPI.GrantItemsToUser(grantRequest, GrantUserItemCallback, PfSharedControllerEx.FailCallback("GrantItemsToUser")); }
public static void UpdateUserData(string userDataKey, string userDataValue) { if (string.IsNullOrEmpty(userDataValue)) { userDataValue = null; // Ensure that this field is removed } var updateRequest = new ClientModels.UpdateUserDataRequest(); updateRequest.Data = new Dictionary <string, string>(); updateRequest.Data[userDataKey] = userDataValue; // Multiple keys accepted, unlike this example, best-use-case modifies all keys at once when possible. PlayFabClientAPI.UpdateUserData(updateRequest, UpdateUserDataCallback, PfSharedControllerEx.FailCallback("UpdateUserData")); }
private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { UserModel updatedUser; if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser)) return; updatedUser.serverCharacterModels.Clear(); for (int i = 0; i < updatedUser.characterIds.Count; i++) { var newCharInv = new PfInvServerChar(playFabId, updatedUser.characterIds[i], updatedUser.characterNames[i]); updatedUser.serverCharacterModels[updatedUser.characterIds[i]] = newCharInv; } }
public static void ClientCharCallBack(ListUsersCharactersResult charResult) { CharacterModel temp; foreach (var character in charResult.Characters) { if (!PfSharedModelEx.globalClientUser.clientCharacterModels.TryGetValue(character.CharacterId, out temp)) { PfSharedModelEx.globalClientUser.clientCharacterModels[character.CharacterId] = new PfInvClientChar(PfSharedModelEx.globalClientUser.playFabId, character.CharacterId, character.CharacterName); } PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnUserCharactersLoaded, PfSharedModelEx.globalClientUser.playFabId, character.CharacterId, PfSharedControllerEx.Api.Client, false); } }
private static void OnVcChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { UserModel updatedUser; if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser)) return; if (characterId == null) // Reload the user VC GetUserVc(playFabId)(); else if (updatedUser.characterIds.IndexOf(characterId) != -1) // Reload the character VC GetCharacterVc(playFabId, characterId)(); }
private static void OnInventoryChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { if (characterId == null) { // Reload the user inventory GetUserInventory(); } else { // Reload the character inventory CharacterModel tempCharacter; if (!PfSharedModelEx.globalClientUser.clientCharacterModels.TryGetValue(characterId, out tempCharacter)) return; PfInvClientChar eachCharacter = tempCharacter as PfInvClientChar; if (eachCharacter == null || eachCharacter.inventory == null) return; eachCharacter.GetInventory(); } }
private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { GetUserData(); GetUserReadOnlyData(); }
private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { if (eventSourceApi == PfSharedControllerEx.Api.Client) GetCharacterVc(characterId); }
// The static constructor is called as a by-product of this call } private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { // Reload the user VC GetUserVc(playFabId)(); }
private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { for (int i = 0; i < PfSharedModelEx.globalClientUser.characterIds.Count; i++) GetCharacterVc(PfSharedModelEx.globalClientUser.characterIds[i])(); }
private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh) { var catalogRequest = new ServerModels.GetCatalogItemsRequest(); PlayFabServerAPI.GetCatalogItems(catalogRequest, GetCatalogCallback, PfSharedControllerEx.FailCallback("GetCatalogItems")); GetUserInventory(playFabId)(); }