mirror of
https://github.com/PaperMC/Folia.git
synced 2024-11-24 12:25:23 +01:00
Add Server#isGlobalTickThread (#5)
This commit is contained in:
parent
ae66537bdc
commit
88167d59d2
@ -11,10 +11,10 @@ the schedulers depending on the result of the ownership
|
|||||||
check.
|
check.
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
||||||
index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..a1295698beee025120beb3d151e77646bb44723b 100644
|
index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..3c940426f1ea03bb1279b4f397549642e98dd72d 100644
|
||||||
--- a/src/main/java/org/bukkit/Bukkit.java
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
||||||
+++ b/src/main/java/org/bukkit/Bukkit.java
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
||||||
@@ -2496,6 +2496,100 @@ public final class Bukkit {
|
@@ -2496,6 +2496,107 @@ public final class Bukkit {
|
||||||
public static @NotNull io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler getGlobalRegionScheduler() {
|
public static @NotNull io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler getGlobalRegionScheduler() {
|
||||||
return server.getGlobalRegionScheduler();
|
return server.getGlobalRegionScheduler();
|
||||||
}
|
}
|
||||||
@ -111,15 +111,22 @@ index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..a1295698beee025120beb3d151e77646
|
|||||||
+ */
|
+ */
|
||||||
+ public static boolean isOwnedByCurrentRegion(@NotNull Entity entity) {
|
+ public static boolean isOwnedByCurrentRegion(@NotNull Entity entity) {
|
||||||
+ return server.isOwnedByCurrentRegion(entity);
|
+ return server.isOwnedByCurrentRegion(entity);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Returns whether the current thread is ticking the global region.
|
||||||
|
+ */
|
||||||
|
+ public static boolean isGlobalTickThread() {
|
||||||
|
+ return server.isGlobalTickThread();
|
||||||
+ }
|
+ }
|
||||||
// Folia end - region threading API
|
// Folia end - region threading API
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||||
index 5caa00a413450dee18739f6430ffaf5095ea3036..b04742bafbb4045d5842ac96761a941cfd3fc758 100644
|
index 5caa00a413450dee18739f6430ffaf5095ea3036..c230a10aff36f6b484d7e3963cbf8073f8676fb1 100644
|
||||||
--- a/src/main/java/org/bukkit/Server.java
|
--- a/src/main/java/org/bukkit/Server.java
|
||||||
+++ b/src/main/java/org/bukkit/Server.java
|
+++ b/src/main/java/org/bukkit/Server.java
|
||||||
@@ -2170,5 +2170,85 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
@@ -2170,5 +2170,90 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||||
* @return the global region scheduler
|
* @return the global region scheduler
|
||||||
*/
|
*/
|
||||||
public @NotNull io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler getGlobalRegionScheduler();
|
public @NotNull io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler getGlobalRegionScheduler();
|
||||||
@ -203,5 +210,10 @@ index 5caa00a413450dee18739f6430ffaf5095ea3036..b04742bafbb4045d5842ac96761a941c
|
|||||||
+ * @param entity Specified entity.
|
+ * @param entity Specified entity.
|
||||||
+ */
|
+ */
|
||||||
+ public boolean isOwnedByCurrentRegion(@NotNull Entity entity);
|
+ public boolean isOwnedByCurrentRegion(@NotNull Entity entity);
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Returns whether the current thread is ticking the global region.
|
||||||
|
+ */
|
||||||
|
+ public boolean isGlobalTickThread();
|
||||||
// Folia end - region threading API
|
// Folia end - region threading API
|
||||||
}
|
}
|
||||||
|
@ -23078,10 +23078,10 @@ index 1d7c663fa0e550bd0cfb9a4b83ccd7e2968666f0..f3df9c9b6cff85565514f990597f3fe5
|
|||||||
LevelChunkTicks<T> levelChunkTicks = this.allContainers.get(l);
|
LevelChunkTicks<T> levelChunkTicks = this.allContainers.get(l);
|
||||||
if (levelChunkTicks == null) {
|
if (levelChunkTicks == null) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index e0b6c737f9de2b6e692d6813d8dea4c35f038573..851937baff90177e648d970cf1c462b897aaf9f5 100644
|
index e0b6c737f9de2b6e692d6813d8dea4c35f038573..27445d7bcfaaa34a60e65e8d339f15367d7b3b6e 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -303,6 +303,76 @@ public final class CraftServer implements Server {
|
@@ -303,6 +303,82 @@ public final class CraftServer implements Server {
|
||||||
CraftItemFactory.instance();
|
CraftItemFactory.instance();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23153,12 +23153,18 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..851937baff90177e648d970cf1c462b8
|
|||||||
+ public final boolean isOwnedByCurrentRegion(Entity entity) {
|
+ public final boolean isOwnedByCurrentRegion(Entity entity) {
|
||||||
+ return io.papermc.paper.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)entity).getHandle());
|
+ return io.papermc.paper.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)entity).getHandle());
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isGlobalTickThread() {
|
||||||
|
+ return io.papermc.paper.threadedregions.RegionizedServer.isGlobalTickThread();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ // Folia end - region threading API
|
+ // Folia end - region threading API
|
||||||
+
|
+
|
||||||
public CraftServer(DedicatedServer console, PlayerList playerList) {
|
public CraftServer(DedicatedServer console, PlayerList playerList) {
|
||||||
this.console = console;
|
this.console = console;
|
||||||
this.playerList = (DedicatedPlayerList) playerList;
|
this.playerList = (DedicatedPlayerList) playerList;
|
||||||
@@ -856,6 +926,9 @@ public final class CraftServer implements Server {
|
@@ -856,6 +932,9 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
// NOTE: Should only be called from DedicatedServer.ah()
|
// NOTE: Should only be called from DedicatedServer.ah()
|
||||||
public boolean dispatchServerCommand(CommandSender sender, ConsoleInput serverCommand) {
|
public boolean dispatchServerCommand(CommandSender sender, ConsoleInput serverCommand) {
|
||||||
@ -23168,7 +23174,7 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..851937baff90177e648d970cf1c462b8
|
|||||||
if (sender instanceof Conversable) {
|
if (sender instanceof Conversable) {
|
||||||
Conversable conversable = (Conversable) sender;
|
Conversable conversable = (Conversable) sender;
|
||||||
|
|
||||||
@@ -875,12 +948,44 @@ public final class CraftServer implements Server {
|
@@ -875,12 +954,44 @@ public final class CraftServer implements Server {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23213,7 +23219,7 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..851937baff90177e648d970cf1c462b8
|
|||||||
// Paper Start
|
// Paper Start
|
||||||
if (!org.spigotmc.AsyncCatcher.shuttingDown && !Bukkit.isPrimaryThread()) {
|
if (!org.spigotmc.AsyncCatcher.shuttingDown && !Bukkit.isPrimaryThread()) {
|
||||||
final CommandSender fSender = sender;
|
final CommandSender fSender = sender;
|
||||||
@@ -2894,7 +2999,7 @@ public final class CraftServer implements Server {
|
@@ -2894,7 +3005,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCurrentTick() {
|
public int getCurrentTick() {
|
||||||
|
@ -87,7 +87,7 @@ index f038f6d4e9fc4b76d5774fc637171191405ee7bb..55a03a3b22c37338d32aeb0878169c44
|
|||||||
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
||||||
this.passengers = ImmutableList.of();
|
this.passengers = ImmutableList.of();
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 851937baff90177e648d970cf1c462b897aaf9f5..8fbe4e8a43940163efaa74da99eb077ae0a426f9 100644
|
index 27445d7bcfaaa34a60e65e8d339f15367d7b3b6e..788ac73125620ceaaec390a6498451b65d16d325 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -369,7 +369,7 @@ public final class CraftServer implements Server {
|
@@ -369,7 +369,7 @@ public final class CraftServer implements Server {
|
||||||
@ -97,8 +97,8 @@ index 851937baff90177e648d970cf1c462b897aaf9f5..8fbe4e8a43940163efaa74da99eb077a
|
|||||||
- return io.papermc.paper.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)entity).getHandle());
|
- return io.papermc.paper.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)entity).getHandle());
|
||||||
+ return io.papermc.paper.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)entity).getHandleRaw()); // Folia - add thread checks to getHandle
|
+ return io.papermc.paper.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)entity).getHandleRaw()); // Folia - add thread checks to getHandle
|
||||||
}
|
}
|
||||||
// Folia end - region threading API
|
|
||||||
|
|
||||||
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java
|
||||||
index 1c8d63e462f3ed3d5286659ae0d1ec04d8b55177..116341b777f898a8080cc348499159c0f01b7329 100644
|
index 1c8d63e462f3ed3d5286659ae0d1ec04d8b55177..116341b777f898a8080cc348499159c0f01b7329 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java
|
||||||
|
@ -5,10 +5,10 @@ Subject: [PATCH] Throw UnsupportedOperationException() for broken APIs
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 8fbe4e8a43940163efaa74da99eb077ae0a426f9..29602f9c2f1e04677a462079c094e9b51cec43af 100644
|
index 788ac73125620ceaaec390a6498451b65d16d325..32c9b38036052649b7b5fb25d7c4a49fdd1ca972 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -1239,6 +1239,7 @@ public final class CraftServer implements Server {
|
@@ -1245,6 +1245,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public World createWorld(WorldCreator creator) {
|
public World createWorld(WorldCreator creator) {
|
||||||
@ -16,7 +16,7 @@ index 8fbe4e8a43940163efaa74da99eb077ae0a426f9..29602f9c2f1e04677a462079c094e9b5
|
|||||||
Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP");
|
Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP");
|
||||||
//Preconditions.checkState(!this.console.isIteratingOverLevels, "Cannot create a world while worlds are being ticked"); // Paper - Cat - Temp disable. We'll see how this goes.
|
//Preconditions.checkState(!this.console.isIteratingOverLevels, "Cannot create a world while worlds are being ticked"); // Paper - Cat - Temp disable. We'll see how this goes.
|
||||||
Validate.notNull(creator, "Creator may not be null");
|
Validate.notNull(creator, "Creator may not be null");
|
||||||
@@ -1379,6 +1380,7 @@ public final class CraftServer implements Server {
|
@@ -1385,6 +1386,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean unloadWorld(World world, boolean save) {
|
public boolean unloadWorld(World world, boolean save) {
|
||||||
|
Loading…
Reference in New Issue
Block a user