function addInhibitor(callable $inhibitor) {
        if(!\in_array($inhibitor, $this->inhibitors, true)) {
            $this->inhibitors[] = $inhibitor;
        }
        
        return $this;
    }
function addInhibitor(callable $inhibitor) {
        if(!\in_array($inhibitor, $this->inhibitors, true)) {
            $this->inhibitors[] = $inhibitor;
        }
        
        return $this;
    }
function addInhibitor ( callable $ inhibitor ) { if ( ! \ in_array ( $ inhibitor , $ this -> inhibitors , true ) ) { $ this -> inhibitors [ ] = $ inhibitor ; } return $ this ; }
Adds an inhibitor.

The inhibitor is supposed to return false, if the command should not be blocked. Otherwise it should return a string (as reason) or an array, containing as first element the reason and as second element a Promise (which resolves to a Message), a Message instance or null.
The inhibitor can return a Promise (for async computation), but has to resolve with `false` or reject with array or string.

Callable specification:
```
function (\CharlotteDunois\Livia\Commands\Context $message): array|string|false|ExtendedPromiseInterface
```

@param callable  $inhibitor
@return $this
Adds an inhibitor .