mirror of
https://github.com/PaperMC/Paper.git
synced 2024-08-31 17:20:11 +02:00
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Please note that this build includes changes to meet upstreams requirements for nullability annotations. While we aim for a level of accuracy, these might not be 100% correct, if there are any issues, please speak to us on discord, or open an issue on the tracker to discuss. Bukkit Changes: 9a6a1de3 Remove nullability annotations from enum constructors 3f0591ea SPIGOT-2540: Add nullability annotations to entire Bukkit API CraftBukkit Changes:8d8475fc
SPIGOT-4666: Force parameter in HumanEntity#sleep8b1588e2
Fix ExplosionPrimeEvent#setFire not working with EnderCrystals39a287b7
Don't ignore newlines in PlayerListHeader/Footer Spigot Changes: cf694d87 Add nullability annotations
49 lines
1.8 KiB
Diff
49 lines
1.8 KiB
Diff
From c0ac9162f275d12dc0fcd47237528f9b124917a9 Mon Sep 17 00:00:00 2001
|
|
From: Phoenix616 <mail@moep.tv>
|
|
Date: Tue, 18 Sep 2018 23:50:10 +0100
|
|
Subject: [PATCH] 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.
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java
|
|
new file mode 100644
|
|
index 000000000..48cff0635
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java
|
|
@@ -0,0 +1,29 @@
|
|
+package com.destroystokyo.paper.event.entity;
|
|
+
|
|
+
|
|
+import com.google.common.base.Preconditions;
|
|
+import org.bukkit.Location;
|
|
+import org.bukkit.entity.EntityType;
|
|
+import org.bukkit.event.entity.CreatureSpawnEvent;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Called before an entity is spawned into a world by a spawner.
|
|
+ *
|
|
+ * 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.
|
|
+ */
|
|
+
|
|
+public class PreSpawnerSpawnEvent extends PreCreatureSpawnEvent {
|
|
+ @NotNull private final Location spawnerLocation;
|
|
+
|
|
+ public PreSpawnerSpawnEvent(@NotNull Location location, @NotNull EntityType type, @NotNull Location spawnerLocation) {
|
|
+ super(location, type, CreatureSpawnEvent.SpawnReason.SPAWNER);
|
|
+ this.spawnerLocation = Preconditions.checkNotNull(spawnerLocation, "Spawner location may not be null");
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public Location getSpawnerLocation() {
|
|
+ return spawnerLocation;
|
|
+ }
|
|
+}
|
|
--
|
|
2.21.0
|
|
|