geforkt von Mirrors/Paper
aa52bf9e33
Mojang made some changes to priorities in 1.17 and it seems that these changes conflict with the changes made in this patch, which in some cases appears to cause excessive rescheduling of tasks. This, however, is not confirmed as such but seems to be the behavior that we're seeing to cause this issue, if mojang has adopted the changes we suggested, then a good chunk of this patch may be unneeded, but, this needs a much better look than I'm currently able to do
41 Zeilen
1.6 KiB
Diff
41 Zeilen
1.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 30 Dec 2020 19:43:01 -0500
|
|
Subject: [PATCH] Additional Block Material API's
|
|
|
|
Faster version for isSolid() that utilizes NMS's state for isSolid instead of the slower
|
|
process to do this in the Bukkit API
|
|
|
|
Adds API for buildable, replaceable, burnable too.
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
index 354ed68bad64277a9566d4dfdd8808260f145458..ef3d93ba8b4149aa479abc6e9787a8746f60ce1d 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
@@ -618,6 +618,25 @@ public class CraftBlock implements Block {
|
|
return this.getNMS().getMaterial().isLiquid();
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public boolean isBuildable() {
|
|
+ return getNMS().getMaterial().isSolid(); // This is in fact isSolid, despite the fact that isSolid below returns blocksMotion
|
|
+ }
|
|
+ @Override
|
|
+ public boolean isBurnable() {
|
|
+ return getNMS().getMaterial().isFlammable();
|
|
+ }
|
|
+ @Override
|
|
+ public boolean isReplaceable() {
|
|
+ return getNMS().getMaterial().isReplaceable();
|
|
+ }
|
|
+ @Override
|
|
+ public boolean isSolid() {
|
|
+ return getNMS().getMaterial().blocksMotion();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public PistonMoveReaction getPistonMoveReaction() {
|
|
return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());
|