Entity AddTo/RemoveFrom World Events

This commit is contained in:
Aikar 2016-03-28 20:26:34 -04:00
parent 1e271136de
commit 7ad9895c25
3 changed files with 90 additions and 1 deletions

View file

@ -0,0 +1,44 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired any time an entity is being added to the world for any reason (including a chunk loading).
* <p>
* Not to be confused with {@link CreatureSpawnEvent}
*/
@NullMarked
public class EntityAddToWorldEvent extends EntityEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final World world;
@ApiStatus.Internal
public EntityAddToWorldEvent(final Entity entity, final World world) {
super(entity);
this.world = world;
}
/**
* @return The world that the entity is being added to
*/
public World getWorld() {
return this.world;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}

View file

@ -0,0 +1,42 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired any time an entity is being removed from a world for any reason (including a chunk unloading).
* Note: The entity is updated prior to this event being called, as such, the entity's world may not be equal to {@link #getWorld()}.
*/
@NullMarked
public class EntityRemoveFromWorldEvent extends EntityEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final World world;
@ApiStatus.Internal
public EntityRemoveFromWorldEvent(final Entity entity, final World world) {
super(entity);
this.world = world;
}
/**
* @return The world that the entity is being removed from
*/
public World getWorld() {
return this.world;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}

View file

@ -1,5 +1,6 @@
package org.bukkit.event.entity; package org.bukkit.event.entity;
import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
@ -11,8 +12,9 @@ import org.jetbrains.annotations.NotNull;
* This event should only be used for monitoring. The result * This event should only be used for monitoring. The result
* of modifying the entity during or after this event is unspecified. * of modifying the entity during or after this event is unspecified.
* This event is not called for a {@link org.bukkit.entity.Player}. * This event is not called for a {@link org.bukkit.entity.Player}.
* @deprecated use {@link EntityRemoveFromWorldEvent} instead
*/ */
@ApiStatus.Experimental @Deprecated(forRemoval = true)
public class EntityRemoveEvent extends EntityEvent { public class EntityRemoveEvent extends EntityEvent {
private static final HandlerList handlers = new HandlerList(); private static final HandlerList handlers = new HandlerList();
@ -112,5 +114,6 @@ public class EntityRemoveEvent extends EntityEvent {
* When the chunk an entity is in gets unloaded. * When the chunk an entity is in gets unloaded.
*/ */
UNLOAD, UNLOAD,
DISCARD
} }
} }