This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.

Events (API): Difference between revisions

From BZFlagWiki
Jump to navigation Jump to search
No edit summary
Zehra (talk | contribs)
redirect to BZFS API Events for streamlining content
Tag: New redirect
 
(27 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{DoDoc|Fill in articles for all API events}}
#REDIRECT [[BZFS API Events]]
 
{{BZFS_API_Doc}}
 
==Overview==
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.
 
==Installation and Removal==
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.
 
The plug-in must call the function;
 
BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );
 
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.
 
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;
 
BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );
 
==Event Handler==
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.
 
When ever a specific event is triggered, BZFS will call the 'process' method of the installed callback class.
 
  virtual void process ( bz_EventData *eventData ) = 0;
 
==Event Data==
With each call to the 'process' method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;
  bz_eEventType eventType;
This data member allows a plug-in to identify the specific event and cast the 'bz_EventData' pointer to the appropriate specific data class. This is usefull for plug-ins that use the same 'bz_EventHandler' to process more then one specific message.
 
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.
 
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.
 
==Events==
The following list contains all the event types currently supported by BZFS version 2.1
 
  [[bz_eNullEvent]]
  [[bz_eCaptureEvent]]
  [[bz_ePlayerDieEvent]]
  [[bz_ePlayerSpawnEvent]]
  [[bz_eZoneEntryEvent]]
  [[bz_eZoneExitEvent]]
  [[bz_ePlayerJoinEvent]]
  [[bz_ePlayerPartEvent]]
  [[bz_eRawChatMessageEvent]]
  [[bz_eFilteredChatMessageEvent]]
  [[bz_eUnknownSlashCommand]]
  [[bz_eGetPlayerSpawnPosEvent]]
  [[bz_eGetAutoTeamEvent]]
  [[bz_eAllowPlayer]]
  [[bz_eTickEvent]]
  [[bz_eGetWorldEvent]]
  [[bz_eGetPlayerInfoEvent]]
  [[bz_eAllowSpawn]]
  [[bz_eListServerUpdateEvent]]
  [[bz_eBanEvent]]
  [[bz_eHostBanEvent]]
  [[bz_eKickEvent]]
  [[bz_eKillEvent]]
  [[bz_ePlayerPausedEvent]]
  [[bz_eMessageFilteredEvent]]
  [[bz_eGameStartEvent]]
  [[bz_eGameEndEvent]]
  [[bz_eSlashCommandEvent]]
  [[bz_ePlayerAuthEvent]]
  [[bz_eServerMsgEvent]]
  [[bz_eShotFiredEvent]]
  [[bz_eAnointRabbitEvent]]
  [[bz_eNewRabbitEvent]]
  [[bz_eReloadEvent]]
  [[bz_ePlayerUpdateEvent]]
  [[bz_eNetDataSendEvent]]
  [[bz_eNetDataReceveEvent]]
  [[bz_eLoggingEvent]]
  [[bz_eFlagTransferredEvent]]
  [[bz_eFlagGrabbedEvent]]
  [[bz_eFlagDroppedEvent]]
  [[bz_eShotEndedEvent]]
  [[bz_eNewNonPlayerConnection]]
  [[bz_eIdleNewNonPlayerConnection]]
  [[bz_ePlayerCollision]]
  [[bz_eFlagResetEvent]]
  [[bz_eWorldFinalized]]
 
There exists one additional event in the 'bz_eEventType' enumeration in 'bzfsAPI.h', ''bz_eLastEvent''. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.
 
==See also==
[[BZFS API]]
 
[[plug-ins]]
 
[[Category:BZFS_API_Events]]

Latest revision as of 22:03, 9 November 2025

Redirect to: