const { Extendable } = require('klasa');

module.exports = class extends Extendable {

	constructor(...args) {
		super(...args, ['Message']);
	}

	get extend() {
		this.client.commands.filter(command => !this.client.commandInhibitors.some((inhibitor) => {
			if (inhibitor.enabled && !inhibitor.spamProtection) return inhibitor.run(this.client, this, command);
			return false;
		}));
	}

};

const { Extendable } = require('klasa');

module.exports = class extends Extendable {

	constructor(...args) {
		super(...args, ['Message']);
	}

	async extend() {
		return this.client.commands.filter(async command => await !this.client.commandInhibitors.some(async inhibitor => {
			if (inhibitor.enabled && !inhibitor.spamProtection) return await inhibitor.run(this.client, this, command).catch(() => true);
			return false;
		}));
	}

};

fix usableCommands