mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 12:18:46 +00:00
Throw CRITICAL error message on unhandled Exception on plugin events instead of crashing
This commit is contained in:
parent
1adf53a81e
commit
d473ce13ee
@ -641,14 +641,16 @@ class PluginManager{
|
|||||||
* @param Event $event
|
* @param Event $event
|
||||||
*/
|
*/
|
||||||
public function callEvent(Event $event){
|
public function callEvent(Event $event){
|
||||||
$handlers = $event->getHandlers();
|
foreach($event->getHandlers()->getRegisteredListeners() as $registration){
|
||||||
$listeners = $handlers->getRegisteredListeners();
|
|
||||||
|
|
||||||
foreach($listeners as $registration){
|
|
||||||
if(!$registration->getPlugin()->isEnabled()){
|
if(!$registration->getPlugin()->isEnabled()){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
$registration->callEvent($event);
|
$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()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user