import { ArgsOf, Client } from 'discordx'

import { On, OnCustom, Discord } from '@decorators'
import { EventManager } from '@services'

@Discord()
export default class {{pascalCase name}}Event {

    constructor(
        private eventManager: EventManager
    ) {}

    {{#if customEvent}}
    // =============================
    // ========= Handlers ==========
    // =============================

    {{/if}}
    {{#if customEvent}}@OnCustom('{{camelCase name}}'){{else}}@On('{{camelCase name}}'){{/if}}
    async {{camelCase name}}Handler(
        {{#if customEvent}}arg: any,
        {{else}}[arg]: ArgsOf<'{{camelCase name}}'>{{/if}},
        client: Client
    ) {

       console.log('{{camelCase name}} event triggered!')
    }

    {{#if customEvent}}
    // =============================
    // ========== Emitter ==========
    // =============================

    @On('EMITTER_EVENT_HERE')
    async {{camelCase name}}Emitter(
        [arg]: any,
        client: Client
    ) {

       this.eventManager.emit('{{camelCase name}}', arg, client)
    }
    {{/if}}
}