diff --git a/changelogs/4.0-snapshot.md b/changelogs/4.0-snapshot.md index 9ee4bc20e2..6d159e8f42 100644 --- a/changelogs/4.0-snapshot.md +++ b/changelogs/4.0-snapshot.md @@ -351,7 +351,7 @@ This version features substantial changes to the network system, improving coher #### Other changes - Disconnecting players during events no longer crashes the server (although it might cause other side effects). - `PlayerKickEvent` is no longer fired for disconnects that occur before the player completes the initial login sequence (i.e. completing downloading resource packs). -- Cancellable events must now implement `CancellableTrait` to get the cancellable components needed to satisfy interface requirements. +- Cancellable events must now implement `CancellableTrait` to get the cancellable components needed to satisfy interface requirements. `Event` no longer stubs these methods. - `PlayerInteractEvent` is no longer fired when a player activates an item. This fixes the age-old complaint of `PlayerInteractEvent` firing multiple times when interacting once. The following constants have been removed: - `PlayerInteractEvent::LEFT_CLICK_AIR` - `PlayerInteractEvent::RIGHT_CLICK_AIR` @@ -373,9 +373,10 @@ This version features substantial changes to the network system, improving coher - `PlayerDeathEvent->setXpDropAmount()` - The following API methods have been removed: - `PlayerPreLoginEvent->getPlayer()` + - `Cancellable->setCancelled()`: this allows implementors of `Cancellable` to implement their own cancellation mechanisms, such as the complex one in `PlayerPreLoginEvent` - The following API methods have been moved: - `Event->isCancelled()` -> `CancellableTrait->isCancelled()`: this was a stub which threw `BadMethodCallException` if the class didn't implement `Cancellable`; now this is simply not available on non-cancellable events - - `Event->setCancelled()` -> `CancellableTrait->setCancelled()` + - `Event->setCancelled()` has been split into `cancel()` and `uncancel()`, and moved to `CancellableTrait` - `HandlerList::unregisterAll()` -> `HandlerListManager->unregisterAll()` - `HandlerList::getHandlerListFor()` -> `HandlerListManager->getListFor()` - `HandlerList::getHandlerLists()` -> `HandlerListManager->getAll()`