2018-09-21 20:56:08 +00:00
|
|
|
From 7a5dbc00ebc5103326157c6a22529554e6fca3a6 Mon Sep 17 00:00:00 2001
|
2018-09-03 14:05:55 +00:00
|
|
|
From: willies952002 <admin@domnian.com>
|
|
|
|
Date: Wed, 29 Aug 2018 00:37:42 -0400
|
|
|
|
Subject: [PATCH] Implement Force-Loaded Chunk API
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
2018-09-18 01:50:02 +00:00
|
|
|
index 650e605b5b..2ff8536d59 100644
|
2018-09-03 14:05:55 +00:00
|
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
2018-09-18 01:50:02 +00:00
|
|
|
@@ -3023,6 +3023,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
2018-09-03 14:05:55 +00:00
|
|
|
return forcedchunk != null && forcedchunk.a().contains(ChunkCoordIntPair.a(i, j));
|
|
|
|
}
|
|
|
|
|
|
|
|
+ public boolean setForcedChunk(int i, int j, boolean flag) { return b(i, j, flag); } // Paper - OBFHELPER
|
|
|
|
public boolean b(int i, int j, boolean flag) {
|
|
|
|
String s = "chunks";
|
|
|
|
ForcedChunk forcedchunk = (ForcedChunk) this.a(this.worldProvider.getDimensionManager(), ForcedChunk::new, "chunks");
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
2018-09-03 16:31:32 +00:00
|
|
|
index 12c6d850d2..55394e0c15 100644
|
2018-09-03 14:05:55 +00:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
|
|
@@ -289,6 +289,18 @@ public class CraftChunk implements Chunk {
|
|
|
|
Preconditions.checkArgument(0 <= z && z <= 15, "z out of range (expected 0-15, got %s)", z);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start - Force-Loaded Chunk API
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isForceLoaded() {
|
|
|
|
+ return getHandle().getWorld().isForcedChunk(this.x, this.z);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setForceLoaded(boolean force) {
|
|
|
|
+ getHandle().getWorld().setForcedChunk(this.x, this.z, force);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
static {
|
|
|
|
Arrays.fill(emptySkyLight, (byte) 0xFF);
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
2018-09-21 20:56:08 +00:00
|
|
|
index 99d8199996..f8ef782f14 100644
|
2018-09-03 14:05:55 +00:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
2018-09-21 20:56:08 +00:00
|
|
|
@@ -600,6 +600,10 @@ public class CraftWorld implements World {
|
2018-09-03 14:05:55 +00:00
|
|
|
public boolean isChunkGenerated(int x, int z) {
|
|
|
|
return this.getHandle().getChunkProviderServer().isChunkGenerated(x, z);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ public boolean isChunkForceLoaded(int x, int z) {
|
|
|
|
+ return this.isChunkGenerated(x, z) && this.getHandle().isForcedChunk(x, z);
|
|
|
|
+ }
|
|
|
|
// Paper end
|
|
|
|
|
|
|
|
public ChunkGenerator getGenerator() {
|
|
|
|
--
|
2018-09-15 16:10:26 +00:00
|
|
|
2.19.0
|
2018-09-03 14:05:55 +00:00
|
|
|
|