Merge branch 'minor-next' into major-next

This commit is contained in:
Dylan K. Taylor
2023-03-29 23:22:02 +01:00
8 changed files with 81 additions and 13 deletions

View File

@@ -25,9 +25,12 @@ namespace pocketmine\timings;
use pocketmine\block\tile\Tile;
use pocketmine\entity\Entity;
use pocketmine\event\Event;
use pocketmine\network\mcpe\protocol\ClientboundPacket;
use pocketmine\network\mcpe\protocol\ServerboundPacket;
use pocketmine\scheduler\TaskHandler;
use function get_class;
use function str_starts_with;
abstract class Timings{
public const INCLUDED_BY_OTHER_TIMINGS_PREFIX = "** ";
@@ -111,6 +114,9 @@ abstract class Timings{
public static TimingsHandler $playerMove;
/** @var TimingsHandler[] */
private static array $events = [];
public static function init() : void{
if(self::$initialized){
return;
@@ -263,4 +269,18 @@ abstract class Timings{
return self::$commandTimingMap[$commandName] ??= new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Command - " . $commandName);
}
public static function getEventTimings(Event $event) : TimingsHandler{
$eventClass = get_class($event);
if(!isset(self::$events[$eventClass])){
if(str_starts_with($eventClass, "pocketmine\\event\\")){
$name = (new \ReflectionClass($event))->getShortName();
}else{
$name = $eventClass;
}
self::$events[$eventClass] = new TimingsHandler($name, group: "Events");
}
return self::$events[$eventClass];
}
}