Skip to content

Commit b3deb25

Browse files
Move some methods to RegionAccessor (#7635)
1 parent 5befb55 commit b3deb25

23 files changed

+135
-95
lines changed

patches/api/0215-Add-moon-phase-API.patch

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,20 @@ index 0000000000000000000000000000000000000000..df05153397b42930cd53d37b30824c7e
4646
+ return BY_DAY.get(day % 8L);
4747
+ }
4848
+}
49-
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
50-
index fe2b9b88ad854f29e9162a316ca952b9f0b38121..85c1f5b33e933b23946cad3c5ad37cc350ee5d3c 100644
51-
--- a/src/main/java/org/bukkit/World.java
52-
+++ b/src/main/java/org/bukkit/World.java
53-
@@ -70,6 +70,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
54-
* @return The amount of Players in this world
49+
diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
50+
index e55f6e2baf35dbd91c433ab9e62713eaac85435b..2fa3de66107162ccaa158b369e2c4a926ecaff92 100644
51+
--- a/src/main/java/org/bukkit/RegionAccessor.java
52+
+++ b/src/main/java/org/bukkit/RegionAccessor.java
53+
@@ -376,4 +376,12 @@ public interface RegionAccessor {
5554
*/
56-
int getPlayerCount();
55+
@NotNull
56+
public <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, boolean randomizeData, @Nullable Consumer<T> function) throws IllegalArgumentException;
5757
+
58+
+ // Paper start
5859
+ /**
5960
+ * @return the current moon phase at the current time in the world
6061
+ */
6162
+ @NotNull
6263
+ io.papermc.paper.world.MoonPhase getMoonPhase();
63-
// Paper end
64-
65-
/**
64+
+ // Paper end
65+
}

patches/api/0276-Add-methods-to-get-world-by-key.patch renamed to patches/api/0276-Expand-world-key-API.patch

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Jake Potrebic <jake.m.potrebic@gmail.com>
33
Date: Wed, 6 Jan 2021 00:34:10 -0800
4-
Subject: [PATCH] Add methods to get world by key
4+
Subject: [PATCH] Expand world key API
55

66

77
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
8-
index 8072924c977e0a23ee743ca8d613b9ea5de885fa..c7fe6865e1a14116b61ae69c26d4af2d8af11955 100644
8+
index 37a295b2bbf7127713e19f224e788e0adb8823f4..3a2137c6505ef0e14875f7eaa7809509750fb625 100644
99
--- a/src/main/java/org/bukkit/Bukkit.java
1010
+++ b/src/main/java/org/bukkit/Bukkit.java
1111
@@ -791,6 +791,18 @@ public final class Bukkit {
@@ -27,6 +27,34 @@ index 8072924c977e0a23ee743ca8d613b9ea5de885fa..c7fe6865e1a14116b61ae69c26d4af2d
2727

2828
/**
2929
* Create a new virtual {@link WorldBorder}.
30+
diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
31+
index 2fa3de66107162ccaa158b369e2c4a926ecaff92..aa534b1a9a1fb84a2fbd4b372f313bb4b63325fa 100644
32+
--- a/src/main/java/org/bukkit/RegionAccessor.java
33+
+++ b/src/main/java/org/bukkit/RegionAccessor.java
34+
@@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable;
35+
* A RegionAccessor gives access to getting, modifying and spawning {@link Biome}, {@link BlockState} and {@link Entity},
36+
* as well as generating some basic structures.
37+
*/
38+
-public interface RegionAccessor {
39+
+public interface RegionAccessor extends Keyed { // Paper
40+
41+
/**
42+
* Gets the {@link Biome} at the given {@link Location}.
43+
@@ -383,5 +383,14 @@ public interface RegionAccessor {
44+
*/
45+
@NotNull
46+
io.papermc.paper.world.MoonPhase getMoonPhase();
47+
+
48+
+ /**
49+
+ * Get the world's key
50+
+ *
51+
+ * @return the world's key
52+
+ */
53+
+ @NotNull
54+
+ @Override
55+
+ NamespacedKey getKey();
56+
// Paper end
57+
}
3058
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
3159
index afed6bcf923166065ac9f63dd96191cd42eefcb9..181493def187f72b6ff89c3849598428f35d31f3 100644
3260
--- a/src/main/java/org/bukkit/Server.java

patches/api/0284-More-World-API.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Subject: [PATCH] More World API
55

66

77
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
8-
index c31c58ea83845ef032bc477e33aa94713454f194..7a519e242a6fb2de41fd1e9cd6e7a237f78ef004 100644
8+
index f463450c35e6fbba95c57a3a27192b667cb9e093..6864f71977196a2d8b685da5ea9ddc435ae5bc06 100644
99
--- a/src/main/java/org/bukkit/World.java
1010
+++ b/src/main/java/org/bukkit/World.java
11-
@@ -3639,6 +3639,114 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
11+
@@ -3633,6 +3633,114 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
1212
@Nullable
1313
public Location locateNearestStructure(@NotNull Location origin, @NotNull StructureType structureType, int radius, boolean findUnexplored);
1414

patches/api/0310-Add-more-line-of-sight-methods.patch

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ Date: Sat, 29 May 2021 14:33:18 -0500
44
Subject: [PATCH] Add more line of sight methods
55

66

7-
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
8-
index def9f0f9803e71cbe57abcffeb9114a5ab462e54..d149dd1d3d2703a428006e0c3ab5f9251e560882 100644
9-
--- a/src/main/java/org/bukkit/World.java
10-
+++ b/src/main/java/org/bukkit/World.java
11-
@@ -76,6 +76,14 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
12-
*/
7+
diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
8+
index aa534b1a9a1fb84a2fbd4b372f313bb4b63325fa..43b53c21af01e0f496c8aaacff82dfdfadaf40f6 100644
9+
--- a/src/main/java/org/bukkit/RegionAccessor.java
10+
+++ b/src/main/java/org/bukkit/RegionAccessor.java
11+
@@ -392,5 +392,13 @@ public interface RegionAccessor extends Keyed { // Paper
1312
@NotNull
14-
io.papermc.paper.world.MoonPhase getMoonPhase();
13+
@Override
14+
NamespacedKey getKey();
1515
+
1616
+ /**
1717
+ * Tell whether a line of sight exists between the given locations
@@ -21,8 +21,7 @@ index def9f0f9803e71cbe57abcffeb9114a5ab462e54..d149dd1d3d2703a428006e0c3ab5f925
2121
+ */
2222
+ public boolean lineOfSightExists(@NotNull Location from, @NotNull Location to);
2323
// Paper end
24-
25-
/**
24+
}
2625
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
2726
index 330eab77547ae059f716418f71ad1d3391a57a9b..cda05df6784dd4d6a09710a416dcb71c016dabfc 100644
2827
--- a/src/main/java/org/bukkit/entity/LivingEntity.java

patches/api/0330-Add-methods-to-find-targets-for-lightning-strikes.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Subject: [PATCH] Add methods to find targets for lightning strikes
55

66

77
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
8-
index 4b4b286e9373da2624a29e17df7e54f5e47c3f7d..2007e09322624184ea35186a9b1c2ee80294a38f 100644
8+
index 6864f71977196a2d8b685da5ea9ddc435ae5bc06..6b8b26305dfd9b2b4e3b3e2c6ab48e0dda2864e1 100644
99
--- a/src/main/java/org/bukkit/World.java
1010
+++ b/src/main/java/org/bukkit/World.java
11-
@@ -760,6 +760,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
11+
@@ -746,6 +746,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
1212
@NotNull
1313
public LightningStrike strikeLightningEffect(@NotNull Location loc);
1414

patches/api/0365-Implement-regenerateChunk.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement regenerateChunk
55

66

77
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
8-
index 887ad76c3ea44f0dcfcd21f30c0883e023f1ac3a..3421be8309c9083c0aaa80afec13c8acc4fc85dd 100644
8+
index 6b8b26305dfd9b2b4e3b3e2c6ab48e0dda2864e1..7ad1cabe05277c1f3238da6e121c35d8a9f0d952 100644
99
--- a/src/main/java/org/bukkit/World.java
1010
+++ b/src/main/java/org/bukkit/World.java
11-
@@ -509,8 +509,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
11+
@@ -495,8 +495,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
1212
* @return Whether the chunk was actually regenerated
1313
*
1414
* @deprecated regenerating a single chunk is not likely to produce the same

patches/api/0374-Add-getComputedBiome-API.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ Subject: [PATCH] Add getComputedBiome API
55

66

77
diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
8-
index e55f6e2baf35dbd91c433ab9e62713eaac85435b..1d7560a3b2de23e16486608f3785a5dccc296158 100644
8+
index 43b53c21af01e0f496c8aaacff82dfdfadaf40f6..3f7e860de4e28745fcdf8d2f41f4a8c210f48909 100644
99
--- a/src/main/java/org/bukkit/RegionAccessor.java
1010
+++ b/src/main/java/org/bukkit/RegionAccessor.java
11-
@@ -26,6 +26,7 @@ public interface RegionAccessor {
11+
@@ -26,6 +26,7 @@ public interface RegionAccessor extends Keyed { // Paper
1212
*
1313
* @param location the location of the biome
1414
* @return Biome at the given location
1515
+ * @see #getComputedBiome(int, int, int)
1616
*/
1717
@NotNull
1818
Biome getBiome(@NotNull Location location);
19-
@@ -37,10 +38,33 @@ public interface RegionAccessor {
19+
@@ -37,10 +38,33 @@ public interface RegionAccessor extends Keyed { // Paper
2020
* @param y Y-coordinate of the block
2121
* @param z Z-coordinate of the block
2222
* @return Biome at the given coordinates

patches/server/0485-Add-moon-phase-API.patch

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ Date: Sun, 23 Aug 2020 16:32:11 +0200
44
Subject: [PATCH] Add moon phase API
55

66

7-
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
8-
index f7d5c6aa18ee44e0a6651ed73c922a973bb809b3..c39d5dd9602fe35b4936f01089a3b2048ef0c9bf 100644
9-
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
10-
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
11-
@@ -195,6 +195,11 @@ public class CraftWorld extends CraftRegionAccessor implements World {
12-
public int getPlayerCount() {
13-
return world.players().size();
7+
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
8+
index 9d247664e5867a31376b3681b7ed0c3404ea46d8..89f75b79e8501097d2411b12ae79bb073cadba7a 100644
9+
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
10+
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
11+
@@ -907,4 +907,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
12+
13+
throw new IllegalArgumentException("Cannot spawn an entity for " + clazz.getName());
1414
}
1515
+
16+
+ // Paper start
1617
+ @Override
1718
+ public io.papermc.paper.world.MoonPhase getMoonPhase() {
18-
+ return io.papermc.paper.world.MoonPhase.getPhase(getFullTime() / 24000L);
19+
+ return io.papermc.paper.world.MoonPhase.getPhase(this.getHandle().dayTime() / 24000L);
1920
+ }
20-
// Paper end
21-
22-
private static final Random rand = new Random();
21+
+ // Paper end
22+
}

patches/server/0562-Added-WorldGameRuleChangeEvent.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ index 74e10d581f8c1b0b026d8f940194971efbdef434..798afc145c54306fcf0838d8daef2bdf
6464

6565
public int get() {
6666
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
67-
index c39d5dd9602fe35b4936f01089a3b2048ef0c9bf..b0e5da5c4515b580b2655cf5a9cb74d1bd9dd9a1 100644
67+
index f7d5c6aa18ee44e0a6651ed73c922a973bb809b3..6777b678efebc5eee72b2aa368309aea3191157f 100644
6868
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
6969
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
70-
@@ -1803,8 +1803,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
70+
@@ -1798,8 +1798,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
7171

7272
if (!this.isGameRule(rule)) return false;
7373

@@ -82,7 +82,7 @@ index c39d5dd9602fe35b4936f01089a3b2048ef0c9bf..b0e5da5c4515b580b2655cf5a9cb74d1
8282
handle.onChanged(this.getHandle().getServer());
8383
return true;
8484
}
85-
@@ -1839,8 +1844,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
85+
@@ -1834,8 +1839,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
8686

8787
if (!this.isGameRule(rule.getName())) return false;
8888

patches/server/0609-Add-methods-to-get-world-by-key.patch renamed to patches/server/0609-Expand-world-key-API.patch

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,26 @@
11
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Jake Potrebic <jake.m.potrebic@gmail.com>
33
Date: Wed, 6 Jan 2021 00:34:04 -0800
4-
Subject: [PATCH] Add methods to get world by key
4+
Subject: [PATCH] Expand world key API
55

66

7+
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
8+
index 89f75b79e8501097d2411b12ae79bb073cadba7a..cd359e6576e69184935b0852ffc6b9fb57181730 100644
9+
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
10+
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
11+
@@ -913,5 +913,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
12+
public io.papermc.paper.world.MoonPhase getMoonPhase() {
13+
return io.papermc.paper.world.MoonPhase.getPhase(this.getHandle().dayTime() / 24000L);
14+
}
15+
+
16+
+ @Override
17+
+ public org.bukkit.NamespacedKey getKey() {
18+
+ return org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.getHandle().getLevel().dimension().location());
19+
+ }
20+
// Paper end
21+
}
722
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
8-
index ce93a00aba502b6d3e962c9396a82ae2587a6b52..b651a9d86a5b0e7ec2b10d2e756bbac4624f7f9c 100644
23+
index a4e34932e8fadf834545db6533219ecf2bf52921..6fa21f806567bc41bacd2949d7171979bc34ac6e 100644
924
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
1025
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
1126
@@ -1138,9 +1138,15 @@ public final class CraftServer implements Server {

0 commit comments

Comments
 (0)