kythia-core 0.9.5-beta → 0.10.1-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@
4
4
  * @file src/managers/EventManager.js
5
5
  * @copyright © 2025 kenndeclouv
6
6
  * @assistant chaa & graa
7
- * @version 0.9.5-beta
7
+ * @version 0.10.0-beta
8
8
  *
9
9
  * @description
10
10
  * Handles all Discord event listeners except InteractionCreate.
@@ -12,88 +12,93 @@
12
12
  */
13
13
 
14
14
  class EventManager {
15
- /**
16
- * 🏗️ EventManager Constructor
17
- * @param {Object} client - Discord client instance
18
- * @param {Object} container - Dependency container
19
- * @param {Map} eventHandlers - Event handlers map from AddonManager
20
- */
21
- constructor({ client, container, eventHandlers }) {
22
- this.client = client;
23
- this.container = container;
24
- this.eventHandlers = eventHandlers;
15
+ /**
16
+ * 🏗️ EventManager Constructor
17
+ * @param {Object} client - Discord client instance
18
+ * @param {Object} container - Dependency container
19
+ * @param {Map} eventHandlers - Event handlers map from AddonManager
20
+ */
21
+ constructor({ client, container, eventHandlers }) {
22
+ this.client = client;
23
+ this.container = container;
24
+ this.eventHandlers = eventHandlers;
25
25
 
26
- this.logger = this.container.logger;
27
- }
26
+ this.logger = this.container.logger;
27
+ }
28
28
 
29
- /**
30
- * 🚦 Initialize Master Event Handlers
31
- * Creates a single listener for each event type that then executes all
32
- * registered addon handlers in their prioritized order.
33
- */
34
- initialize() {
35
- for (const [eventName, handlers] of this.eventHandlers.entries()) {
36
- this.client.on(eventName, async (...args) => {
37
- for (const handler of handlers) {
38
- try {
39
- const stopPropagation = await handler(this, ...args);
29
+ /**
30
+ * 🚦 Initialize Master Event Handlers
31
+ * Creates a single listener for each event type that then executes all
32
+ * registered addon handlers in their prioritized order.
33
+ */
34
+ initialize() {
35
+ for (const [eventName, handlers] of this.eventHandlers.entries()) {
36
+ this.client.on(eventName, async (...args) => {
37
+ for (const handler of handlers) {
38
+ try {
39
+ const stopPropagation = await handler(this, ...args);
40
40
 
41
- if (stopPropagation === true) {
42
- break;
43
- }
44
- } catch (error) {
45
- this.logger.error(`Error executing event handler for [${eventName}]:`, error);
46
- }
47
- }
48
- });
49
- }
41
+ if (stopPropagation === true) {
42
+ break;
43
+ }
44
+ } catch (error) {
45
+ this.logger.error(
46
+ `Error executing event handler for [${eventName}]:`,
47
+ error,
48
+ );
49
+ }
50
+ }
51
+ });
52
+ }
50
53
 
51
- this.logger.info(`✅ EventManager initialized with ${this.eventHandlers.size} event types`);
52
- }
54
+ this.logger.info(
55
+ `✅ EventManager initialized with ${this.eventHandlers.size} event types`,
56
+ );
57
+ }
53
58
 
54
- /**
55
- * Add a new event handler
56
- * @param {string} eventName - Name of the event
57
- * @param {Function} handler - Handler function
58
- */
59
- addEventHandler(eventName, handler) {
60
- if (!this.eventHandlers.has(eventName)) {
61
- this.eventHandlers.set(eventName, []);
62
- }
63
- this.eventHandlers.get(eventName).push(handler);
64
- }
59
+ /**
60
+ * Add a new event handler
61
+ * @param {string} eventName - Name of the event
62
+ * @param {Function} handler - Handler function
63
+ */
64
+ addEventHandler(eventName, handler) {
65
+ if (!this.eventHandlers.has(eventName)) {
66
+ this.eventHandlers.set(eventName, []);
67
+ }
68
+ this.eventHandlers.get(eventName).push(handler);
69
+ }
65
70
 
66
- /**
67
- * Remove an event handler
68
- * @param {string} eventName - Name of the event
69
- * @param {Function} handler - Handler function to remove
70
- */
71
- removeEventHandler(eventName, handler) {
72
- if (this.eventHandlers.has(eventName)) {
73
- const handlers = this.eventHandlers.get(eventName);
74
- const index = handlers.indexOf(handler);
75
- if (index > -1) {
76
- handlers.splice(index, 1);
77
- }
78
- }
79
- }
71
+ /**
72
+ * Remove an event handler
73
+ * @param {string} eventName - Name of the event
74
+ * @param {Function} handler - Handler function to remove
75
+ */
76
+ removeEventHandler(eventName, handler) {
77
+ if (this.eventHandlers.has(eventName)) {
78
+ const handlers = this.eventHandlers.get(eventName);
79
+ const index = handlers.indexOf(handler);
80
+ if (index > -1) {
81
+ handlers.splice(index, 1);
82
+ }
83
+ }
84
+ }
80
85
 
81
- /**
82
- * Get all handlers for a specific event
83
- * @param {string} eventName - Name of the event
84
- * @returns {Array} Array of handlers
85
- */
86
- getEventHandlers(eventName) {
87
- return this.eventHandlers.get(eventName) || [];
88
- }
86
+ /**
87
+ * Get all handlers for a specific event
88
+ * @param {string} eventName - Name of the event
89
+ * @returns {Array} Array of handlers
90
+ */
91
+ getEventHandlers(eventName) {
92
+ return this.eventHandlers.get(eventName) || [];
93
+ }
89
94
 
90
- /**
91
- * Get all registered event types
92
- * @returns {Array} Array of event names
93
- */
94
- getEventTypes() {
95
- return Array.from(this.eventHandlers.keys());
96
- }
95
+ /**
96
+ * Get all registered event types
97
+ * @returns {Array} Array of event names
98
+ */
99
+ getEventTypes() {
100
+ return Array.from(this.eventHandlers.keys());
101
+ }
97
102
  }
98
103
 
99
104
  module.exports = EventManager;