mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-08 02:42:58 +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\item\Item;
|
||||
use pocketmine\Player;
|
||||
|
||||
class CraftItemEvent extends Event implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var CraftingTransaction */
|
||||
private $transaction;
|
||||
|
||||
|
@ -29,8 +29,6 @@ use pocketmine\item\Item;
|
||||
use pocketmine\tile\Furnace;
|
||||
|
||||
class FurnaceBurnEvent extends BlockEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var Furnace */
|
||||
private $furnace;
|
||||
/** @var Item */
|
||||
|
@ -29,8 +29,6 @@ use pocketmine\item\Item;
|
||||
use pocketmine\tile\Furnace;
|
||||
|
||||
class FurnaceSmeltEvent extends BlockEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var Furnace */
|
||||
private $furnace;
|
||||
/** @var Item */
|
||||
|
@ -27,8 +27,6 @@ use pocketmine\inventory\Inventory;
|
||||
use pocketmine\Player;
|
||||
|
||||
class InventoryCloseEvent extends InventoryEvent{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var Player */
|
||||
private $who;
|
||||
|
||||
|
@ -31,7 +31,6 @@ use pocketmine\event\Event;
|
||||
use pocketmine\inventory\Inventory;
|
||||
|
||||
abstract class InventoryEvent extends Event{
|
||||
|
||||
/** @var Inventory */
|
||||
protected $inventory;
|
||||
|
||||
|
@ -28,8 +28,6 @@ use pocketmine\inventory\Inventory;
|
||||
use pocketmine\Player;
|
||||
|
||||
class InventoryOpenEvent extends InventoryEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var Player */
|
||||
private $who;
|
||||
|
||||
|
@ -28,8 +28,6 @@ use pocketmine\event\Cancellable;
|
||||
use pocketmine\inventory\Inventory;
|
||||
|
||||
class InventoryPickupArrowEvent extends InventoryEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var Arrow */
|
||||
private $arrow;
|
||||
|
||||
|
@ -28,8 +28,6 @@ use pocketmine\event\Cancellable;
|
||||
use pocketmine\inventory\Inventory;
|
||||
|
||||
class InventoryPickupItemEvent extends InventoryEvent implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var ItemEntity */
|
||||
private $item;
|
||||
|
||||
|
@ -32,8 +32,6 @@ use pocketmine\inventory\transaction\InventoryTransaction;
|
||||
* The source of this can be a Player, entities, mobs, or even hoppers in the future!
|
||||
*/
|
||||
class InventoryTransactionEvent extends Event implements Cancellable{
|
||||
public static $handlerList = null;
|
||||
|
||||
/** @var InventoryTransaction */
|
||||
private $transaction;
|
||||
|
||||
|
Reference in New Issue
Block a user