Expand Hopper BlockState API (#10328)

This commit is contained in:
viciscat 2024-03-16 20:28:50 +01:00 committed by GitHub
parent d361a7f609
commit 99a641690a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,32 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: vicisacat <victor.branchu@gmail.com>
Date: Fri, 15 Mar 2024 17:35:18 +0100
Subject: [PATCH] Expanded Hopper API
diff --git a/src/main/java/org/bukkit/block/Hopper.java b/src/main/java/org/bukkit/block/Hopper.java
index 7ade312f180b7e30871d3a3240c76325cc369c26..61ea33c1f2dbb546a66f945a01feae437b1381e0 100644
--- a/src/main/java/org/bukkit/block/Hopper.java
+++ b/src/main/java/org/bukkit/block/Hopper.java
@@ -6,4 +6,20 @@ import org.bukkit.loot.Lootable;
/**
* Represents a captured state of a hopper.
*/
-public interface Hopper extends Container, LootableBlockInventory { } // Paper
+public interface Hopper extends Container, LootableBlockInventory { // Paper
+ // Paper start - Expanded Hopper API
+ /**
+ * Sets the cooldown before the hopper transfers or sucks in another item
+ * @param cooldown the cooldown in ticks
+ * @throws IllegalArgumentException if the passed cooldown value is negative.
+ */
+ void setTransferCooldown(@org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE) int cooldown);
+
+ /**
+ * Returns the cooldown before the hopper transfers or sucks in another item
+ * @return the cooldown in ticks
+ */
+ int getTransferCooldown();
+ // Paper end - Expanded Hopper API
+}
+

View File

@ -0,0 +1,31 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: vicisacat <victor.branchu@gmail.com>
Date: Fri, 15 Mar 2024 17:35:40 +0100
Subject: [PATCH] Expanded Hopper API
== AT ==
public net.minecraft.world.level.block.entity.HopperBlockEntity setCooldown(I)V
public net.minecraft.world.level.block.entity.HopperBlockEntity cooldownTime
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java
index d446f18df647484e2f05ab642b73e914b06fdfed..af5f27fb5ebad1e05da2b7d1a0710a2ef9c6ebbe 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java
@@ -34,4 +34,17 @@ public class CraftHopper extends CraftLootable<HopperBlockEntity> implements Hop
public CraftHopper copy() {
return new CraftHopper(this);
}
+
+ // Paper start - Expanded Hopper API
+ @Override
+ public void setTransferCooldown(final int cooldown) {
+ com.google.common.base.Preconditions.checkArgument(cooldown >= 0, "Hooper transfer cooldown cannot be negative (" + cooldown + ")");
+ getSnapshot().setCooldown(cooldown);
+ }
+
+ @Override
+ public int getTransferCooldown() {
+ return getSnapshot().cooldownTime;
+ }
+ // Paper end - Expanded Hopper API
}