Refactor API calls to use success/fail events
All async native function calls now respond on separate success & fail events. Improve error messages and save `BugReportCopy` in one place on BRQuestScript.
This commit is contained in:
parent
cd9d11edfd
commit
e6a4b19f5a
@ -9,7 +9,7 @@ event OnMenuClose(string menuName)
|
||||
BRQuestScript BRScript = BRQuest as BRQuestScript
|
||||
bool result = BRMerchandiseList.Create(BRScript.ApiUrl, BRScript.ApiKey, BRScript.ShopId, self)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to save shop merchandise. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to save shop merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
endif
|
||||
UnregisterForMenu("ContainerMenu")
|
||||
endif
|
||||
@ -22,15 +22,19 @@ event OnActivate(ObjectReference akActionRef)
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnCreateMerchandise(int result)
|
||||
Debug.Trace("BRMerchChestScript OnCreateMerchandise result: " + result)
|
||||
if result == -2
|
||||
Debug.Trace("BRMerchChestScript no container changes to save to the server")
|
||||
elseif result == -1
|
||||
Debug.MessageBox("Failed to save shop merchandise. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
else
|
||||
event OnCreateMerchandiseSuccess(bool created, int id)
|
||||
Debug.Trace("BRMerchChestScript OnCreateMerchandiseSuccess created: " + created + " id: " + id)
|
||||
if created
|
||||
BRQuestScript BRScript = BRQuest as BRQuestScript
|
||||
BRScript.MerchandiseListId = result;
|
||||
BRScript.MerchandiseListId = id;
|
||||
Debug.Notification("Saved merchandise successfully")
|
||||
else
|
||||
Debug.Trace("BRMerchChestScript no container changes to save to the server")
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnCreateMerchandiseFail(string error)
|
||||
Debug.Trace("BRMerchChestScript OnCreateMerchandiseFail error: " + error)
|
||||
BRQuestScript BRScript = BRQuest as BRQuestScript
|
||||
Debug.MessageBox("Failed to save shop merchandise.\n\n" + error + "\n\n" + BRScript.BugReportCopy)
|
||||
endEvent
|
@ -17,7 +17,7 @@ event OnActivate(ObjectReference akActionRef)
|
||||
bool result = BRMerchandiseList.NextPage(BRScript.ApiUrl, BRScript.ApiKey, BRScript.MerchandiseListId, MerchantShelf, PlaceholderStatic, BRLinkMerchShelf, BRLinkMerchChest, BRLinkItemRef, BRLinkMerchToggle, BRLinkMerchNext, BRLinkMerchPrev)
|
||||
Debug.Trace("BRMerchandiseList.NextPage result: " + result)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to load shop merchandise. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to load or clear shop merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
endif
|
||||
endif
|
||||
endEvent
|
@ -17,7 +17,7 @@ event OnActivate(ObjectReference akActionRef)
|
||||
bool result = BRMerchandiseList.PrevPage(BRScript.ApiUrl, BRScript.ApiKey, BRScript.MerchandiseListId, MerchantShelf, PlaceholderStatic, BRLinkMerchShelf, BRLinkMerchChest, BRLinkItemRef, BRLinkMerchToggle, BRLinkMerchNext, BRLinkMerchPrev)
|
||||
Debug.Trace("BRMerchandiseList.PrevPage result: " + result)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to load shop merchandise. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to load or clear shop merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
endif
|
||||
endif
|
||||
endEvent
|
@ -17,20 +17,22 @@ event OnActivate(ObjectReference akActionRef)
|
||||
bool result = BRMerchandiseList.Toggle(BRScript.ApiUrl, BRScript.ApiKey, BRScript.MerchandiseListId, MerchantShelf, PlaceholderStatic, BRLinkMerchShelf, BRLinkMerchChest, BRLinkItemRef, BRLinkMerchToggle, BRLinkMerchNext, BRLinkMerchPrev)
|
||||
Debug.Trace("BRMerchandiseList.Toggle result: " + result)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to load or clear shop merchandise. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to load or clear shop merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
endif
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnLoadMerchandise(bool result)
|
||||
Debug.Trace("BRMerchToggleScript OnLoadMerchandise result: " + result)
|
||||
if result
|
||||
event OnLoadMerchandiseSuccess(bool result)
|
||||
Debug.Trace("BRMerchToggleScript OnLoadMerchandiseSuccess result: " + result)
|
||||
ObjectReference MerchantShelf = self.GetLinkedRef(BRLinkMerchShelf)
|
||||
while !BRMerchandiseList.Replace3D(MerchantShelf, PlaceholderStatic, BRLinkMerchShelf, BRLinkItemRef)
|
||||
Debug.Trace("BRMerchandiseList.Replace3D returned false, waiting and trying again")
|
||||
Utility.Wait(0.05)
|
||||
endWhile
|
||||
else
|
||||
Debug.MessageBox("Failed to load or clear shop merchandise. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnLoadMerchandiseFail(string error)
|
||||
Debug.Trace("BRMerchToggleScript OnLoadMerchandiseFail error: " + error)
|
||||
BRQuestScript BRScript = BRQuest as BRQuestScript
|
||||
Debug.MessageBox("Failed to load or clear shop merchandise.\n\n" + error + "\n\n" + BRScript.BugReportCopy)
|
||||
endEvent
|
@ -10,13 +10,14 @@ int property ShopId auto
|
||||
string property ShopName auto
|
||||
string property ShopDescription auto
|
||||
; TODO: loop up interior refs by shop id instead of saving this
|
||||
int property InteriorRefListId = 29 auto ; TODO: temp fixing to id 20
|
||||
int property MerchandiseListId = 2 auto ; TODO: temp fixing to id 2
|
||||
int property InteriorRefListId auto ; TODO: temp fixing to id 20
|
||||
int property MerchandiseListId auto ; TODO: temp fixing to id 2
|
||||
ObjectReference property ShopXMarker auto
|
||||
bool property StartModFailed = false auto
|
||||
bool property UpdateShopComplete = false auto
|
||||
bool property GetShopComplete = false auto
|
||||
UILIB_1 property UILib auto
|
||||
string property BugReportCopy = "Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE." auto
|
||||
|
||||
int function GetVersion()
|
||||
return 1
|
||||
@ -31,7 +32,7 @@ function Maintenance()
|
||||
Debug.Trace("BRQuestScript Maintenance")
|
||||
UILib = (Self as Form) as UILIB_1
|
||||
if !BRClient.Init()
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client. Please ensure that the folder Documents\\My Games\\Skyrim Special Edition\\SKSE exists and is accessible by Skyrim.")
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client.\n\nPlease ensure that the folder Documents\\My Games\\Skyrim Special Edition\\SKSE exists and is accessible by Skyrim.")
|
||||
endif
|
||||
int newVersion = GetVersion()
|
||||
if ModVersion < newVersion
|
||||
@ -46,14 +47,14 @@ bool function StartMod()
|
||||
StartModFailed = false
|
||||
bool result = BRClient.StatusCheck(ApiUrl, self)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client. The API server might be down: " + ApiUrl)
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client.\n\nThe API server might be down: " + ApiUrl)
|
||||
StartModFailed = true
|
||||
endif
|
||||
return result
|
||||
endFunction
|
||||
|
||||
event OnStatusCheck(bool result)
|
||||
Debug.Trace("BRQuestScript OnStatusCheck result: " + result)
|
||||
event OnStatusCheckSuccess(bool result)
|
||||
Debug.Trace("BRQuestScript OnStatusCheckSuccess result: " + result)
|
||||
if result
|
||||
ApiKey = BRClient.GenerateApiKey()
|
||||
Debug.Trace("apiKey: " + ApiKey)
|
||||
@ -61,29 +62,33 @@ event OnStatusCheck(bool result)
|
||||
string playerName = PlayerRef.GetBaseObject().GetName()
|
||||
bool ownerResult = BROwner.Create(ApiUrl, ApiKey, playerName, ModVersion, self)
|
||||
if !ownerResult
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to create new owner in the API.\n\n" + BugReportCopy)
|
||||
StartModFailed = true
|
||||
endif
|
||||
else
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client. The API server might be down: " + ApiUrl)
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnStatusCheckFail(string error)
|
||||
Debug.Trace("BRQuestScript OnStatusCheckFail error: " + error)
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client.\n\n" + error + "\n\nThe API server might be down: " + ApiUrl)
|
||||
StartModFailed = true
|
||||
endEvent
|
||||
|
||||
event OnCreateOwnerSuccess(int id)
|
||||
Debug.Trace("BRQuestScript OnCreateOwnerSuccess id: " + id)
|
||||
string playerName = PlayerRef.GetBaseObject().GetName()
|
||||
OwnerId = id
|
||||
bool shopResult = BRShop.Create(ApiUrl, ApiKey, playerName + "'s Shop", "", self)
|
||||
if !shopResult
|
||||
Debug.MessageBox("Failed to create new shop in the API.\n\n" + BugReportCopy)
|
||||
StartModFailed = true
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnCreateOwner(int result)
|
||||
Debug.Trace("BRQuestScript OnCreateOwner result: " + result)
|
||||
string playerName = PlayerRef.GetBaseObject().GetName()
|
||||
if result > -1
|
||||
OwnerId = result
|
||||
bool shopResult = BRShop.Create(ApiUrl, ApiKey, playerName + "'s Shop", "", self)
|
||||
if !shopResult
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
event OnCreateOwnerFail(string error)
|
||||
Debug.Trace("BRQuestScript OnCreateOwnerFail error: " + error)
|
||||
Debug.MessageBox("Failed to create new owner in the API.\n\n" + error + "\n\n" + BugReportCopy)
|
||||
StartModFailed = true
|
||||
endif
|
||||
else
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
StartModFailed = true
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnCreateShopSuccess(int id, string name, string description)
|
||||
@ -96,7 +101,7 @@ endEvent
|
||||
|
||||
event OnCreateShopFail(string error)
|
||||
Debug.Trace("BRQuestScript OnCreateShopFail error: " + error)
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client.\n\n" + error + "\n\nPlease submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to initialize Bazaar Realm client.\n\n" + error + "\n\n" + BugReportCopy)
|
||||
StartModFailed = true
|
||||
endEvent
|
||||
|
||||
@ -106,26 +111,27 @@ bool function SaveInteriorRefs()
|
||||
if result
|
||||
return true
|
||||
else
|
||||
Debug.MessageBox("Failed to save shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to save shop.\n\n" + BugReportCopy)
|
||||
return false
|
||||
endif
|
||||
endFunction
|
||||
|
||||
event OnCreateInteriorRefList(int result)
|
||||
Debug.Trace("BRQuestSCript OnCreateInteriorRefList result: " + result)
|
||||
if result > -1
|
||||
InteriorRefListId = result
|
||||
event OnCreateInteriorRefListSuccess(int id)
|
||||
Debug.Trace("BRQuestSCript OnCreateInteriorRefListSuccess id: " + id)
|
||||
InteriorRefListId = id
|
||||
Debug.MessageBox("Successfully saved shop.")
|
||||
else
|
||||
Debug.MessageBox("Failed to save shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnCreateInteriorRefListFail(string error)
|
||||
Debug.Trace("BRQuestSCript OnCreateInteriorRefListFail error: " + error)
|
||||
Debug.MessageBox("Failed to save shop.\n\n" + error + "\n\n" + BugReportCopy)
|
||||
endEvent
|
||||
|
||||
bool function LoadInteriorRefs()
|
||||
; TODO: this should not save anything if player is not currently in their shop
|
||||
; TODO: this should not load anything if player is not currently in their shop
|
||||
bool result = BRInteriorRefList.ClearCell()
|
||||
if !result
|
||||
Debug.MessageBox("Failed to load shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to clear existing shop before loading in new shop.\n\n" + BugReportCopy)
|
||||
endif
|
||||
Debug.Trace("ClearCell result: " + result)
|
||||
|
||||
@ -133,20 +139,22 @@ bool function LoadInteriorRefs()
|
||||
if result
|
||||
return true
|
||||
else
|
||||
Debug.MessageBox("Failed to load shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to load shop.\n\n" + BugReportCopy)
|
||||
return false
|
||||
endif
|
||||
endFunction
|
||||
|
||||
event OnLoadInteriorRefList(bool result)
|
||||
Debug.Trace("BRQuestSCript OnLoadInteriorRefList result: " + result)
|
||||
if result
|
||||
event OnLoadInteriorRefListSuccess(bool result)
|
||||
Debug.Trace("BRQuestSCript OnLoadInteriorRefListSuccess result: " + result)
|
||||
Debug.MessageBox("Successfully loaded shop")
|
||||
else
|
||||
Debug.MessageBox("Failed to load shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
endif
|
||||
endEvent
|
||||
|
||||
event OnLoadInteriorRefListFail(string error)
|
||||
Debug.Trace("BRQuestSCript OnLoadInteriorRefListFail error: " + error)
|
||||
Debug.MessageBox("Failed to load shop.\n\n" + error + "\n\n" + BugReportCopy)
|
||||
endEvent
|
||||
|
||||
; currently unused, was testing out UILib
|
||||
int function ListMerchandise()
|
||||
string[] options = new string[5]
|
||||
options[0] = "First Item"
|
||||
@ -164,7 +172,7 @@ function UpdateShop(int id, string name, string description)
|
||||
UpdateShopComplete = false
|
||||
bool result = BRShop.Update(ApiUrl, ApiKey, id, name, description, self)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to update shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to update shop.\n\n" + BugReportCopy)
|
||||
UpdateShopComplete = true
|
||||
endif
|
||||
endFunction
|
||||
@ -179,7 +187,7 @@ endEvent
|
||||
|
||||
event OnUpdateShopFail(string error)
|
||||
Debug.Trace("BRQuestScript OnUpdateShopFail error: " + error)
|
||||
Debug.MessageBox("Failed to update shop.\n\n" + error + "\n\nPlease submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to update shop.\n\n" + error + "\n\n" + BugReportCopy)
|
||||
UpdateShopComplete = true
|
||||
endEvent
|
||||
|
||||
@ -188,7 +196,7 @@ function GetShop(int id)
|
||||
GetShopComplete = false
|
||||
bool result = BRShop.Get(ApiUrl, ApiKey, id, self)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to get shop. Please submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to get shop.\n\n" + BugReportCopy)
|
||||
GetShopComplete = true
|
||||
endif
|
||||
endFunction
|
||||
@ -203,6 +211,6 @@ endEvent
|
||||
|
||||
event OnGetShopFail(string error)
|
||||
Debug.Trace("BRQuestScript OnGetShopFail error: " + error)
|
||||
Debug.MessageBox("Failed to get shop.\n\n" + error + "\n\nPlease submit a bug on Nexus Mods with the contents of BazaarRealmPlugin.log and BazaarRealmClient.log usually located in C:\\Users\\<your user>\\Documents\\My Games\\Skyrim Special Edition\\SKSE.")
|
||||
Debug.MessageBox("Failed to get shop.\n\n" + error + "\n\n" + BugReportCopy)
|
||||
GetShopComplete = true
|
||||
endEvent
|
Loading…
Reference in New Issue
Block a user