cu-events
Version:
Camelot Unchained Client Library - Events
133 lines (95 loc) • 13.3 kB
JavaScript
/**
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _listeners;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _classesEventEmitter = require('./classes/EventEmitter');
var _classesEventEmitter2 = _interopRequireDefault(_classesEventEmitter);
var _classesHandlesAnnouncements = require('./classes/HandlesAnnouncements');
var _classesHandlesAnnouncements2 = _interopRequireDefault(_classesHandlesAnnouncements);
var _classesHandlesChat = require('./classes/HandlesChat');
var _classesHandlesChat2 = _interopRequireDefault(_classesHandlesChat);
var _classesHandlesCharacter = require('./classes/HandlesCharacter');
var _classesHandlesCharacter2 = _interopRequireDefault(_classesHandlesCharacter);
var _classesHandlesEnemyTarget = require('./classes/HandlesEnemyTarget');
var _classesHandlesEnemyTarget2 = _interopRequireDefault(_classesHandlesEnemyTarget);
var _classesHandlesFriendlyTarget = require('./classes/HandlesFriendlyTarget');
var _classesHandlesFriendlyTarget2 = _interopRequireDefault(_classesHandlesFriendlyTarget);
var _classesHandlesControlGame = require('./classes/HandlesControlGame');
var _classesHandlesControlGame2 = _interopRequireDefault(_classesHandlesControlGame);
var _classesHandlesControlGameScore = require('./classes/HandlesControlGameScore');
var _classesHandlesControlGameScore2 = _interopRequireDefault(_classesHandlesControlGameScore);
var _listenersInit = require('./listeners/Init');
var _listenersInit2 = _interopRequireDefault(_listenersInit);
var _listenersAnnouncements = require('./listeners/Announcements');
var _listenersAnnouncements2 = _interopRequireDefault(_listenersAnnouncements);
var _listenersChat = require('./listeners/Chat');
var _listenersChat2 = _interopRequireDefault(_listenersChat);
var _listenersCharacter = require('./listeners/Character');
var _listenersCharacter2 = _interopRequireDefault(_listenersCharacter);
var _listenersEnemyTarget = require('./listeners/EnemyTarget');
var _listenersEnemyTarget2 = _interopRequireDefault(_listenersEnemyTarget);
var _listenersFriendlyTarget = require('./listeners/FriendlyTarget');
var _listenersFriendlyTarget2 = _interopRequireDefault(_listenersFriendlyTarget);
var _listenersControlGame = require('./listeners/ControlGame');
var _listenersControlGame2 = _interopRequireDefault(_listenersControlGame);
var _listenersControlGameScore = require('./listeners/ControlGameScore');
var _listenersControlGameScore2 = _interopRequireDefault(_listenersControlGameScore);
// Handle* objects. These define both the event name, and the Reflux action used
// to trigger the stores (TODO: This latter part is not working)
var handlesAnnouncements = new _classesHandlesAnnouncements2['default']();
var handlesChat = new _classesHandlesChat2['default']();
var handlesCharacter = new _classesHandlesCharacter2['default']();
var handlesEnemyTarget = new _classesHandlesEnemyTarget2['default']();
var handlesFriendlyTarget = new _classesHandlesFriendlyTarget2['default']();
var handlesControlGame = new _classesHandlesControlGame2['default']();
var handlesControlGameScore = new _classesHandlesControlGameScore2['default']();
// Listeners
var listeners = (_listeners = {
'init': new _listenersInit2['default']()
}, _defineProperty(_listeners, handlesAnnouncements.topic, new _listenersAnnouncements2['default'](handlesAnnouncements)), _defineProperty(_listeners, handlesChat.topic, new _listenersChat2['default'](handlesChat)), _defineProperty(_listeners, handlesCharacter.topic, new _listenersCharacter2['default'](handlesCharacter)), _defineProperty(_listeners, handlesEnemyTarget.topic, new _listenersEnemyTarget2['default'](handlesEnemyTarget)), _defineProperty(_listeners, handlesFriendlyTarget.topic, new _listenersFriendlyTarget2['default'](handlesFriendlyTarget)), _defineProperty(_listeners, handlesControlGame.topic, new _listenersControlGame2['default'](handlesControlGame)), _defineProperty(_listeners, handlesControlGameScore.topic, new _listenersControlGameScore2['default'](handlesControlGameScore)), _listeners);
// Event Emitter. A single instance of event emitter handles all cu-events events
var emitter = new _classesEventEmitter2['default']();
// register for an event group
function on(topic, callback) {
var listener = listeners[topic];
if (listener) {
var handle = emitter.addListener(topic, listener.once, callback);
// Start the listener. The start() method will handle multiple
// starts. In some cases, the listener does need kickstarting
// each time, in other cases, not.
listener.start(emitter);
return handle;
}
}
function off(listener) {
emitter.removeListener(listener);
}
function addListener(topic, callback) {
on(topic, callback);
}
function removeListener(listener) {
off(listener);
}
exports['default'] = {
handlesAnnouncements: handlesAnnouncements,
handlesChat: handlesChat,
handlesCharacter: handlesCharacter,
handlesEnemyTarget: handlesEnemyTarget,
handlesFriendlyTarget: handlesFriendlyTarget,
handlesControlGame: handlesControlGame,
handlesControlGameScore: handlesControlGameScore,
on: on,
off: off,
addListener: addListener,
removeListener: removeListener
};
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRzL21haW4udHMiXSwibmFtZXMiOlsib24iLCJvZmYiLCJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OzttQ0FReUIsd0JBQXdCOzs7OzJDQUVoQixnQ0FBZ0M7Ozs7a0NBQ3pDLHVCQUF1Qjs7Ozt1Q0FDbEIsNEJBQTRCOzs7O3lDQUMxQiw4QkFBOEI7Ozs7NENBQzNCLGlDQUFpQzs7Ozt5Q0FDcEMsOEJBQThCOzs7OzhDQUN6QixtQ0FBbUM7Ozs7NkJBRTlDLGtCQUFrQjs7OztzQ0FDVCwyQkFBMkI7Ozs7NkJBQ3BDLGtCQUFrQjs7OztrQ0FDYix1QkFBdUI7Ozs7b0NBQ3JCLHlCQUF5Qjs7Ozt1Q0FDdEIsNEJBQTRCOzs7O29DQUMvQix5QkFBeUI7Ozs7eUNBQ3BCLDhCQUE4Qjs7Ozs7O0FBSW5FLElBQU0sb0JBQW9CLEdBQXlCLDhDQUEwQixDQUFDO0FBQzlFLElBQU0sV0FBVyxHQUFnQixxQ0FBaUIsQ0FBQztBQUNuRCxJQUFNLGdCQUFnQixHQUFxQiwwQ0FBc0IsQ0FBQztBQUNsRSxJQUFNLGtCQUFrQixHQUF1Qiw0Q0FBd0IsQ0FBQztBQUN4RSxJQUFNLHFCQUFxQixHQUEwQiwrQ0FBMkIsQ0FBQztBQUNqRixJQUFNLGtCQUFrQixHQUF1Qiw0Q0FBd0IsQ0FBQztBQUN4RSxJQUFNLHVCQUF1QixHQUE0QixpREFBNkIsQ0FBQzs7QUFHdkYsSUFBTSxTQUFTO0FBQ2IsVUFBTSxFQUFFLGdDQUFrQjsrQkFDekIsb0JBQW9CLENBQUMsS0FBSyxFQUFHLHdDQUEwQixvQkFBb0IsQ0FBQywrQkFDNUUsV0FBVyxDQUFDLEtBQUssRUFBRywrQkFBaUIsV0FBVyxDQUFDLCtCQUNqRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUcsb0NBQXNCLGdCQUFnQixDQUFDLCtCQUNoRSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUcsc0NBQXdCLGtCQUFrQixDQUFDLCtCQUN0RSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUcseUNBQTJCLHFCQUFxQixDQUFDLCtCQUMvRSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUcsc0NBQXdCLGtCQUFrQixDQUFDLCtCQUN0RSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUcsMkNBQTZCLHVCQUF1QixDQUFDLGNBQ3ZGLENBQUM7O0FBR0YsSUFBTSxPQUFPLEdBQWlCLHNDQUFrQixDQUFDOztBQUdqRCxTQUFBLEVBQUEsQ0FBWSxLQUFhLEVBQUUsUUFBNkIsRUFBQTtBQUN0REEsUUFBTUEsUUFBUUEsR0FBR0EsU0FBU0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7QUFDbENBLFFBQUlBLFFBQVFBLEVBQUVBO0FBQ1pBLFlBQU1BLE1BQU1BLEdBQUdBLE9BQU9BLENBQUNBLFdBQVdBLENBQUNBLEtBQUtBLEVBQUVBLFFBQVFBLENBQUNBLElBQUlBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBOzs7O0FBSW5FQSxnQkFBUUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7QUFDeEJBLGVBQU9BLE1BQU1BLENBQUNBO0tBQ2ZBO0NBQ0ZBO0FBRUQsU0FBQSxHQUFBLENBQWEsUUFBYSxFQUFBO0FBQ3hCQyxXQUFPQSxDQUFDQSxjQUFjQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTtDQUNsQ0E7QUFFRCxTQUFBLFdBQUEsQ0FBcUIsS0FBYSxFQUFFLFFBQTZCLEVBQUE7QUFDL0RDLE1BQUVBLENBQUNBLEtBQUtBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBO0NBQ3JCQTtBQUVELFNBQUEsY0FBQSxDQUF3QixRQUFhLEVBQUE7QUFDbkNDLE9BQUdBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO0NBQ2ZBO3FCQUVjO0FBQ2Isd0JBQW9CLEVBQXBCLG9CQUFvQjtBQUNwQixlQUFXLEVBQVgsV0FBVztBQUNYLG9CQUFnQixFQUFoQixnQkFBZ0I7QUFDaEIsc0JBQWtCLEVBQWxCLGtCQUFrQjtBQUNsQix5QkFBcUIsRUFBckIscUJBQXFCO0FBQ3JCLHNCQUFrQixFQUFsQixrQkFBa0I7QUFDbEIsMkJBQXVCLEVBQXZCLHVCQUF1QjtBQUN2QixNQUFFLEVBQUYsRUFBRTtBQUNGLE9BQUcsRUFBSCxHQUFHO0FBQ0gsZUFBVyxFQUFYLFdBQVc7QUFDWCxrQkFBYyxFQUFkLGNBQWM7Q0FDZiIsImZpbGUiOiJ0cy9tYWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljXG4gKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzXG4gKiBmaWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLlxuICovXG5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi90c2QvdHNkLmQudHNcIiAvPlxuXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJy4vY2xhc3Nlcy9FdmVudEVtaXR0ZXInO1xuXG5pbXBvcnQgSGFuZGxlc0Fubm91bmNlbWVudHMgZnJvbSAnLi9jbGFzc2VzL0hhbmRsZXNBbm5vdW5jZW1lbnRzJztcbmltcG9ydCBIYW5kbGVzQ2hhdCBmcm9tICcuL2NsYXNzZXMvSGFuZGxlc0NoYXQnO1xuaW1wb3J0IEhhbmRsZXNDaGFyYWN0ZXIgZnJvbSAnLi9jbGFzc2VzL0hhbmRsZXNDaGFyYWN0ZXInO1xuaW1wb3J0IEhhbmRsZXNFbmVteVRhcmdldCBmcm9tICcuL2NsYXNzZXMvSGFuZGxlc0VuZW15VGFyZ2V0JztcbmltcG9ydCBIYW5kbGVzRnJpZW5kbHlUYXJnZXQgZnJvbSAnLi9jbGFzc2VzL0hhbmRsZXNGcmllbmRseVRhcmdldCc7XG5pbXBvcnQgSGFuZGxlc0NvbnRyb2xHYW1lIGZyb20gJy4vY2xhc3Nlcy9IYW5kbGVzQ29udHJvbEdhbWUnO1xuaW1wb3J0IEhhbmRsZXNDb250cm9sR2FtZVNjb3JlIGZyb20gJy4vY2xhc3Nlcy9IYW5kbGVzQ29udHJvbEdhbWVTY29yZSc7XG5cbmltcG9ydCBJbml0TGlzdGVuZXIgZnJvbSAnLi9saXN0ZW5lcnMvSW5pdCc7XG5pbXBvcnQgQW5ub3VuY2VtZW50c0xpc3RlbmVyIGZyb20gJy4vbGlzdGVuZXJzL0Fubm91bmNlbWVudHMnO1xuaW1wb3J0IENoYXRMaXN0ZW5lciBmcm9tICcuL2xpc3RlbmVycy9DaGF0JztcbmltcG9ydCBDaGFyYWN0ZXJMaXN0ZW5lciBmcm9tICcuL2xpc3RlbmVycy9DaGFyYWN0ZXInO1xuaW1wb3J0IEVuZW15VGFyZ2V0TGlzdGVuZXIgZnJvbSAnLi9saXN0ZW5lcnMvRW5lbXlUYXJnZXQnO1xuaW1wb3J0IEZyaWVuZGx5VGFyZ2V0TGlzdGVuZXIgZnJvbSAnLi9saXN0ZW5lcnMvRnJpZW5kbHlUYXJnZXQnO1xuaW1wb3J0IENvbnRyb2xHYW1lTGlzdGVuZXIgZnJvbSAnLi9saXN0ZW5lcnMvQ29udHJvbEdhbWUnO1xuaW1wb3J0IENvbnRyb2xHYW1lU2NvcmVMaXN0ZW5lciBmcm9tICcuL2xpc3RlbmVycy9Db250cm9sR2FtZVNjb3JlJztcblxuLy8gSGFuZGxlKiBvYmplY3RzLiAgVGhlc2UgZGVmaW5lIGJvdGggdGhlIGV2ZW50IG5hbWUsIGFuZCB0aGUgUmVmbHV4IGFjdGlvbiB1c2VkXG4vLyB0byB0cmlnZ2VyIHRoZSBzdG9yZXMgKFRPRE86IFRoaXMgbGF0dGVyIHBhcnQgaXMgbm90IHdvcmtpbmcpXG5jb25zdCBoYW5kbGVzQW5ub3VuY2VtZW50czogSGFuZGxlc0Fubm91bmNlbWVudHMgPSBuZXcgSGFuZGxlc0Fubm91bmNlbWVudHMoKTtcbmNvbnN0IGhhbmRsZXNDaGF0OiBIYW5kbGVzQ2hhdCA9IG5ldyBIYW5kbGVzQ2hhdCgpO1xuY29uc3QgaGFuZGxlc0NoYXJhY3RlcjogSGFuZGxlc0NoYXJhY3RlciA9IG5ldyBIYW5kbGVzQ2hhcmFjdGVyKCk7XG5jb25zdCBoYW5kbGVzRW5lbXlUYXJnZXQ6IEhhbmRsZXNFbmVteVRhcmdldCA9IG5ldyBIYW5kbGVzRW5lbXlUYXJnZXQoKTtcbmNvbnN0IGhhbmRsZXNGcmllbmRseVRhcmdldDogSGFuZGxlc0ZyaWVuZGx5VGFyZ2V0ID0gbmV3IEhhbmRsZXNGcmllbmRseVRhcmdldCgpO1xuY29uc3QgaGFuZGxlc0NvbnRyb2xHYW1lOiBIYW5kbGVzQ29udHJvbEdhbWUgPSBuZXcgSGFuZGxlc0NvbnRyb2xHYW1lKCk7XG5jb25zdCBoYW5kbGVzQ29udHJvbEdhbWVTY29yZTogSGFuZGxlc0NvbnRyb2xHYW1lU2NvcmUgPSBuZXcgSGFuZGxlc0NvbnRyb2xHYW1lU2NvcmUoKTtcblxuLy8gTGlzdGVuZXJzXG5jb25zdCBsaXN0ZW5lcnM6IGFueSA9IHtcbiAgJ2luaXQnOiBuZXcgSW5pdExpc3RlbmVyKCksXG4gIFtoYW5kbGVzQW5ub3VuY2VtZW50cy50b3BpY106IG5ldyBBbm5vdW5jZW1lbnRzTGlzdGVuZXIoaGFuZGxlc0Fubm91bmNlbWVudHMpLFxuICBbaGFuZGxlc0NoYXQudG9waWNdOiBuZXcgQ2hhdExpc3RlbmVyKGhhbmRsZXNDaGF0KSxcbiAgW2hhbmRsZXNDaGFyYWN0ZXIudG9waWNdOiBuZXcgQ2hhcmFjdGVyTGlzdGVuZXIoaGFuZGxlc0NoYXJhY3RlciksXG4gIFtoYW5kbGVzRW5lbXlUYXJnZXQudG9waWNdOiBuZXcgRW5lbXlUYXJnZXRMaXN0ZW5lcihoYW5kbGVzRW5lbXlUYXJnZXQpLFxuICBbaGFuZGxlc0ZyaWVuZGx5VGFyZ2V0LnRvcGljXTogbmV3IEZyaWVuZGx5VGFyZ2V0TGlzdGVuZXIoaGFuZGxlc0ZyaWVuZGx5VGFyZ2V0KSxcbiAgW2hhbmRsZXNDb250cm9sR2FtZS50b3BpY106IG5ldyBDb250cm9sR2FtZUxpc3RlbmVyKGhhbmRsZXNDb250cm9sR2FtZSksXG4gIFtoYW5kbGVzQ29udHJvbEdhbWVTY29yZS50b3BpY106IG5ldyBDb250cm9sR2FtZVNjb3JlTGlzdGVuZXIoaGFuZGxlc0NvbnRyb2xHYW1lU2NvcmUpXG59O1xuXG4vLyBFdmVudCBFbWl0dGVyLiAgQSBzaW5nbGUgaW5zdGFuY2Ugb2YgZXZlbnQgZW1pdHRlciBoYW5kbGVzIGFsbCBjdS1ldmVudHMgZXZlbnRzXG5jb25zdCBlbWl0dGVyOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbi8vIHJlZ2lzdGVyIGZvciBhbiBldmVudCBncm91cFxuZnVuY3Rpb24gb24odG9waWM6IHN0cmluZywgY2FsbGJhY2s6IChpbmZvOiBhbnkpID0+IHZvaWQpOiBhbnkge1xuICBjb25zdCBsaXN0ZW5lciA9IGxpc3RlbmVyc1t0b3BpY107XG4gIGlmIChsaXN0ZW5lcikge1xuICAgIGNvbnN0IGhhbmRsZSA9IGVtaXR0ZXIuYWRkTGlzdGVuZXIodG9waWMsIGxpc3RlbmVyLm9uY2UsIGNhbGxiYWNrKTtcbiAgICAvLyBTdGFydCB0aGUgbGlzdGVuZXIuICBUaGUgc3RhcnQoKSBtZXRob2Qgd2lsbCBoYW5kbGUgbXVsdGlwbGVcbiAgICAvLyBzdGFydHMuICBJbiBzb21lIGNhc2VzLCB0aGUgbGlzdGVuZXIgZG9lcyBuZWVkIGtpY2tzdGFydGluZ1xuICAgIC8vIGVhY2ggdGltZSwgaW4gb3RoZXIgY2FzZXMsIG5vdC5cbiAgICBsaXN0ZW5lci5zdGFydChlbWl0dGVyKTtcbiAgICByZXR1cm4gaGFuZGxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9mZihsaXN0ZW5lcjogYW55KTogdm9pZCB7XG4gIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpO1xufVxuXG5mdW5jdGlvbiBhZGRMaXN0ZW5lcih0b3BpYzogc3RyaW5nLCBjYWxsYmFjazogKGluZm86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICBvbih0b3BpYywgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcjogYW55KTogdm9pZCB7XG4gIG9mZihsaXN0ZW5lcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaGFuZGxlc0Fubm91bmNlbWVudHMsXG4gIGhhbmRsZXNDaGF0LFxuICBoYW5kbGVzQ2hhcmFjdGVyLFxuICBoYW5kbGVzRW5lbXlUYXJnZXQsXG4gIGhhbmRsZXNGcmllbmRseVRhcmdldCxcbiAgaGFuZGxlc0NvbnRyb2xHYW1lLFxuICBoYW5kbGVzQ29udHJvbEdhbWVTY29yZSxcbiAgb24sXG4gIG9mZixcbiAgYWRkTGlzdGVuZXIsXG4gIHJlbW92ZUxpc3RlbmVyXG59XG4iXSwic291cmNlUm9vdCI6Ii4uLyJ9