mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-23 11:26:37 +00:00
Move command timings to Timings::
this avoids duplicate timings entries when command labels are changed and changed back, or if multiple command maps are in use. In addition, it also solves some PHPStan issues :)
This commit is contained in:
parent
53cae8911d
commit
bd01a919e5
@ -31,8 +31,6 @@ use pocketmine\lang\KnownTranslationFactory;
|
|||||||
use pocketmine\lang\Translatable;
|
use pocketmine\lang\Translatable;
|
||||||
use pocketmine\permission\PermissionManager;
|
use pocketmine\permission\PermissionManager;
|
||||||
use pocketmine\Server;
|
use pocketmine\Server;
|
||||||
use pocketmine\timings\Timings;
|
|
||||||
use pocketmine\timings\TimingsHandler;
|
|
||||||
use pocketmine\utils\BroadcastLoggerForwarder;
|
use pocketmine\utils\BroadcastLoggerForwarder;
|
||||||
use pocketmine\utils\TextFormat;
|
use pocketmine\utils\TextFormat;
|
||||||
use function explode;
|
use function explode;
|
||||||
@ -60,8 +58,6 @@ abstract class Command{
|
|||||||
private ?string $permission = null;
|
private ?string $permission = null;
|
||||||
private ?string $permissionMessage = null;
|
private ?string $permissionMessage = null;
|
||||||
|
|
||||||
public ?TimingsHandler $timings = null;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string[] $aliases
|
* @param string[] $aliases
|
||||||
*/
|
*/
|
||||||
@ -136,7 +132,6 @@ abstract class Command{
|
|||||||
public function setLabel(string $name) : bool{
|
public function setLabel(string $name) : bool{
|
||||||
$this->nextLabel = $name;
|
$this->nextLabel = $name;
|
||||||
if(!$this->isRegistered()){
|
if(!$this->isRegistered()){
|
||||||
$this->timings = new TimingsHandler(Timings::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Command: " . $name);
|
|
||||||
$this->label = $name;
|
$this->label = $name;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -26,6 +26,7 @@ namespace pocketmine\command;
|
|||||||
use pocketmine\command\utils\CommandStringHelper;
|
use pocketmine\command\utils\CommandStringHelper;
|
||||||
use pocketmine\command\utils\InvalidCommandSyntaxException;
|
use pocketmine\command\utils\InvalidCommandSyntaxException;
|
||||||
use pocketmine\lang\KnownTranslationFactory;
|
use pocketmine\lang\KnownTranslationFactory;
|
||||||
|
use pocketmine\timings\Timings;
|
||||||
use pocketmine\utils\AssumptionFailedError;
|
use pocketmine\utils\AssumptionFailedError;
|
||||||
use pocketmine\utils\TextFormat;
|
use pocketmine\utils\TextFormat;
|
||||||
use function array_map;
|
use function array_map;
|
||||||
@ -82,14 +83,15 @@ class FormattedCommandAlias extends Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(($target = $commandMap->getCommand($commandLabel)) !== null){
|
if(($target = $commandMap->getCommand($commandLabel)) !== null){
|
||||||
$target->timings->startTiming();
|
$timings = Timings::getCommandDispatchTimings($target->getLabel());
|
||||||
|
$timings->startTiming();
|
||||||
|
|
||||||
try{
|
try{
|
||||||
$target->execute($sender, $commandLabel, $commandArgs);
|
$target->execute($sender, $commandLabel, $commandArgs);
|
||||||
}catch(InvalidCommandSyntaxException $e){
|
}catch(InvalidCommandSyntaxException $e){
|
||||||
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
|
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
|
||||||
}finally{
|
}finally{
|
||||||
$target->timings->stopTiming();
|
$timings->stopTiming();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::pocketmine_command_notFound($commandLabel, "/help")->prefix(TextFormat::RED)));
|
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::pocketmine_command_notFound($commandLabel, "/help")->prefix(TextFormat::RED)));
|
||||||
|
@ -68,6 +68,7 @@ use pocketmine\command\utils\CommandStringHelper;
|
|||||||
use pocketmine\command\utils\InvalidCommandSyntaxException;
|
use pocketmine\command\utils\InvalidCommandSyntaxException;
|
||||||
use pocketmine\lang\KnownTranslationFactory;
|
use pocketmine\lang\KnownTranslationFactory;
|
||||||
use pocketmine\Server;
|
use pocketmine\Server;
|
||||||
|
use pocketmine\timings\Timings;
|
||||||
use pocketmine\utils\TextFormat;
|
use pocketmine\utils\TextFormat;
|
||||||
use function array_shift;
|
use function array_shift;
|
||||||
use function count;
|
use function count;
|
||||||
@ -199,7 +200,8 @@ class SimpleCommandMap implements CommandMap{
|
|||||||
|
|
||||||
$sentCommandLabel = array_shift($args);
|
$sentCommandLabel = array_shift($args);
|
||||||
if($sentCommandLabel !== null && ($target = $this->getCommand($sentCommandLabel)) !== null){
|
if($sentCommandLabel !== null && ($target = $this->getCommand($sentCommandLabel)) !== null){
|
||||||
$target->timings->startTiming();
|
$timings = Timings::getCommandDispatchTimings($target->getLabel());
|
||||||
|
$timings->startTiming();
|
||||||
|
|
||||||
try{
|
try{
|
||||||
if($target->testPermission($sender)){
|
if($target->testPermission($sender)){
|
||||||
@ -208,7 +210,7 @@ class SimpleCommandMap implements CommandMap{
|
|||||||
}catch(InvalidCommandSyntaxException $e){
|
}catch(InvalidCommandSyntaxException $e){
|
||||||
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
|
$sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
|
||||||
}finally{
|
}finally{
|
||||||
$target->timings->stopTiming();
|
$timings->stopTiming();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -93,6 +93,12 @@ abstract class Timings{
|
|||||||
/** @var TimingsHandler[] */
|
/** @var TimingsHandler[] */
|
||||||
public static array $pluginTaskTimingMap = [];
|
public static array $pluginTaskTimingMap = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var TimingsHandler[]
|
||||||
|
* @phpstan-var array<string, TimingsHandler>
|
||||||
|
*/
|
||||||
|
private static array $commandTimingMap = [];
|
||||||
|
|
||||||
public static TimingsHandler $broadcastPackets;
|
public static TimingsHandler $broadcastPackets;
|
||||||
|
|
||||||
public static function init() : void{
|
public static function init() : void{
|
||||||
@ -227,4 +233,10 @@ abstract class Timings{
|
|||||||
|
|
||||||
return self::$packetSendTimingMap[$pid];
|
return self::$packetSendTimingMap[$pid];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getCommandDispatchTimings(string $commandName) : TimingsHandler{
|
||||||
|
self::init();
|
||||||
|
|
||||||
|
return self::$commandTimingMap[$commandName] ??= new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Command - " . $commandName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -470,26 +470,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: ../../../src/command/Command.php
|
path: ../../../src/command/Command.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Cannot call method startTiming\\(\\) on pocketmine\\\\timings\\\\TimingsHandler\\|null\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: ../../../src/command/FormattedCommandAlias.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Cannot call method stopTiming\\(\\) on pocketmine\\\\timings\\\\TimingsHandler\\|null\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: ../../../src/command/FormattedCommandAlias.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Cannot call method startTiming\\(\\) on pocketmine\\\\timings\\\\TimingsHandler\\|null\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: ../../../src/command/SimpleCommandMap.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Cannot call method stopTiming\\(\\) on pocketmine\\\\timings\\\\TimingsHandler\\|null\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: ../../../src/command/SimpleCommandMap.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Cannot call method addParticle\\(\\) on pocketmine\\\\world\\\\World\\|null\\.$#"
|
message: "#^Cannot call method addParticle\\(\\) on pocketmine\\\\world\\\\World\\|null\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user