mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
a2c7a9b490
The method sadly is not usable in 1.21 without a player as all of an enchantments attribtue modifiers rely on a base value supplied by a player. The method could only offer a rough estimate based on some default values, however a better method for this should be added down the line rather than trying to force such logic into the existing one.
71 lines
2.7 KiB
Diff
71 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
Date: Sun, 26 Dec 2021 13:23:52 -0500
|
|
Subject: [PATCH] Block Ticking API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/Block.java
|
|
+++ b/src/main/java/org/bukkit/block/Block.java
|
|
@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
|
|
* @return true if the block was destroyed
|
|
*/
|
|
boolean breakNaturally(@NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience);
|
|
+
|
|
+ /**
|
|
+ * Causes the block to be ticked, this is different from {@link Block#randomTick()},
|
|
+ * in that it is usually scheduled to occur, for example
|
|
+ * redstone components being activated, sand falling, etc.
|
|
+ * <p>
|
|
+ * This method may directly fire events relating to block ticking.
|
|
+ *
|
|
+ * @see #fluidTick()
|
|
+ */
|
|
+ void tick();
|
|
+
|
|
+ /**
|
|
+ * Causes the fluid to be ticked, this is different from {@link Block#randomTick()},
|
|
+ * in that it is usually scheduled to occur, for example
|
|
+ * causing waterlogged blocks to spread.
|
|
+ * <p>
|
|
+ * This method may directly fire events relating to fluid ticking.
|
|
+ *
|
|
+ * @see #tick()
|
|
+ */
|
|
+ void fluidTick();
|
|
+
|
|
+ /**
|
|
+ * Causes the block to be ticked randomly.
|
|
+ * This has a chance to execute naturally if {@link BlockData#isRandomlyTicked()} is true.
|
|
+ * <p>
|
|
+ * For certain blocks, this behavior may be the same as {@link Block#tick()}.
|
|
+ * <p>
|
|
+ * This method may directly fire events relating to block random ticking.
|
|
+ *
|
|
+ * @see #tick()
|
|
+ * @see #fluidTick()
|
|
+ */
|
|
+ void randomTick();
|
|
// Paper end
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/block/data/BlockData.java b/src/main/java/org/bukkit/block/data/BlockData.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/data/BlockData.java
|
|
+++ b/src/main/java/org/bukkit/block/data/BlockData.java
|
|
@@ -0,0 +0,0 @@ public interface BlockData extends Cloneable {
|
|
@Deprecated(forRemoval = true, since = "1.21")
|
|
float getDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants);
|
|
// Paper end - destroy speed API
|
|
+
|
|
+ // Paper start - Tick API
|
|
+ /**
|
|
+ * Gets if this block is ticked randomly in the world.
|
|
+ * The blocks current state may change this value.
|
|
+ *
|
|
+ * @return is ticked randomly
|
|
+ */
|
|
+ boolean isRandomlyTicked();
|
|
+ // Paper end - Tick API
|
|
}
|