|
|
|
@ -14,19 +14,49 @@ use Throwable;
|
|
|
|
|
*/
|
|
|
|
|
class BaseCommand extends Command {
|
|
|
|
|
/**
|
|
|
|
|
* Initialize the command
|
|
|
|
|
*
|
|
|
|
|
* @param string|null $name The command name, Null = class name
|
|
|
|
|
* @param string ...$aliases The command aliases
|
|
|
|
|
* @return string|null The command default name
|
|
|
|
|
*/
|
|
|
|
|
public function __construct (?string $name = null, string ...$aliases) {
|
|
|
|
|
if ($name === null) {
|
|
|
|
|
$classShortName = (new ReflectionClass($this))->getShortName();
|
|
|
|
|
$name = mb_strtolower(mb_substr($classShortName, 0, 1)) . mb_substr($classShortName, 1);
|
|
|
|
|
public static function getDefaultName (): ?string {
|
|
|
|
|
$reflectionClass = new ReflectionClass(static::class);
|
|
|
|
|
if (($name = parent::getDefaultName()) !== null) {
|
|
|
|
|
return $name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$classShortName = $reflectionClass->getShortName();
|
|
|
|
|
return mb_strtolower(mb_substr($classShortName, 0, 1)) . mb_substr($classShortName, 1);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @return string[] The command default aliases
|
|
|
|
|
*/
|
|
|
|
|
public static function getDefaultAliases (): array {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @return string|null The command default description
|
|
|
|
|
*/
|
|
|
|
|
public static function getDefaultDescription (): ?string {
|
|
|
|
|
return parent::getDefaultDescription();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @return bool Is the command hidden from command list by default ?
|
|
|
|
|
*/
|
|
|
|
|
public static function getDefaultHidden (): bool {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Initialize the command
|
|
|
|
|
*
|
|
|
|
|
* @param string|null $name The command name ; Null if the default one (cf. {@see static::getDefaultName()})
|
|
|
|
|
* @param string[]|string|null $aliases The command aliases ; Null if the default one (cf. {@see static::getDefaultAliases()})
|
|
|
|
|
* @param string|null $description The command description ; Null if the default one (cf. {@see static::getDefaultDescription()})
|
|
|
|
|
* @param bool|null $hidden Is the command hidden from command list ? Null if the default one (cf. {@see static::getDefaultHidden()})
|
|
|
|
|
*/
|
|
|
|
|
public function __construct (?string $name = null, $aliases = null, ?string $description = null, ?bool $hidden = null) {
|
|
|
|
|
parent::__construct($name);
|
|
|
|
|
$this->setAliases($aliases);
|
|
|
|
|
$this->setAliases(is_string($aliases) ? [$aliases] : $aliases ?? static::getDefaultAliases());
|
|
|
|
|
$this->setDescription($description ?? $this->getDescription());
|
|
|
|
|
$this->setHidden($hidden ?? static::getDefaultHidden());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|