/** * Calls an event * * @param Event $event */ public function callEvent(Event $event) { foreach ($event->getHandlers()->getRegisteredListeners() as $registration) { if (!$registration->getPlugin()->isEnabled()) { continue; } try { $registration->callEvent($event); } catch (\Exception $e) { $this->server->getLogger()->critical($this->server->getLanguage()->translateString("pocketmine.plugin.eventError", [$event->getEventName(), $registration->getPlugin()->getDescription()->getFullName(), $e->getMessage(), get_class($registration->getListener())])); $logger = $this->server->getLogger(); if ($logger instanceof MainLogger) { $logger->logException($e); } } } }
/** * Calls an event * * @param Event $event */ public function callEvent(Event $event) { foreach ($event->getHandlers()->getRegisteredListeners() as $registration) { if (!$registration->getPlugin()->isEnabled()) { continue; } try { $registration->callEvent($event); } catch (\Throwable $e) { $this->server->getLogger()->critical($this->server->getLanguage()->translateString("pocketmine.plugin.eventError", [$event->getEventName(), $registration->getPlugin()->getDescription()->getFullName(), $e->getMessage(), get_class($registration->getListener())])); $this->server->getLogger()->logException($e); } } if ($this->server->getAIHolder() != null) { if ($event instanceof EntityDeathEvent) { $this->server->getAIHolder()->MobDeath($event); } if ($event instanceof EntityDamageByEntityEvent) { $this->server->getAIHolder()->EntityDamage($event); } } }
/** * Calls an event * * @param Event $event */ public function callEvent(Event $event) { foreach ($event->getHandlers()->getRegisteredListeners() as $registration) { if (!$registration->getPlugin()->isEnabled()) { continue; } try { $registration->callEvent($event); } catch (\Exception $e) { $this->server->getLogger()->critical("Could not pass event " . $event->getEventName() . " to " . $registration->getPlugin()->getDescription()->getFullName() . ": " . $e->getMessage() . " on " . get_class($registration->getListener())); $logger = $this->server->getLogger(); if ($logger instanceof MainLogger) { $logger->logException($e); } } } }
private function fireEvent(Event $event) { $handlers = $event->getHandlers(); $listeners = $handlers->getRegisteredListeners(); foreach ($listeners as $registration) { if (!$registration->getPlugin()->isEnabled()) { continue; } $registration->callEvent($event); } }