added amb919 - GetExtensionFileStatus()

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401425
This commit is contained in:
David Anderson 2007-09-13 17:21:41 +00:00
parent 5a16141bcf
commit 38a8e8ac80
2 changed files with 44 additions and 0 deletions

View File

@ -41,6 +41,7 @@
#include "TimerSys.h"
#include "ForwardSys.h"
#include "Logger.h"
#include "ExtensionSys.h"
#if defined PLATFORM_WINDOWS
#include <windows.h>
@ -549,6 +550,33 @@ static cell_t LogToFileEx(IPluginContext *pContext, const cell_t *params)
return 1;
}
static cell_t GetExtensionFileStatus(IPluginContext *pContext, const cell_t *params)
{
char *str;
pContext->LocalToString(params[1], &str);
IExtension *pExtension = g_Extensions.FindExtensionByFile(str);
if (!pExtension)
{
return -2;
}
if (!pExtension->IsLoaded())
{
return -1;
}
char *error;
pContext->LocalToString(params[2], &error);
if (!pExtension->IsRunning(error, params[3]))
{
return 0;
}
return 1;
}
REGISTER_NATIVES(coreNatives)
{
{"AutoExecConfig", AutoExecConfig},
@ -570,5 +598,7 @@ REGISTER_NATIVES(coreNatives)
{"LogAction", sm_LogAction},
{"LogToFile", LogToFile},
{"LogToFileEx", LogToFileEx},
{"GetExtensionFileStatus", GetExtensionFileStatus},
{NULL, NULL},
};

View File

@ -452,6 +452,19 @@ native RegPluginLibrary(const String:name[]);
*/
native bool:LibraryExists(const String:name[]);
/**
* Returns the status of an extension, by filename.
*
* @param name Extension name (like "sdktools.ext").
* @param error Optional error message buffer.
* @param maxlength Length of optional error message buffer.
* @return -2 if the extension was not found.
* -1 if the extension was found but failed to load.
* 0 if the extension loaded but reported an error.
* 1 if the extension is running without error.
*/
native GetExtensionFileStatus(const String:name[], String:error[]="", maxlength=0);
/**
* Called after a library (plugin) is added that the
* current plugin references optionally.
@ -470,3 +483,4 @@ forward OnLibraryRemoved(const String:name[]);
#include <helpers>
#include <entity>