const { Infraction } = require('../interfaces/'); class WarnInfraction extends Infraction { constructor(client, opts = {}) { super(client, { type: 'WARN', targetType: 'user', message: opts.message, executor: opts.executor.user, target: opts.target.user, reason: opts.reason || 'N/A', guild: opts.guild, channel: opts.channel, silent: opts.silent, color: 0xffe15c, dictionary: { past: 'warned', present: 'warn' }, points: opts.points, expiration: opts.expiration, data: opts.data }); this.client = client; this.member = opts.target; } async execute() { await this.handle(); return this._succeed(); } async verify() { const permissions = await this.client.moderationManager.permissions.execute(this.message, this.message.command); if(permissions.error) return super._fail('C_WARN_INSUFFICIENTPERMISSIONS'); return super._verify(); } } module.exports = WarnInfraction;