088fa6f28b
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 5b289e69 SPIGOT-5778: Added World.getGameTime method CraftBukkit Changes: d97d91871 SPIGOT-6347: Nether Portals Default to Nether, even in Nether 8aa6a953f SPIGOT-5778: Added World.getGameTime method Spigot Changes: 73fb6094 #107: Add async catching to chunk entity add/remove
62 lines
3 KiB
Diff
62 lines
3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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 22b913071af2526e73a571cdf8889b0f19e22d6e..9b12fbec82017d8cbb21b5a8c3d563f1974dc1c5 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;
|
|
@@ -2217,6 +2219,12 @@ public interface World extends PluginMessageRecipient, Metadatable {
|
|
@NotNull
|
|
public <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz) throws IllegalArgumentException;
|
|
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ public default <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> 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.
|
|
@@ -2234,7 +2242,28 @@ public interface World extends PluginMessageRecipient, Metadatable {
|
|
* {@link Entity} requested cannot be spawned
|
|
*/
|
|
@NotNull
|
|
- public <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, @Nullable Consumer<T> function) throws IllegalArgumentException;
|
|
+ public default <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, @Nullable Consumer<T> function) throws IllegalArgumentException {
|
|
+ return spawn(location, clazz, CreatureSpawnEvent.SpawnReason.CUSTOM, function);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public default <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable Consumer<T> 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<Entity>) type.getEntityClass(), reason, null);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public default Entity spawnEntity(@NotNull Location loc, @NotNull EntityType type, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable Consumer<Entity> function) {
|
|
+ return spawn(loc, (Class<Entity>) type.getEntityClass(), reason, function);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, @Nullable Consumer<T> function, @NotNull CreatureSpawnEvent.SpawnReason reason) throws IllegalArgumentException;
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Spawn a {@link FallingBlock} entity at the given {@link Location} of
|