@goodgamestudios/cxf-events
v1.24.0
Published
Unified events for BigFarm, Empire and others
Downloads
200
Maintainers
Keywords
Readme
cxf-events
💬 Unified events for CXF extensions
Motivation
Games exchange messages in different formats and with different IDs. For example, a login command looks different on BigFarm and Empire. cxf-events
normalizes & standardizes basic events in a game-agnostic way. Your CXF extension can subscribe to cxf.*
events and work in almost all games.
+------------------+
| |
| LOGIN_BASIC_DATA |--->------+
| | becomes
+------------------+ ↓
+---------------+
| |
| cxf.login |---→ your CXF Extension
| |
+---------------+
+------------------+ ↑
| | becomes
| gbd |--->------+
| |
+------------------+
Usage
- Include
@goodgamestudios/cxf-events
in@goodgamestudios/cxf-plugins
// Wait for cxf to be ready
require('@goodgamestudios/cxf-ready').then(cxf => {
// Subscribe to relevant events
cxf.on(CxfEvents.Login, loginData => {
// do something on login
})
})
Events
cxf.login
Emitted after a successful player login.
In addition to sending the login arguments with the event, cxf.login
also stores them in cxf.playerId
, cxf.instanceId
, cxf.networkId
, cxf.gameId
and cxf.language
.
- Event ID
cxf.login
- Arguments
{ playerId, instanceId, networkId, gameId, language }
Example
require('@goodgamestudios/cxf-ready').then(cxf => {
cxf.on(CxfEvents.Login, loginData => {
// do something on login
})
})
How to listen for new game events
Bigfarm
To be able to listen for a new event from bigfarm, you will need to either listen to its descriptive event or its ID event. For instance: If you want to listen for the SUBSCRIPTION_INFO event (ID 460) you will need to:
To be able to listen for a new event from bigfarm, you will need to either listen to its descriptive event and also its ID event. For instance, if you want to listen for the SUBSCRIPTION_INFO event (ID 460) you will need to:
// Just listening for this event is not enough
cxf.once('SUBSCRIPTION_INFO', (e: BigfarmEvent<BigfarmSubscriptionEvent>) => {
// Your code here
});
// Subscribing to event id, so the first event will be fowarded to CXF
cxf.on('460', () => {});