<commit_before>class Listener {
    /**
     * Creates a new Listener.
     * @param {string} id - Listener ID.
     * @param {(string|EventEmitter)} emitter - The event emitter: 'client' or 'commandHandler' or an EventEmitter.
     * @param {string} eventName - Event to listen to.
     * @param {string} type - Type of listener: 'on' or 'once'.
     * @param {function} exec - The function called when event emitted. (...)
     */
    constructor(id, emitter, eventName, type, exec){
        /**
         * ID of the Listener.
         * @type {string}
         */
        this.id = id;

        /**
         * The event emitter.
         * @type {(string|EventEmitter)}
         */
        this.emitter = emitter;

        /**
         * The event name listened to.
         * @type {string}
         */
        this.eventName = eventName;

        /**
         * Type of listener.
         * @type {string}
         */
        this.type = type;

        /**
         * The function called when event emitted.
         * @type {function}
         */
        this.exec = exec;

        /**
         * Path to Listener file.
         * @readonly
         * @type {string}
         */
        this.filepath = null;

        /**
         * The Akairo framework.
         * @readonly
         * @type {Framework}
         */
        this.framework = null;

        /** 
         * The Discord.js client. 
         * @readonly
         * @type {Client}
         */
        this.client = null;

        /**
         * The listener handler.
         * @readonly<commit_msg>Fix this.<commit_after>class Listener {
    /**
     * Creates a new Listener.
     * @param {string} id - Listener ID.
     * @param {(string|EventEmitter)} emitter - The event emitter: 'client' or 'commandHandler' or an EventEmitter.
     * @param {string} eventName - Event to listen to.
     * @param {string} type - Type of listener: 'on' or 'once'.
     * @param {function} exec - The function called when event emitted. (...)
     */
    constructor(id, emitter, eventName, type, exec){
        /**
         * ID of the Listener.
         * @type {string}
         */
        this.id = id;

        /**
         * The event emitter.
         * @type {(string|EventEmitter)}
         */
        this.emitter = emitter;

        /**
         * The event name listened to.
         * @type {string}
         */
        this.eventName = eventName;

        /**
         * Type of listener.
         * @type {string}
         */
        this.type = type;

        /**
         * The function called when event emitted.
         * @type {function}
         */
        this.exec = exec.bind(this);

        /**
         * Path to Listener file.
         * @readonly
         * @type {string}
         */
        this.filepath = null;

        /**
         * The Akairo framework.
         * @readonly
         * @type {Framework}
         */
        this.framework = null;

        /** 
         * The Discord.js client. 
         * @readonly
         * @type {Client}
         */
        this.client = null;

        /**
         * The listener handler.
         * @readonly
{'fraction_non_alphanumeric': 0.12535793827553293, 'fraction_numerical': 0.0, 'mean_word_length': 1.2915451895043732, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4126132', 'n_tokens_mistral': 900, 'n_tokens_neox': 857, 'n_words': 246}