From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 19 Apr 2019 12:41:19 -0500
Subject: [PATCH] Mob Spawner API Enhancements


diff --git a/src/main/java/org/bukkit/block/CreatureSpawner.java b/src/main/java/org/bukkit/block/CreatureSpawner.java
index 8dae9611e702d93b202563597c50752c5f5b77d4..3dcab76632c4f8646d7ae62bb8de287eb6ef55b5 100644
--- a/src/main/java/org/bukkit/block/CreatureSpawner.java
+++ b/src/main/java/org/bukkit/block/CreatureSpawner.java
@@ -199,4 +199,30 @@ public interface CreatureSpawner extends TileState {
      * @see #getSpawnRange()
      */
     public void setSpawnRange(int spawnRange);
+
+    // Paper start
+    /**
+     * Check if spawner is activated (a player is close enough)
+     *
+     * @return True if a player is close enough to activate it
+     */
+    public boolean isActivated();
+
+    /**
+     * Resets the spawn delay timer within the min/max range
+     */
+    public void resetTimer();
+
+    /**
+     * Sets the {@link EntityType} to {@link EntityType#DROPPED_ITEM} and sets the data to the given
+     * {@link org.bukkit.inventory.ItemStack ItemStack}.
+     * <p>
+     * {@link #setSpawnCount(int)} does not dictate the amount of items in the stack spawned, but rather how many
+     * stacks should be spawned.
+     *
+     * @param itemStack The item to spawn. Must not {@link org.bukkit.Material#isAir be air}.
+     * @see #setSpawnedType(EntityType)
+     */
+    void setSpawnedItem(org.bukkit.inventory.@org.jetbrains.annotations.NotNull ItemStack itemStack);
+    // Paper end
 }