Replace commands.generic.notFound with a custom PM version

this also fixes #4379.
This commit is contained in:
Dylan K. Taylor 2021-10-02 20:42:59 +01:00
parent d63b9d1648
commit 05dc675d5b
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
5 changed files with 25 additions and 25 deletions

@ -1 +1 @@
Subproject commit 6023e8b3bf089eb7c25a5ddc7b29e9ef81520e7e
Subproject commit 73fb74ffce2b633b87fc82039d1fb3c2cf0d5ac7

View File

@ -1293,13 +1293,7 @@ class Server{
$commandLine = $ev->getCommand();
}
if($this->commandMap->dispatch($sender, $commandLine)){
return true;
}
$sender->sendMessage(KnownTranslationFactory::commands_generic_notFound()->prefix(TextFormat::RED));
return false;
return $this->commandMap->dispatch($sender, $commandLine);
}
/**

View File

@ -67,6 +67,7 @@ use pocketmine\command\defaults\WhitelistCommand;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\Server;
use pocketmine\utils\TextFormat;
use function array_shift;
use function count;
use function explode;
@ -210,26 +211,23 @@ class SimpleCommandMap implements CommandMap{
}
}
}
$sentCommandLabel = array_shift($args);
if($sentCommandLabel === null){
return false;
}
$target = $this->getCommand($sentCommandLabel);
if($target === null){
return false;
if($sentCommandLabel !== null && ($target = $this->getCommand($sentCommandLabel)) !== null){
$target->timings->startTiming();
try{
$target->execute($sender, $sentCommandLabel, $args);
}catch(InvalidCommandSyntaxException $e){
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
}finally{
$target->timings->stopTiming();
}
return true;
}
$target->timings->startTiming();
try{
$target->execute($sender, $sentCommandLabel, $args);
}catch(InvalidCommandSyntaxException $e){
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
}finally{
$target->timings->stopTiming();
}
return true;
$sender->sendMessage(KnownTranslationFactory::pocketmine_command_notFound($sentCommandLabel ?? "", "/help")->prefix(TextFormat::RED));
return false;
}
public function clearCommands() : void{

View File

@ -1185,6 +1185,13 @@ final class KnownTranslationFactory{
return new Translatable(KnownTranslationKeys::POCKETMINE_COMMAND_ME_DESCRIPTION, []);
}
public static function pocketmine_command_notFound(Translatable|string $commandName, Translatable|string $helpCommand) : Translatable{
return new Translatable(KnownTranslationKeys::POCKETMINE_COMMAND_NOTFOUND, [
"commandName" => $commandName,
"helpCommand" => $helpCommand,
]);
}
public static function pocketmine_command_op_description() : Translatable{
return new Translatable(KnownTranslationKeys::POCKETMINE_COMMAND_OP_DESCRIPTION, []);
}

View File

@ -260,6 +260,7 @@ final class KnownTranslationKeys{
public const POCKETMINE_COMMAND_KILL_USAGE = "pocketmine.command.kill.usage";
public const POCKETMINE_COMMAND_LIST_DESCRIPTION = "pocketmine.command.list.description";
public const POCKETMINE_COMMAND_ME_DESCRIPTION = "pocketmine.command.me.description";
public const POCKETMINE_COMMAND_NOTFOUND = "pocketmine.command.notFound";
public const POCKETMINE_COMMAND_OP_DESCRIPTION = "pocketmine.command.op.description";
public const POCKETMINE_COMMAND_PARTICLE_DESCRIPTION = "pocketmine.command.particle.description";
public const POCKETMINE_COMMAND_PARTICLE_USAGE = "pocketmine.command.particle.usage";