@goodgamestudios/cxf-events

Unified events for BigFarm, Empire and others

Usage no npm install needed!

<script type="module">
  import goodgamestudiosCxfEvents from 'https://cdn.skypack.dev/@goodgamestudios/cxf-events';
</script>

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
  })
})