fix UNLOZE+ReservedSlots

fix dependency unload error in a few plugins with LibraryExists in OnAllPluginsLoaded
This commit is contained in:
BotoX
2019-10-03 13:46:17 +02:00
parent a83f87e656
commit 492703fb5c
8 changed files with 52 additions and 55 deletions
@@ -57,7 +57,7 @@ public void OnPluginStart()
//----------------------------------------------------------------------------------------------------
public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
CreateNative("HasSteamIDReservedSlot", Native_HasSteamIDReservedSlot);
CreateNative("AsyncHasSteamIDReservedSlot", Native_AsyncHasSteamIDReservedSlot);
RegPluginLibrary("unloze");
@@ -242,12 +242,12 @@ stock void ApplyGroupFlags(int client)
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public int Native_HasSteamIDReservedSlot(Handle plugin, int numParams)
public int Native_AsyncHasSteamIDReservedSlot(Handle plugin, int numParams)
{
char sSteamID32[32];
GetNativeString(1, sSteamID32, sizeof(sSteamID32));
HasSteamIDReservedSlotCallback callback;
AsyncHasSteamIDReservedSlotCallbackFunc callback;
callback = GetNativeCell(2);
any data;
@@ -267,7 +267,7 @@ public int Native_HasSteamIDReservedSlot(Handle plugin, int numParams)
Handle hRequest = SteamWorks_CreateHTTPRequest(k_EHTTPMethodGET, sRequest);
if (!hRequest ||
!SteamWorks_SetHTTPCallbacks(hRequest, Native_HasSteamIDReservedSlot_OnTransferComplete) ||
!SteamWorks_SetHTTPCallbacks(hRequest, Native_AsyncHasSteamIDReservedSlot_OnTransferComplete) ||
!SteamWorks_SetHTTPRequestContextValue(hRequest, hDataPack) ||
!SteamWorks_SendHTTPRequest(hRequest))
{
@@ -278,32 +278,32 @@ public int Native_HasSteamIDReservedSlot(Handle plugin, int numParams)
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public int Native_HasSteamIDReservedSlot_OnTransferComplete(Handle hRequest, bool bFailure, bool bSuccessful, EHTTPStatusCode eStatusCode, DataPack hDataPack)
public int Native_AsyncHasSteamIDReservedSlot_OnTransferComplete(Handle hRequest, bool bFailure, bool bSuccessful, EHTTPStatusCode eStatusCode, DataPack hDataPack)
{
if (bFailure || !bSuccessful || eStatusCode != k_EHTTPStatusCode200OK)
{
char sData[32] = "NOGROUP";
Native_HasSteamIDReservedSlot_OnTransferResponse(sData, hDataPack);
Native_AsyncHasSteamIDReservedSlot_OnTransferResponse(sData, hDataPack);
delete hRequest;
return;
}
SteamWorks_GetHTTPResponseBodyCallback(hRequest, Native_HasSteamIDReservedSlot_OnTransferResponse, hDataPack);
SteamWorks_GetHTTPResponseBodyCallback(hRequest, Native_AsyncHasSteamIDReservedSlot_OnTransferResponse, hDataPack);
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public int Native_HasSteamIDReservedSlot_OnTransferResponse(char[] sData, DataPack hDataPack)
public int Native_AsyncHasSteamIDReservedSlot_OnTransferResponse(char[] sData, DataPack hDataPack)
{
hDataPack.Reset();
char sSteamID32[32];
hDataPack.ReadString(sSteamID32, sizeof(sSteamID32));
HasSteamIDReservedSlotCallback callback;
callback = view_as<HasSteamIDReservedSlotCallback>(hDataPack.ReadFunction());
AsyncHasSteamIDReservedSlotCallbackFunc callback;
callback = view_as<AsyncHasSteamIDReservedSlotCallbackFunc>(hDataPack.ReadFunction());
Handle plugin;
plugin = hDataPack.ReadCell();