mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 09:56:06 +00:00
Implemented event handler inheritance, allow registering handlers for any valid event (#1792)
* Event handlers always handle subclass events. public static $handlerList no longer required. * Removed $handlerList declarations * HandlerList cleanup: Removed HandlerList->handlers and related bake methods * Removed obsolete Event->getHandlers() * EventPriority: Added fromString() * PluginManager: throw exceptions on registering handlers with invalid priorities This allows specifying a handler of `EntityDamageEvent` which will handle any instanceof it (as per current behaviour), AND also now allows specifying a handler specifically for `EntityDamageByEntityEvent`, which only handles `EntityDamageEvent`. This was not previously possible due to limitations in the way handlers were registered. Abstract events may not be handled unless they declare the `@allowHandle` PhpDoc tag.
This commit is contained in:
@ -31,8 +31,6 @@ use pocketmine\level\Level;
|
||||
* Called when a Chunk is loaded
|
||||
*/
|
||||
class ChunkLoadEvent extends ChunkEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var bool */
|
||||
private $newChunk;
|
||||
|
||||
|
@ -27,5 +27,5 @@ namespace pocketmine\event\level;
|
||||
* Called when a Chunk is populated (after receiving it on the main thread)
|
||||
*/
|
||||
class ChunkPopulateEvent extends ChunkEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
}
|
||||
|
@ -29,5 +29,5 @@ use pocketmine\event\Cancellable;
|
||||
* Called when a Chunk is unloaded
|
||||
*/
|
||||
class ChunkUnloadEvent extends ChunkEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
}
|
||||
|
@ -27,5 +27,5 @@ namespace pocketmine\event\level;
|
||||
* Called when a Level is initializing
|
||||
*/
|
||||
class LevelInitEvent extends LevelEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
}
|
||||
|
@ -27,5 +27,5 @@ namespace pocketmine\event\level;
|
||||
* Called when a Level is loaded
|
||||
*/
|
||||
class LevelLoadEvent extends LevelEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
}
|
||||
|
@ -27,5 +27,5 @@ namespace pocketmine\event\level;
|
||||
* Called when a Level is saved
|
||||
*/
|
||||
class LevelSaveEvent extends LevelEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
}
|
||||
|
@ -29,5 +29,5 @@ use pocketmine\event\Cancellable;
|
||||
* Called when a Level is unloaded
|
||||
*/
|
||||
class LevelUnloadEvent extends LevelEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
}
|
||||
|
@ -31,8 +31,6 @@ use pocketmine\level\Position;
|
||||
* The previous spawn is included
|
||||
*/
|
||||
class SpawnChangeEvent extends LevelEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var Position */
|
||||
private $previousSpawn;
|
||||
|
||||
|
Reference in New Issue
Block a user