feat: StaticEventHandler 처리기 추가
- 커맨드 종료 시점에 호출 - pre, post 각각이 필요한지는 논의 필요 - 일단 용도에 따라 pre, post 둘중에 하나만 처리 - eventType으로는 full qualified class name 사용 - 꼭 그럴필요는 없지만, 커맨드에 한해서는 이렇게
This commit is contained in:
@@ -1,18 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace sammo;
|
||||
|
||||
class StaticEventHandler {
|
||||
class StaticEventHandler
|
||||
{
|
||||
// This is a static class, so we don't want to instantiate it
|
||||
public function __construct() {
|
||||
public function __construct()
|
||||
{
|
||||
throw new \Exception('This is a static class');
|
||||
}
|
||||
|
||||
public static function handleEvent(General $general, string $eventType, array ...$params): void {
|
||||
$handlersList = GameConst::$staticEventHandlers[ $eventType ] ?? null;
|
||||
if( $handlersList === null ) {
|
||||
public static function handleEvent(General|GeneralLite $general, null|General|GeneralLite $destGeneral, string $eventType, array $env, array ...$params): void
|
||||
{
|
||||
$handlersList = GameConst::$staticEventHandlers[$eventType] ?? null;
|
||||
if ($handlersList === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
foreach ($handlersList as $handlerName) {
|
||||
$handler = buildStaticEventClass($handlerName);
|
||||
$handler->run($general, $destGeneral, $env, ...$params);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user