function setCommandPrefix($prefix, bool $fromProvider = false) {
        if(\is_string($prefix) && empty($prefix)) {
            throw new \InvalidArgumentException('Can not set an empty string as command prefix');
        }
        
        $this->options['commandPrefix'] = $prefix;
        
        if(!$fromProvider) {
            $this->emit('commandPrefixChange', null, $prefix);
        }
        
        return $this;
    }