Replace Vector with Position in isOwnedByCurrentRegion methods

Closes #3
This commit is contained in:
Nassim Jahnke 2023-03-25 18:50:36 +01:00
parent 8d15f3e23d
commit 836dc75b65
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
4 changed files with 29 additions and 32 deletions

View File

@ -11,7 +11,7 @@ the schedulers depending on the result of the ownership
check.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..16043d6f7894182e8ff75a8faf57dedf8db50d84 100644
index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..a1295698beee025120beb3d151e77646bb44723b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -2496,6 +2496,100 @@ public final class Bukkit {
@ -25,7 +25,7 @@ index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..16043d6f7894182e8ff75a8faf57dedf
+ * @param world Specified world.
+ * @param position Specified block position.
+ */
+ public static boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull org.bukkit.util.Vector position) {
+ public static boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull io.papermc.paper.math.Position position) {
+ return server.isOwnedByCurrentRegion(world, position);
+ }
+
@ -39,7 +39,7 @@ index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..16043d6f7894182e8ff75a8faf57dedf
+ * @param squareRadiusChunks Specified square radius. Must be >= 0. Note that this parameter is <i>not</i> a <i>squared</i>
+ * radius, but rather a <i>Chebyshev Distance</i>.
+ */
+ public static boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull org.bukkit.util.Vector position, int squareRadiusChunks) {
+ public static boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull io.papermc.paper.math.Position position, int squareRadiusChunks) {
+ return server.isOwnedByCurrentRegion(world, position, squareRadiusChunks);
+ }
+
@ -72,7 +72,7 @@ index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..16043d6f7894182e8ff75a8faf57dedf
+ * @param block Specified block position.
+ */
+ public static boolean isOwnedByCurrentRegion(@NotNull org.bukkit.block.Block block) {
+ return server.isOwnedByCurrentRegion(block);
+ return server.isOwnedByCurrentRegion(block.getLocation());
+ }
+
+ /**
@ -116,10 +116,10 @@ index 7986b9fcaf256e9042f6d9ddc38e8bd76645cbb7..16043d6f7894182e8ff75a8faf57dedf
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 5caa00a413450dee18739f6430ffaf5095ea3036..c72eee72401e275af57d4fd67a04df1eac13954c 100644
index 5caa00a413450dee18739f6430ffaf5095ea3036..b04742bafbb4045d5842ac96761a941cfd3fc758 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2170,5 +2170,83 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2170,5 +2170,85 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the global region scheduler
*/
public @NotNull io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler getGlobalRegionScheduler();
@ -130,7 +130,7 @@ index 5caa00a413450dee18739f6430ffaf5095ea3036..c72eee72401e275af57d4fd67a04df1e
+ * @param world Specified world.
+ * @param position Specified block position.
+ */
+ public boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull org.bukkit.util.Vector position);
+ public boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull io.papermc.paper.math.Position position);
+
+ /**
+ * Returns whether the current thread is ticking a region and that the region being ticked
@ -142,7 +142,7 @@ index 5caa00a413450dee18739f6430ffaf5095ea3036..c72eee72401e275af57d4fd67a04df1e
+ * @param squareRadiusChunks Specified square radius. Must be >= 0. Note that this parameter is <i>not</i> a <i>squared</i>
+ * radius, but rather a <i>Chebyshev Distance</i>.
+ */
+ public boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull org.bukkit.util.Vector position, int squareRadiusChunks);
+ public boolean isOwnedByCurrentRegion(@NotNull World world, @NotNull io.papermc.paper.math.Position position, int squareRadiusChunks);
+
+ /**
+ * Returns whether the current thread is ticking a region and that the region being ticked
@ -168,7 +168,9 @@ index 5caa00a413450dee18739f6430ffaf5095ea3036..c72eee72401e275af57d4fd67a04df1e
+ * owns the chunk at the specified block position.
+ * @param block Specified block position.
+ */
+ public boolean isOwnedByCurrentRegion(@NotNull org.bukkit.block.Block block);
+ default boolean isOwnedByCurrentRegion(@NotNull org.bukkit.block.Block block) {
+ return isOwnedByCurrentRegion(block.getLocation());
+ }
+
+ /**
+ * Returns whether the current thread is ticking a region and that the region being ticked

View File

@ -22946,10 +22946,10 @@ index 1d7c663fa0e550bd0cfb9a4b83ccd7e2968666f0..f3df9c9b6cff85565514f990597f3fe5
LevelChunkTicks<T> levelChunkTicks = this.allContainers.get(l);
if (levelChunkTicks == null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c63702ba792f9 100644
index e0b6c737f9de2b6e692d6813d8dea4c35f038573..851937baff90177e648d970cf1c462b897aaf9f5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -303,6 +303,81 @@ public final class CraftServer implements Server {
@@ -303,6 +303,76 @@ public final class CraftServer implements Server {
CraftItemFactory.instance();
}
@ -22974,16 +22974,16 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c6370
+ }
+
+ @Override
+ public final boolean isOwnedByCurrentRegion(World world, org.bukkit.util.Vector position) {
+ public final boolean isOwnedByCurrentRegion(World world, io.papermc.paper.math.Position position) {
+ return io.papermc.paper.util.TickThread.isTickThreadFor(
+ ((CraftWorld)world).getHandle(), position.getBlockX() >> 4, position.getBlockZ() >> 4
+ ((CraftWorld) world).getHandle(), position.blockX() >> 4, position.blockZ() >> 4
+ );
+ }
+
+ @Override
+ public final boolean isOwnedByCurrentRegion(World world, org.bukkit.util.Vector position, int squareRadiusChunks) {
+ public final boolean isOwnedByCurrentRegion(World world, io.papermc.paper.math.Position position, int squareRadiusChunks) {
+ return io.papermc.paper.util.TickThread.isTickThreadFor(
+ ((CraftWorld)world).getHandle(), position.getBlockX() >> 4, position.getBlockZ() >> 4, squareRadiusChunks
+ ((CraftWorld) world).getHandle(), position.blockX() >> 4, position.blockZ() >> 4, squareRadiusChunks
+ );
+ }
+
@ -22991,7 +22991,7 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c6370
+ public final boolean isOwnedByCurrentRegion(Location location) {
+ World world = location.getWorld();
+ return io.papermc.paper.util.TickThread.isTickThreadFor(
+ ((CraftWorld)world).getHandle(), location.getBlockX() >> 4, location.getBlockZ() >> 4
+ ((CraftWorld) world).getHandle(), location.getBlockX() >> 4, location.getBlockZ() >> 4
+ );
+ }
+
@ -22999,26 +22999,21 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c6370
+ public final boolean isOwnedByCurrentRegion(Location location, int squareRadiusChunks) {
+ World world = location.getWorld();
+ return io.papermc.paper.util.TickThread.isTickThreadFor(
+ ((CraftWorld)world).getHandle(), location.getBlockX() >> 4, location.getBlockZ() >> 4, squareRadiusChunks
+ ((CraftWorld) world).getHandle(), location.getBlockX() >> 4, location.getBlockZ() >> 4, squareRadiusChunks
+ );
+ }
+
+ @Override
+ public final boolean isOwnedByCurrentRegion(org.bukkit.block.Block block) {
+ return this.isOwnedByCurrentRegion(block.getLocation());
+ }
+
+ @Override
+ public final boolean isOwnedByCurrentRegion(World world, int chunkX, int chunkZ) {
+ return io.papermc.paper.util.TickThread.isTickThreadFor(
+ ((CraftWorld)world).getHandle(), chunkX, chunkZ
+ ((CraftWorld) world).getHandle(), chunkX, chunkZ
+ );
+ }
+
+ @Override
+ public final boolean isOwnedByCurrentRegion(World world, int chunkX, int chunkZ, int squareRadiusChunks) {
+ return io.papermc.paper.util.TickThread.isTickThreadFor(
+ ((CraftWorld)world).getHandle(), chunkX, chunkZ, squareRadiusChunks
+ ((CraftWorld) world).getHandle(), chunkX, chunkZ, squareRadiusChunks
+ );
+ }
+
@ -23031,7 +23026,7 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c6370
public CraftServer(DedicatedServer console, PlayerList playerList) {
this.console = console;
this.playerList = (DedicatedPlayerList) playerList;
@@ -856,6 +931,9 @@ public final class CraftServer implements Server {
@@ -856,6 +926,9 @@ public final class CraftServer implements Server {
// NOTE: Should only be called from DedicatedServer.ah()
public boolean dispatchServerCommand(CommandSender sender, ConsoleInput serverCommand) {
@ -23041,7 +23036,7 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c6370
if (sender instanceof Conversable) {
Conversable conversable = (Conversable) sender;
@@ -875,12 +953,44 @@ public final class CraftServer implements Server {
@@ -875,12 +948,44 @@ public final class CraftServer implements Server {
}
}
@ -23086,7 +23081,7 @@ index e0b6c737f9de2b6e692d6813d8dea4c35f038573..71663e4f16fb59c36c53badfd19c6370
// Paper Start
if (!org.spigotmc.AsyncCatcher.shuttingDown && !Bukkit.isPrimaryThread()) {
final CommandSender fSender = sender;
@@ -2894,7 +3004,7 @@ public final class CraftServer implements Server {
@@ -2894,7 +2999,7 @@ public final class CraftServer implements Server {
@Override
public int getCurrentTick() {

View File

@ -87,10 +87,10 @@ index 006695237ddd0cc5f1910c307d4e8a696128807f..64ddd3415878b6a86a98d7718d5e3e5b
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 71663e4f16fb59c36c53badfd19c63702ba792f9..9902d216c8659acd128bb85e4624ad682e4de804 100644
index 851937baff90177e648d970cf1c462b897aaf9f5..8fbe4e8a43940163efaa74da99eb077ae0a426f9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -374,7 +374,7 @@ public final class CraftServer implements Server {
@@ -369,7 +369,7 @@ public final class CraftServer implements Server {
@Override
public final boolean isOwnedByCurrentRegion(Entity entity) {

View File

@ -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
index 9902d216c8659acd128bb85e4624ad682e4de804..2252a3d84d5fe746647e16edfc989d7eaf19fd96 100644
index 8fbe4e8a43940163efaa74da99eb077ae0a426f9..29602f9c2f1e04677a462079c094e9b51cec43af 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1244,6 +1244,7 @@ public final class CraftServer implements Server {
@@ -1239,6 +1239,7 @@ public final class CraftServer implements Server {
@Override
public World createWorld(WorldCreator creator) {
@ -16,7 +16,7 @@ index 9902d216c8659acd128bb85e4624ad682e4de804..2252a3d84d5fe746647e16edfc989d7e
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.
Validate.notNull(creator, "Creator may not be null");
@@ -1384,6 +1385,7 @@ public final class CraftServer implements Server {
@@ -1379,6 +1380,7 @@ public final class CraftServer implements Server {
@Override
public boolean unloadWorld(World world, boolean save) {