UNPKG

cu-events

Version:

Camelot Unchained Client Library - Events

133 lines (95 loc) 13.3 kB
/** * 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