|
|
@ -32,19 +32,24 @@ trait TAutoPrefixManagement {
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @return Command The command
|
|
|
|
* @return Command The command
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
protected function applyAutoPrefixOnCommand (Command $command): Command {
|
|
|
|
public function applyAutoPrefixOnCommand (Command $command): Command {
|
|
|
|
|
|
|
|
/** @var IAutoPrefixManager $autoPrefixManager */
|
|
|
|
foreach ($this->getAutoPrefixManagers() as $autoPrefixManager) {
|
|
|
|
foreach ($this->getAutoPrefixManagers() as $autoPrefixManager) {
|
|
|
|
if (($namesPrefix = $autoPrefixManager->getCommandPrefix($command)) !== null) {
|
|
|
|
if (($namesPrefix = $autoPrefixManager->getCommandPrefix($command)) !== null) {
|
|
|
|
if (mb_strlen($namesPrefix) > 0) {
|
|
|
|
if (mb_strlen($namesPrefix) > 0) {
|
|
|
|
$namesPrefix .= ':';
|
|
|
|
$namesPrefix .= ':';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (self::getNamePrefix($command->getName()) !== $namesPrefix) {
|
|
|
|
$command->setName($namesPrefix . $command->getName());
|
|
|
|
$command->setName($namesPrefix . $command->getName());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$aliases = $command->getAliases();
|
|
|
|
$aliases = $command->getAliases();
|
|
|
|
foreach ($aliases as &$alias) {
|
|
|
|
foreach ($aliases as &$alias) {
|
|
|
|
|
|
|
|
if (self::getNamePrefix($alias) !== $namesPrefix) {
|
|
|
|
$alias = $namesPrefix . $alias;
|
|
|
|
$alias = $namesPrefix . $alias;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
$command->setAliases($aliases);
|
|
|
|
$command->setAliases($aliases);
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -52,4 +57,22 @@ trait TAutoPrefixManagement {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $command;
|
|
|
|
return $command;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Get the prefix from a command name or alias
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param string $name The command name or alias
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @return string The prefix (empty if none)
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private static function getNamePrefix (string $name): string {
|
|
|
|
|
|
|
|
$lastPos = mb_strrpos($name, ':');
|
|
|
|
|
|
|
|
if ($lastPos === false) {
|
|
|
|
|
|
|
|
return '';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$prefix = mb_substr($name, 0, $lastPos);
|
|
|
|
|
|
|
|
if (mb_strlen($prefix) > 0) {
|
|
|
|
|
|
|
|
$prefix .= ':';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $prefix;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|