mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2025-09-04 09:21:25 +03:00
Refactor listeners
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const { path } = require('../utils/fs');
|
||||
|
||||
module.exports = client => {
|
||||
const files = fs.readdirSync(path('./src/listeners'))
|
||||
.filter(file => file.endsWith('.js'));
|
||||
|
||||
for (const file of files) {
|
||||
const listener = require(`../listeners/${file}`);
|
||||
const exec = (...args) => listener.execute(client, ...args);
|
||||
let on = listener.once ? 'once' : 'on';
|
||||
if (listener.raw)
|
||||
client.ws[on](listener.event, exec);
|
||||
else
|
||||
client[on](listener.event, exec);
|
||||
}
|
||||
};
|
10
src/modules/listeners/listener.js
Normal file
10
src/modules/listeners/listener.js
Normal file
@@ -0,0 +1,10 @@
|
||||
module.exports = class EventListener {
|
||||
|
||||
constructor(client, data) {
|
||||
this.client = client;
|
||||
this.event = data.event;
|
||||
this.raw = data.raw || false;
|
||||
this.once = data.once || false;
|
||||
}
|
||||
|
||||
};
|
38
src/modules/listeners/loader.js
Normal file
38
src/modules/listeners/loader.js
Normal file
@@ -0,0 +1,38 @@
|
||||
const fs = require('fs');
|
||||
const { path } = require('../../utils/fs');
|
||||
|
||||
/**
|
||||
* Manages the loading of event listeners
|
||||
*/
|
||||
module.exports = class ListenerLoader {
|
||||
/**
|
||||
* Create a ListenerLoader instance
|
||||
* @param {Client} client
|
||||
*/
|
||||
constructor(client) {
|
||||
/** The Discord Client */
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
load() {
|
||||
const files = fs.readdirSync(path('./src/listeners'))
|
||||
.filter(file => file.endsWith('.js'));
|
||||
|
||||
for (let file of files) {
|
||||
try {
|
||||
file = require(`../../listeners/${file}`);
|
||||
const listener = new file(this.client);
|
||||
let on = listener.once ? 'once' : 'on';
|
||||
if (listener.raw)
|
||||
this.client.ws[on](listener.event, (...data) => listener.execute(...data));
|
||||
else
|
||||
this.client[on](listener.event, (...data) => listener.execute(...data));
|
||||
} catch (e) {
|
||||
this.client.log.warn('An error occurred whilst loading a listener');
|
||||
this.client.log.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
Reference in New Issue
Block a user