Add getter for Event.BroadcastDisabled (#946)
In a pre-hook, the hook param is not reliable if multiple plugins have hooked the same event.
This commit is contained in:
parent
821251b176
commit
b88e0d7875
@ -438,6 +438,22 @@ static cell_t sm_SetEventBroadcast(IPluginContext *pContext, const cell_t *param
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell_t sm_GetEventBroadcast(IPluginContext *pContext, const cell_t *params)
|
||||||
|
{
|
||||||
|
Handle_t hndl = static_cast<Handle_t>(params[1]);
|
||||||
|
HandleError err;
|
||||||
|
EventInfo *pInfo;
|
||||||
|
HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
|
||||||
|
|
||||||
|
if ((err=handlesys->ReadHandle(hndl, g_EventManager.GetHandleType(), &sec, (void **)&pInfo))
|
||||||
|
!= HandleError_None)
|
||||||
|
{
|
||||||
|
return pContext->ThrowNativeError("Invalid game event handle %x (error %d)", hndl, err);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pInfo->bDontBroadcast;
|
||||||
|
}
|
||||||
|
|
||||||
REGISTER_NATIVES(gameEventNatives)
|
REGISTER_NATIVES(gameEventNatives)
|
||||||
{
|
{
|
||||||
{"HookEvent", sm_HookEvent},
|
{"HookEvent", sm_HookEvent},
|
||||||
@ -471,6 +487,7 @@ REGISTER_NATIVES(gameEventNatives)
|
|||||||
{"Event.SetFloat", sm_SetEventFloat},
|
{"Event.SetFloat", sm_SetEventFloat},
|
||||||
{"Event.SetString", sm_SetEventString},
|
{"Event.SetString", sm_SetEventString},
|
||||||
{"Event.BroadcastDisabled.set", sm_SetEventBroadcast},
|
{"Event.BroadcastDisabled.set", sm_SetEventBroadcast},
|
||||||
|
{"Event.BroadcastDisabled.get", sm_GetEventBroadcast},
|
||||||
|
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
@ -56,6 +56,7 @@ typeset EventHook
|
|||||||
// this event has set the hook mode EventHookMode_PostNoCopy.
|
// this event has set the hook mode EventHookMode_PostNoCopy.
|
||||||
// @param name String containing the name of the event.
|
// @param name String containing the name of the event.
|
||||||
// @param dontBroadcast True if event was not broadcast to clients, false otherwise.
|
// @param dontBroadcast True if event was not broadcast to clients, false otherwise.
|
||||||
|
// May not correspond to the real value. Use the property BroadcastDisabled.
|
||||||
// @return Ignored for post hooks. Plugin_Handled will block event if hooked as pre.
|
// @return Ignored for post hooks. Plugin_Handled will block event if hooked as pre.
|
||||||
///
|
///
|
||||||
function Action (Event event, const char[] name, bool dontBroadcast);
|
function Action (Event event, const char[] name, bool dontBroadcast);
|
||||||
@ -160,6 +161,7 @@ methodmap Event < Handle
|
|||||||
// or HookEventEx callbacks.
|
// or HookEventEx callbacks.
|
||||||
property bool BroadcastDisabled {
|
property bool BroadcastDisabled {
|
||||||
public native set(bool dontBroadcast);
|
public native set(bool dontBroadcast);
|
||||||
|
public native get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,4 +339,4 @@ native void GetEventName(Handle event, char[] name, int maxlength);
|
|||||||
* @param dontBroadcast True to disable broadcasting, false otherwise.
|
* @param dontBroadcast True to disable broadcasting, false otherwise.
|
||||||
* @error Invalid Handle.
|
* @error Invalid Handle.
|
||||||
*/
|
*/
|
||||||
native void SetEventBroadcast(Handle event, bool dontBroadcast);
|
native void SetEventBroadcast(Handle event, bool dontBroadcast);
|
Loading…
Reference in New Issue
Block a user