From 836fb1621088d80fba918376e59d018e4006ebc0 Mon Sep 17 00:00:00 2001
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
Date: Wed, 23 Jul 2025 15:10:26 +0300
Subject: [PATCH] Update to 1.21.8
Upstream has released updates that appear to apply and compile correctly
Purpur Changes:
PurpurMC/Purpur@a39c4cb0 Updated Upstream (Paper)
PurpurMC/Purpur@ea7b18ab Updated Upstream (Paper)
PurpurMC/Purpur@0f82c210 Updated Upstream (Paper)
PurpurMC/Purpur@8de15d66 this is important for the build to not fail..
PurpurMC/Purpur@5053eb0c use a different method for dropping lapis, closes #1692
---
.../{build-1217.yml => build-1218.yml} | 4 ++--
.github/workflows/build-pr.yml | 2 +-
.github/workflows/publish-api.yml | 2 +-
README.md | 8 +++----
divinemc-api/build.gradle.kts.patch | 8 +++----
.../features/0005-Extend-Location-API.patch | 4 ++--
.../features/0006-Extend-Sound-API.patch | 6 ++---
...0010-Vectorized-map-color-conversion.patch | 4 ++--
divinemc-server/build.gradle.kts.patch | 24 ++++++-------------
.../0053-Regionized-Chunk-Ticking.patch | 4 ++--
...PR-Optimise-non-flush-packet-sending.patch | 8 +++----
.../0063-Cleanup-dead-code-from-Paper.patch | 4 ++--
...-Optimize-default-values-for-configs.patch | 20 ++++++++--------
.../features/0010-Smooth-teleport-API.patch | 4 ++--
...-SparklyPaper-Optimize-canSee-checks.patch | 6 ++---
.../0014-Petal-Multithreaded-Tracker.patch | 4 ++--
...-SparklyPaper-Parallel-world-ticking.patch | 14 +++++------
gradle.properties | 6 ++---
scripts/releaseInfo.sh | 2 +-
19 files changed, 62 insertions(+), 72 deletions(-)
rename .github/workflows/{build-1217.yml => build-1218.yml} (98%)
diff --git a/.github/workflows/build-1217.yml b/.github/workflows/build-1218.yml
similarity index 98%
rename from .github/workflows/build-1217.yml
rename to .github/workflows/build-1218.yml
index e1452c5..4e84cb2 100644
--- a/.github/workflows/build-1217.yml
+++ b/.github/workflows/build-1218.yml
@@ -1,9 +1,9 @@
-name: Build DivineMC 1.21.7
+name: Build DivineMC 1.21.8
on:
push:
branches:
- - "ver/1.21.7"
+ - "ver/1.21.8"
workflow_dispatch:
jobs:
diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml
index 68df3c0..230c0b0 100644
--- a/.github/workflows/build-pr.yml
+++ b/.github/workflows/build-pr.yml
@@ -2,7 +2,7 @@ name: Build Pull Request
on:
pull_request:
- branches: [ "ver/1.21.7" ]
+ branches: [ "ver/1.21.8" ]
jobs:
build:
diff --git a/.github/workflows/publish-api.yml b/.github/workflows/publish-api.yml
index d5acf0e..e5802fe 100644
--- a/.github/workflows/publish-api.yml
+++ b/.github/workflows/publish-api.yml
@@ -2,7 +2,7 @@ name: Publish API
on:
push:
- branches: [ "ver/1.21.7" ]
+ branches: [ "ver/1.21.8" ]
workflow_dispatch:
jobs:
diff --git a/README.md b/README.md
index 81ee0c6..c90cdb1 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
# DivineMC
[](https://github.com/BX-Team/DivineMC/releases)
-[](https://github.com/BX-Team/DivineMC/actions)
+[](https://github.com/BX-Team/DivineMC/actions)
[](https://discord.gg/qNyybSSPm5)
DivineMC is a multi-functional fork of [Purpur](https://github.com/PurpurMC/Purpur), which focuses on the flexibility of your server and its optimization
@@ -55,7 +55,7 @@ For anything else you can refer to our [contribution guide](https://bxteam.org/d
org.bxteam.divinemc
divinemc-api
- 1.21.7-R0.1-SNAPSHOT
+ 1.21.8-R0.1-SNAPSHOT
provided
```
@@ -68,11 +68,11 @@ repositories {
```
```kotlin
dependencies {
- compileOnly("org.bxteam.divinemc:divinemc-api:1.21.7-R0.1-SNAPSHOT")
+ compileOnly("org.bxteam.divinemc:divinemc-api:1.21.8-R0.1-SNAPSHOT")
}
```
-We also have a [Javadoc](https://repo.bxteam.org/javadoc/snapshots/org/bxteam/divinemc/divinemc-api/1.21.7-R0.1-SNAPSHOT/raw/index.html) for the API.
+We also have a [Javadoc](https://repo.bxteam.org/javadoc/snapshots/org/bxteam/divinemc/divinemc-api/1.21.8-R0.1-SNAPSHOT/raw/index.html) for the API.
## ⚖️ License
DivineMC is licensed under the GNU General Public License v3.0. You can find the license [here](LICENSE).
diff --git a/divinemc-api/build.gradle.kts.patch b/divinemc-api/build.gradle.kts.patch
index 9c3553e..0f1675d 100644
--- a/divinemc-api/build.gradle.kts.patch
+++ b/divinemc-api/build.gradle.kts.patch
@@ -37,12 +37,12 @@
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
- api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins
-- compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
-- compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+- implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
+- implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+ // DivineMC start - Bump dependencies
+ api("org.apache.maven:maven-resolver-provider:3.9.9") // make API dependency for Paper Plugins
-+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22")
-+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22")
++ implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22")
++ implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22")
+ // DivineMC end - Bump dependencies
// Annotations - Slowly migrate to jspecify
diff --git a/divinemc-api/paper-patches/features/0005-Extend-Location-API.patch b/divinemc-api/paper-patches/features/0005-Extend-Location-API.patch
index ed77626..91a1370 100644
--- a/divinemc-api/paper-patches/features/0005-Extend-Location-API.patch
+++ b/divinemc-api/paper-patches/features/0005-Extend-Location-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Extend Location API
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
-index 47f667ccc86086d27d8649dd01f5867610556c60..3f8ca9dfcf695f52393af117f14d8b0586fb6cfa 100644
+index 1e75bc2f5772e18c082feb7f3c6419c85519ef40..7e6795f5ed0ef46440ff36b03ec7602da6096b8a 100644
--- a/src/main/java/org/bukkit/Location.java
+++ b/src/main/java/org/bukkit/Location.java
-@@ -1271,4 +1271,170 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
+@@ -1282,4 +1282,170 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
public @NotNull Location toLocation(@NotNull World world) {
return new Location(world, this.x(), this.y(), this.z(), this.getYaw(), this.getPitch());
}
diff --git a/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch b/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch
index 3f5af41..348af18 100644
--- a/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch
+++ b/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Extend Sound API
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
-index 32f5d2631b6807021c4a810fd577d83a268763a5..d5e4280269fa4588b502df5393834177374bcce2 100644
+index 318bb02fe2921e5c41e7473500d1cf4dacf0c781..0f35f958c5c90dd4ac2ca80fdce53e73b644ab90 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
-@@ -824,4 +824,29 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
+@@ -836,4 +836,29 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
* @return {@code true} if the block can suffocate
*/
boolean isSuffocating();
@@ -39,7 +39,7 @@ index 32f5d2631b6807021c4a810fd577d83a268763a5..d5e4280269fa4588b502df5393834177
+ // DivineMC end - Extend Sound API
}
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
-index b6ee04873c1ee57f7e8804f6d247806f2c0e448f..116428b3482871c4f26c7244bb8b5a0dd846192e 100644
+index a3d2013adf038f1fe96127c5dba442ffd2e031a8..e93bdf925505b00454a93207e12d1f21c8cb6af3 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -1316,4 +1316,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
diff --git a/divinemc-api/paper-patches/features/0010-Vectorized-map-color-conversion.patch b/divinemc-api/paper-patches/features/0010-Vectorized-map-color-conversion.patch
index abc0dcd..1805003 100644
--- a/divinemc-api/paper-patches/features/0010-Vectorized-map-color-conversion.patch
+++ b/divinemc-api/paper-patches/features/0010-Vectorized-map-color-conversion.patch
@@ -13,7 +13,7 @@ This patch does not add any API that should be used by plugins. Any
classes and methods added by this patch should NOT be used in plugins.
diff --git a/src/main/java/org/bukkit/map/MapPalette.java b/src/main/java/org/bukkit/map/MapPalette.java
-index 2b9e4aa8cf35e7106e510e547954ee7e1bcf3d81..482a08c38748d82313e02f6f699006aa83a071bc 100644
+index 204860b32b4958a2804b2e5bc82f5be099e461f3..b3933fea40c5902f545fa0230b818d2ef3c2a675 100644
--- a/src/main/java/org/bukkit/map/MapPalette.java
+++ b/src/main/java/org/bukkit/map/MapPalette.java
@@ -35,7 +35,7 @@ public final class MapPalette {
@@ -23,7 +23,7 @@ index 2b9e4aa8cf35e7106e510e547954ee7e1bcf3d81..482a08c38748d82313e02f6f699006aa
- static final Color[] colors = {
+ public static final Color[] colors = { // DivineMC - Vectorized map color conversion - package -> public
// Start generate - MapPalette#colors
- // @GeneratedFrom 1.21.7
+ // @GeneratedFrom 1.21.8
new Color(0x00000000, true),
@@ -395,9 +395,15 @@ public final class MapPalette {
temp.getRGB(0, 0, temp.getWidth(), temp.getHeight(), pixels, 0, temp.getWidth());
diff --git a/divinemc-server/build.gradle.kts.patch b/divinemc-server/build.gradle.kts.patch
index d3df812..2a307f6 100644
--- a/divinemc-server/build.gradle.kts.patch
+++ b/divinemc-server/build.gradle.kts.patch
@@ -7,7 +7,7 @@
+val bxTeamMavenPublicUrl = "https://repo.bxteam.org/snapshots/"
dependencies {
- mache("io.papermc:mache:1.21.7+build.2")
+ mache("io.papermc:mache:1.21.8+build.1")
@@ -29,6 +_,7 @@
// Purpur start - Rebrand
@@ -116,9 +116,9 @@
+ implementation("io.netty:netty-codec-haproxy:4.1.119.Final") // Add support for proxy protocol // DivineMC - Bump dependencies
+ implementation("org.apache.logging.log4j:log4j-iostreams:2.24.3") // DivineMC - Bump dependencies
implementation("org.ow2.asm:asm-commons:9.8")
- implementation("org.spongepowered:configurate-yaml:4.2.0-20250225.064233-199")
- implementation("org.spongepowered:configurate-core:4.2.0-20250225.064233-204") // Pinned dependency of above pinned yaml snapshot.
-@@ -191,24 +_,31 @@
+ implementation("org.spongepowered:configurate-yaml:4.2.0")
+
+@@ -190,7 +_,12 @@
// Deps that were previously in the API but have now been moved here for backwards compat, eventually to be removed
runtimeOnly("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0")
@@ -132,17 +132,7 @@
runtimeOnly("com.lmax:disruptor:3.4.4")
implementation("com.googlecode.json-simple:json-simple:1.1.1") { // change to runtimeOnly once Timings is removed
isTransitive = false // includes junit
- }
-
-- runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6")
-- runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
-- runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
-+ // DivineMC start - Bump dependencies
-+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.9")
-+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22")
-+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22")
-+ // DivineMC end - Bump dependencies
-
+@@ -199,11 +_,11 @@
testImplementation("io.github.classgraph:classgraph:4.8.179") // For mob goal test
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
testImplementation("org.junit.platform:junit-platform-suite-engine:1.12.2")
@@ -158,7 +148,7 @@
implementation("net.neoforged:srgutils:1.0.9") // Mappings handling
implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins
-@@ -224,30 +_,42 @@
+@@ -219,30 +_,42 @@
implementation("me.lucko:spark-paper:1.10.133-20250413.112336-1")
}
@@ -208,7 +198,7 @@
)
for (tld in setOf("net", "com", "org")) {
attributes("$tld/bukkit", "Sealed" to true)
-@@ -333,7 +_,7 @@
+@@ -328,7 +_,7 @@
block: JavaExec.() -> Unit
): TaskProvider = register(name) {
group = "runs"
diff --git a/divinemc-server/minecraft-patches/features/0053-Regionized-Chunk-Ticking.patch b/divinemc-server/minecraft-patches/features/0053-Regionized-Chunk-Ticking.patch
index 9231c3b..3d114d1 100644
--- a/divinemc-server/minecraft-patches/features/0053-Regionized-Chunk-Ticking.patch
+++ b/divinemc-server/minecraft-patches/features/0053-Regionized-Chunk-Ticking.patch
@@ -8,10 +8,10 @@ This patch adds regionized chunk ticking feature, by grouping adjacent chunks in
Original idea by Dueris, modified by NONPLAYT and heavily optimized by dan28000
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
-index e72eda830644851656fae3118c513d7bd701be45..4ab30d291de7db5ad7d5684662f41348270802b9 100644
+index 411e1284a208ca1a097cf6eaa92e1e0d2203d83d..3f60d1b0ac91cfd3418e791222cd7267774b367a 100644
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
-@@ -326,7 +326,7 @@ public class Connection extends SimpleChannelInboundHandler> {
+@@ -327,7 +327,7 @@ public class Connection extends SimpleChannelInboundHandler> {
private static void syncAfterConfigurationChange(ChannelFuture future) {
try {
diff --git a/divinemc-server/minecraft-patches/features/0061-Paper-PR-Optimise-non-flush-packet-sending.patch b/divinemc-server/minecraft-patches/features/0061-Paper-PR-Optimise-non-flush-packet-sending.patch
index ef4f93b..fcaea45 100644
--- a/divinemc-server/minecraft-patches/features/0061-Paper-PR-Optimise-non-flush-packet-sending.patch
+++ b/divinemc-server/minecraft-patches/features/0061-Paper-PR-Optimise-non-flush-packet-sending.patch
@@ -24,10 +24,10 @@ up on this optimisation before he came along.
Locally this patch drops the entity tracker tick by a full 1.5x.
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
-index 4ab30d291de7db5ad7d5684662f41348270802b9..8bb7d9f2bce06880164f0ae36e1674e9dc380809 100644
+index 3f60d1b0ac91cfd3418e791222cd7267774b367a..882a912ba3f23ee8239c24068704d9ec9a7f7c40 100644
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
-@@ -149,6 +149,7 @@ public class Connection extends SimpleChannelInboundHandler> {
+@@ -150,6 +150,7 @@ public class Connection extends SimpleChannelInboundHandler> {
// Paper start - Optimize network
public boolean isPending = true;
public boolean queueImmunity;
@@ -35,7 +35,7 @@ index 4ab30d291de7db5ad7d5684662f41348270802b9..8bb7d9f2bce06880164f0ae36e1674e9
// Paper end - Optimize network
public Connection(PacketFlow receiving) {
-@@ -159,6 +160,7 @@ public class Connection extends SimpleChannelInboundHandler> {
+@@ -160,6 +161,7 @@ public class Connection extends SimpleChannelInboundHandler> {
public void channelActive(ChannelHandlerContext context) throws Exception {
super.channelActive(context);
this.channel = context.channel();
@@ -43,7 +43,7 @@ index 4ab30d291de7db5ad7d5684662f41348270802b9..8bb7d9f2bce06880164f0ae36e1674e9
this.address = this.channel.remoteAddress();
this.preparing = false; // Spigot
if (this.delayedDisconnect != null) {
-@@ -473,7 +475,13 @@ public class Connection extends SimpleChannelInboundHandler> {
+@@ -474,7 +476,13 @@ public class Connection extends SimpleChannelInboundHandler> {
if (this.channel.eventLoop().inEventLoop()) {
this.doSendPacket(packet, channelFutureListener, flag);
} else {
diff --git a/divinemc-server/minecraft-patches/features/0063-Cleanup-dead-code-from-Paper.patch b/divinemc-server/minecraft-patches/features/0063-Cleanup-dead-code-from-Paper.patch
index 2cc7ab7..d875a85 100644
--- a/divinemc-server/minecraft-patches/features/0063-Cleanup-dead-code-from-Paper.patch
+++ b/divinemc-server/minecraft-patches/features/0063-Cleanup-dead-code-from-Paper.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Cleanup dead code from Paper
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
-index 8bb7d9f2bce06880164f0ae36e1674e9dc380809..04d47ef66f17daf3dfc9223c9f382e058d09a10b 100644
+index 882a912ba3f23ee8239c24068704d9ec9a7f7c40..8a3e7aff7892140bd6caac2e7f8a29075d50459d 100644
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
-@@ -609,13 +609,7 @@ public class Connection extends SimpleChannelInboundHandler> {
+@@ -610,13 +610,7 @@ public class Connection extends SimpleChannelInboundHandler> {
if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener)
|| loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING
|| Connection.joinAttemptsThisTick++ < MAX_PER_TICK) {
diff --git a/divinemc-server/paper-patches/features/0008-Optimize-default-values-for-configs.patch b/divinemc-server/paper-patches/features/0008-Optimize-default-values-for-configs.patch
index 8c164d6..31cae17 100644
--- a/divinemc-server/paper-patches/features/0008-Optimize-default-values-for-configs.patch
+++ b/divinemc-server/paper-patches/features/0008-Optimize-default-values-for-configs.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimize default values for configs
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
-index c5a491acfe4b93bfa8fd21861edbaf464a178bf3..f572613f3b2aeacfbfcd0a5f96048f55ec2384b9 100644
+index 3f5e76e4df8ff8152060449f89b522910adee834..4eb45775c7ada4fd4137c87104580314f888bc50 100644
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
-@@ -348,8 +348,8 @@ public class GlobalConfiguration extends ConfigurationPart {
+@@ -349,8 +349,8 @@ public class GlobalConfiguration extends ConfigurationPart {
@Constraints.Min(4)
public int regionFileCacheSize = 256;
@Comment("See https://luckformula.emc.gs")
@@ -20,7 +20,7 @@ index c5a491acfe4b93bfa8fd21861edbaf464a178bf3..f572613f3b2aeacfbfcd0a5f96048f55
public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT;
@Comment("Defines the leniency distance added on the server to the interaction range of a player when validating interact packets.")
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
-index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d4790bd92 100644
+index 7100a3fce29ef0cbbdb3659835a0896e168c5803..8e695b602b95ff6a85316e19d24be94b31ff9558 100644
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
@@ -148,8 +148,10 @@ public class WorldConfiguration extends ConfigurationPart {
@@ -36,7 +36,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
}
public Markers markers;
-@@ -275,8 +277,38 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -274,8 +276,38 @@ public class WorldConfiguration extends ConfigurationPart {
public AltItemDespawnRate altItemDespawnRate;
public class AltItemDespawnRate extends ConfigurationPart {
@@ -77,7 +77,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
}
}
-@@ -419,7 +451,7 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -418,7 +450,7 @@ public class WorldConfiguration extends ConfigurationPart {
public class Environment extends ConfigurationPart {
public boolean disableThunder = false;
public boolean disableIceAndSnow = false;
@@ -86,7 +86,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
public boolean disableExplosionKnockback = false;
public boolean generateFlatBedrock = false;
public FrostedIce frostedIce;
-@@ -472,7 +504,7 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -471,7 +503,7 @@ public class WorldConfiguration extends ConfigurationPart {
public Fixes fixes;
public class Fixes extends ConfigurationPart {
@@ -95,7 +95,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
public boolean disableUnloadedChunkEnderpearlExploit = false;
public boolean preventTntFromMovingInWater = false;
public boolean splitOverstackedLoot = true;
-@@ -500,9 +532,9 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -499,9 +531,9 @@ public class WorldConfiguration extends ConfigurationPart {
public class Collisions extends ConfigurationPart {
public boolean onlyPlayersCollide = false;
public boolean allowVehicleCollisions = true;
@@ -107,7 +107,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
public boolean allowPlayerCrammingDamage = false;
}
-@@ -512,16 +544,33 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -511,16 +543,33 @@ public class WorldConfiguration extends ConfigurationPart {
public AutosavePeriod autoSaveInterval = AutosavePeriod.def();
public int maxAutoSaveChunksPerTick = 24;
public int fixedChunkInhabitedTime = -1;
@@ -148,7 +148,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
});
public boolean flushRegionsOnSave = false;
-@@ -541,9 +590,9 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -540,9 +589,9 @@ public class WorldConfiguration extends ConfigurationPart {
public TickRates tickRates;
public class TickRates extends ConfigurationPart {
@@ -160,7 +160,7 @@ index ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7..b01509c5d579c57e3be019f8fb850a8d
public int wetFarmland = 1;
public int dryFarmland = 1;
public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40));
-@@ -578,7 +627,7 @@ public class WorldConfiguration extends ConfigurationPart {
+@@ -577,7 +626,7 @@ public class WorldConfiguration extends ConfigurationPart {
public class Misc extends ConfigurationPart {
public boolean updatePathfindingOnBlockUpdate = true;
public boolean showSignClickCommandFailureMsgsToPlayer = false;
diff --git a/divinemc-server/paper-patches/features/0010-Smooth-teleport-API.patch b/divinemc-server/paper-patches/features/0010-Smooth-teleport-API.patch
index 65ad7f4..973527f 100644
--- a/divinemc-server/paper-patches/features/0010-Smooth-teleport-API.patch
+++ b/divinemc-server/paper-patches/features/0010-Smooth-teleport-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Smooth teleport API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 218556fdaf4ea4993864e22530b4bad3335a535d..6a1ac6cdd0cf4f6a62216c264f6fd3cd25476254 100644
+index aed79c57a691eb9a100e566c4d1163181af0b360..445970cf0f7d4c9955324ae9d3ade9f5db659930 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1455,6 +1455,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
+@@ -1454,6 +1454,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
// Paper end - Teleportation API
}
diff --git a/divinemc-server/paper-patches/features/0011-SparklyPaper-Optimize-canSee-checks.patch b/divinemc-server/paper-patches/features/0011-SparklyPaper-Optimize-canSee-checks.patch
index ddac190..8a51146 100644
--- a/divinemc-server/paper-patches/features/0011-SparklyPaper-Optimize-canSee-checks.patch
+++ b/divinemc-server/paper-patches/features/0011-SparklyPaper-Optimize-canSee-checks.patch
@@ -14,7 +14,7 @@ This seems stupid, but it does seem that it improves the performance a bit, and
We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c22d489e3584e0a938e2f8afd3e201987c92b8f2..4913ac7d0426025689c8aee3790d87f7ac0131fd 100644
+index 445970cf0f7d4c9955324ae9d3ade9f5db659930..5164bdd2567d0055e7717701fa5028652759476b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -217,7 +217,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -24,9 +24,9 @@ index c22d489e3584e0a938e2f8afd3e201987c92b8f2..4913ac7d0426025689c8aee3790d87f7
- private final Map>> invertedVisibilityEntities = new HashMap<>();
+ private final Map>> invertedVisibilityEntities = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(); // DivineMC - SparklyPaper: Optimize "canSee" checks
private final Set unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
- public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
private long firstPlayed = 0;
-@@ -2354,9 +2354,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
+ private long lastPlayed = 0;
+@@ -2353,9 +2353,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {
diff --git a/divinemc-server/paper-patches/features/0014-Petal-Multithreaded-Tracker.patch b/divinemc-server/paper-patches/features/0014-Petal-Multithreaded-Tracker.patch
index 32a97a2..9eedcad 100644
--- a/divinemc-server/paper-patches/features/0014-Petal-Multithreaded-Tracker.patch
+++ b/divinemc-server/paper-patches/features/0014-Petal-Multithreaded-Tracker.patch
@@ -32,10 +32,10 @@ index d7398b1ecf2660c29fb7d106b48fe02d3736603e..ab499a7eaccdc1578ec64f90f54f79b0
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4913ac7d0426025689c8aee3790d87f7ac0131fd..d4d3aeae964d9a64805ddc5862e46fff5dd7d98a 100644
+index 5164bdd2567d0055e7717701fa5028652759476b..b84c9ed7b10f2c40f04bed19cbc1109814632972 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2953,7 +2953,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
+@@ -2952,7 +2952,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
AttributeInstance genericInstance = iterator.next();
diff --git a/divinemc-server/paper-patches/features/0017-SparklyPaper-Parallel-world-ticking.patch b/divinemc-server/paper-patches/features/0017-SparklyPaper-Parallel-world-ticking.patch
index ed685e9..53561aa 100644
--- a/divinemc-server/paper-patches/features/0017-SparklyPaper-Parallel-world-ticking.patch
+++ b/divinemc-server/paper-patches/features/0017-SparklyPaper-Parallel-world-ticking.patch
@@ -330,7 +330,7 @@ index cd43af3f442f7d8af1a4552a0eff33958873a366..cf4967875c2d9e87da86645e5a1f0cba
}
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index a4d5c65edc1db59f3486ce5d3757cc306211a54b..d8f68164b0b4430ccdc7e4a419eace7185c82cd1 100644
+index 7a0d37dec5a1af05a4fb78f791a9bd652aaf4806..92487ba35bb0a5584b16ee6c3234aa3430c9ebce 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
@@ -75,6 +75,11 @@ public class CraftBlock implements Block {
@@ -439,7 +439,7 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..d8f68164b0b4430ccdc7e4a419eace71
return this.breakNaturally(null);
}
-@@ -542,6 +587,11 @@ public class CraftBlock implements Block {
+@@ -548,6 +593,11 @@ public class CraftBlock implements Block {
@Override
public boolean applyBoneMeal(BlockFace face) {
@@ -451,7 +451,7 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..d8f68164b0b4430ccdc7e4a419eace71
Direction direction = CraftBlock.blockFaceToNotch(face);
BlockFertilizeEvent event = null;
ServerLevel world = this.getCraftWorld().getHandle();
-@@ -553,8 +603,10 @@ public class CraftBlock implements Block {
+@@ -559,8 +609,10 @@ public class CraftBlock implements Block {
world.captureTreeGeneration = false;
if (!world.capturedBlockStates.isEmpty()) {
@@ -464,7 +464,7 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..d8f68164b0b4430ccdc7e4a419eace71
List states = new ArrayList<>(world.capturedBlockStates.values());
world.capturedBlockStates.clear();
StructureGrowEvent structureEvent = null;
-@@ -644,6 +696,11 @@ public class CraftBlock implements Block {
+@@ -650,6 +702,11 @@ public class CraftBlock implements Block {
@Override
public RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode) {
@@ -476,7 +476,7 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..d8f68164b0b4430ccdc7e4a419eace71
Preconditions.checkArgument(start != null, "Location start cannot be null");
Preconditions.checkArgument(this.getWorld().equals(start.getWorld()), "Location start cannot be a different world");
start.checkFinite();
-@@ -685,6 +742,11 @@ public class CraftBlock implements Block {
+@@ -691,6 +748,11 @@ public class CraftBlock implements Block {
@Override
public boolean canPlace(BlockData data) {
@@ -488,7 +488,7 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..d8f68164b0b4430ccdc7e4a419eace71
Preconditions.checkArgument(data != null, "BlockData cannot be null");
net.minecraft.world.level.block.state.BlockState iblockdata = ((CraftBlockData) data).getState();
net.minecraft.world.level.Level world = this.world.getMinecraftWorld();
-@@ -724,6 +786,11 @@ public class CraftBlock implements Block {
+@@ -730,6 +792,11 @@ public class CraftBlock implements Block {
@Override
public void tick() {
@@ -569,7 +569,7 @@ index 196835bdf95ba0e149b2977e9ef41698971f501f..b35dbe2b6e75ec89483aef093474c675
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
-index a43f3d6e54de52da6b1ee050aefd0028a1adafcf..e36e3822abdf805b3318d1b0d0f92c17131f1699 100644
+index 7d9f79eec2cb36a88b3b25154a02f2aee7ec1e21..02664f27a81e7836ba7d307d7b45988d329a4437 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
@@ -195,14 +195,16 @@ public final class CraftBlockStates {
diff --git a/gradle.properties b/gradle.properties
index a263243..3077600 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,8 +1,8 @@
group = org.bxteam.divinemc
-version=1.21.7-R0.1-SNAPSHOT
+version=1.21.8-R0.1-SNAPSHOT
-mcVersion=1.21.7
-purpurRef=60bdf1c78142536433c1bb7850ffe5235f5fdeba
+mcVersion=1.21.8
+purpurRef=5053eb0c5dc9662ffb39ae7c39c6ca08c013d898
experimental=false
#org.gradle.configuration-cache=true
diff --git a/scripts/releaseInfo.sh b/scripts/releaseInfo.sh
index a2ad3a5..455bd7c 100644
--- a/scripts/releaseInfo.sh
+++ b/scripts/releaseInfo.sh
@@ -48,7 +48,7 @@ mv divinemc-server/build/libs/divinemc-shuttle-"$version"-mojmap.jar "$jarName"
fi
} >> $changelog
-number=$(git log --oneline ver/1.21.7 ^"$(git describe --tags --abbrev=0)" | wc -l)
+number=$(git log --oneline ver/1.21.8 ^"$(git describe --tags --abbrev=0)" | wc -l)
git log --pretty='- [`%h`](https://github.com/BX-Team/DivineMC/commit/%H) %s' "-$number" >> $changelog
{