diff --git a/Spigot-API-Patches/0205-Spawn-Reason-API.patch b/Spigot-API-Patches/0205-Spawn-Reason-API.patch new file mode 100644 index 000000000..b9780cf4e --- /dev/null +++ b/Spigot-API-Patches/0205-Spawn-Reason-API.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Thu, 10 Apr 2014 23:18:28 -0400 +Subject: [PATCH] Spawn Reason API + + +diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java +index 421ad6a91ceb38fd62684d18f109d7cf8526605a..906ee6827dc6956b3c1657bde75ef8481e16dce2 100644 +--- a/src/main/java/org/bukkit/World.java ++++ b/src/main/java/org/bukkit/World.java +@@ -1,6 +1,8 @@ + package org.bukkit; + + import java.io.File; ++ ++import org.bukkit.event.entity.CreatureSpawnEvent; + import org.bukkit.generator.ChunkGenerator; + + import java.util.ArrayList; +@@ -2037,6 +2039,12 @@ public interface World extends PluginMessageRecipient, Metadatable { + @NotNull + public T spawn(@NotNull Location location, @NotNull Class clazz) throws IllegalArgumentException; + ++ // Paper start ++ @NotNull ++ public default T spawn(@NotNull Location location, @NotNull Class clazz, @NotNull CreatureSpawnEvent.SpawnReason reason) throws IllegalArgumentException { ++ return spawn(location, clazz, reason, null); ++ } ++ + /** + * Spawn an entity of a specific class at the given {@link Location}, with + * the supplied function run before the entity is added to the world. +@@ -2054,7 +2062,28 @@ public interface World extends PluginMessageRecipient, Metadatable { + * {@link Entity} requested cannot be spawned + */ + @NotNull +- public T spawn(@NotNull Location location, @NotNull Class clazz, @Nullable Consumer function) throws IllegalArgumentException; ++ public default T spawn(@NotNull Location location, @NotNull Class clazz, @Nullable Consumer function) throws IllegalArgumentException { ++ return spawn(location, clazz, CreatureSpawnEvent.SpawnReason.CUSTOM, function); ++ } ++ ++ @NotNull ++ public default T spawn(@NotNull Location location, @NotNull Class clazz, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable Consumer function) throws IllegalArgumentException { ++ return spawn(location, clazz, function, reason); ++ } ++ ++ @NotNull ++ public default Entity spawnEntity(@NotNull Location loc, @NotNull EntityType type, @NotNull CreatureSpawnEvent.SpawnReason reason) { ++ return spawn(loc, (Class) type.getEntityClass(), reason, null); ++ } ++ ++ @NotNull ++ public default Entity spawnEntity(@NotNull Location loc, @NotNull EntityType type, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable Consumer function) { ++ return spawn(loc, (Class) type.getEntityClass(), reason, function); ++ } ++ ++ @NotNull ++ public T spawn(@NotNull Location location, @NotNull Class clazz, @Nullable Consumer function, @NotNull CreatureSpawnEvent.SpawnReason reason) throws IllegalArgumentException; ++ // Paper end + + /** + * Spawn a {@link FallingBlock} entity at the given {@link Location} of