mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 07:20:24 +01:00
PreSpawnerSpawnEvent
This adds a separate event before an entity is spawned by a spawner which contains the location of the spawner too similarly to how the SpawnerSpawnEvent gets called instead of the CreatureSpawnEvent for spawners. Dropped as it does not apply due to the earlier PreCreatureSpawnEvent patch not being applied
This commit is contained in:
parent
6512e0749b
commit
63821bf96b
1 changed files with 29 additions and 0 deletions
|
@ -0,0 +1,29 @@
|
|||
package com.destroystokyo.paper.event.entity;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Called before an entity is spawned into a world by a spawner.
|
||||
* <p>
|
||||
* This only includes the spawner's location and not the full BlockState snapshot for performance reasons.
|
||||
* If you really need it you have to get the spawner yourself.
|
||||
*/
|
||||
@NullMarked
|
||||
public class PreSpawnerSpawnEvent extends PreCreatureSpawnEvent {
|
||||
|
||||
private final Location spawnerLocation;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public PreSpawnerSpawnEvent(final Location location, final EntityType type, final Location spawnerLocation) {
|
||||
super(location, type, CreatureSpawnEvent.SpawnReason.SPAWNER);
|
||||
this.spawnerLocation = spawnerLocation;
|
||||
}
|
||||
|
||||
public Location getSpawnerLocation() {
|
||||
return this.spawnerLocation.clone();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue