SubscriptionsServer - Mini-IT/SnipeWiki GitHub Wiki

Module Subscriptions

Overview

Server modules can subscribe to different events generated by the core or your project. Some of the events already have dynamic methods defined that have to be overridden, others will require implementing an interface. Subscribing a module to an event is done with a Server.subscribeModule() or CacheServer.subscribeModule() call that should be in the module constructor.

Example:

  public function new(s: CacheServerTest)
    {
      super(s);
      name = 'user';

      server.subscribeModule("core/user.loginPost", this);
    }

  override function loginPost(c: TestSlaveClient, params: Params, response: { errorCode: String })
    {
      // logic
    }

This article contains a shortened list of the available module subscriptions. The detailed description is in the appropriate game module articles.

Cache server subscriptions

The snipe.cache.ModuleCache class provides four event hooks.

  • core/user.registerModify allows modifying new user parameters on user registration.
  • core/user.registerPost is called after the user registration, and can be used to do some work on cache server.
  • core/user.loginPost is called after the user successfully logs in to game server.
  • core/user.logoutPost is called after the user logs out.

Slave server subscriptions

snipe.slave.Module class provides five hooks.

  • core/user.registerPre can be used to disallow user registration in specific cases.
  • core/user.register is called after all user registration checks before the actual user registration logic.
  • core/user.loginPre is called before the user logs in to game server and can be used to disallow user login.
  • core/user.loginPost is called after the user successfully logs in to game server.
  • core/user.logoutPost is called after the user logs out.
  • core/user.freePost [game server only!] is called on freeing the user data.

There are interfaces that define additional hooks.

Interface class Event name Description
HookCalendarLoadTablesPost core/calendar.loadTablesPost Called after core calendar events module loads calendar events from database.
HookItemLoadTablesPost core/item.loadTablesPost Called after core items module loads item tables from database.
HookUserDaily core/user.daily Called for each user once at start of new day.
HookUserDailyLoginPost core/user.dailyLoginPost Called for each user after first successful login of the day.
HookUserEvery24hr core/user.every24hr Called for each user every 24 hours.
HookUserLoadPost core/user.loadPost Called after loading user from database.
⚠️ **GitHub.com Fallback** ⚠️