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 348af18..ff0735f 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 318bb02fe2921e5c41e7473500d1cf4dacf0c781..0f35f958c5c90dd4ac2ca80fdce53e73b644ab90 100644 +index fbee4ab2faaeba8d798aaba2e1837315ed56a184..581d71e716e8ecfe9ab2c4d3947c86c608dcbf89 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -836,4 +836,29 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr +@@ -834,4 +834,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 318bb02fe2921e5c41e7473500d1cf4dacf0c781..0f35f958c5c90dd4ac2ca80fdce53e73 + // 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 a3d2013adf038f1fe96127c5dba442ffd2e031a8..e93bdf925505b00454a93207e12d1f21c8cb6af3 100644 +index 995e419ae77afad15aa2729277f81016f382e543..dfd6138ad4040eedd1b413c9c6087071afd6af84 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-server/build.gradle.kts.patch b/divinemc-server/build.gradle.kts.patch index b61b476..6fb724b 100644 --- a/divinemc-server/build.gradle.kts.patch +++ b/divinemc-server/build.gradle.kts.patch @@ -1,14 +1,14 @@ --- a/purpur-server/build.gradle.kts +++ b/purpur-server/build.gradle.kts -@@ -16,6 +_,7 @@ +@@ -13,6 +_,7 @@ } val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/" +val bxTeamMavenPublicUrl = "https://repo.bxteam.org/snapshots/" dependencies { - mache("io.papermc:mache:1.21.10+build.1") -@@ -29,6 +_,7 @@ + mache("io.papermc:mache:1.21.10+build.4") +@@ -26,6 +_,7 @@ // Purpur start - Rebrand val purpur = forks.register("purpur") { @@ -16,7 +16,7 @@ upstream.patchDir("paperServer") { upstreamPath = "paper-server" excludes = setOf("src/minecraft", "patches", "build.gradle.kts") -@@ -36,9 +_,27 @@ +@@ -33,9 +_,27 @@ outputDir = rootDirectory.dir("paper-server") } } @@ -45,7 +45,7 @@ spigot { enabled = true buildDataRef = "42d18d4c4653ffc549778dbe223f6994a031d69e" -@@ -62,6 +_,7 @@ +@@ -59,6 +_,7 @@ libraryRepositories.addAll( "https://repo.maven.apache.org/maven2/", paperMavenPublicUrl, @@ -53,7 +53,7 @@ ) } -@@ -125,10 +_,18 @@ +@@ -122,10 +_,18 @@ main { java { srcDir("../paper-server/src/main/java") } resources { srcDir("../paper-server/src/main/resources") } @@ -72,7 +72,7 @@ } } val log4jPlugins = sourceSets.create("log4jPlugins") { -@@ -157,10 +_,22 @@ +@@ -154,10 +_,22 @@ } dependencies { @@ -98,7 +98,7 @@ implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.kyori:adventure-text-serializer-ansi") -@@ -170,16 +_,16 @@ +@@ -167,16 +_,16 @@ all its classes to check if they are plugins. Scanning takes about 1-2 seconds so adding this speeds up the server start. */ @@ -119,7 +119,7 @@ implementation("org.ow2.asm:asm-commons:9.8") implementation("org.spongepowered:configurate-yaml:4.2.0") -@@ -190,7 +_,12 @@ +@@ -187,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") @@ -133,7 +133,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 -@@ -199,11 +_,11 @@ +@@ -196,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") @@ -149,7 +149,7 @@ implementation("net.neoforged:srgutils:1.0.9") // Mappings handling implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins -@@ -219,30 +_,42 @@ +@@ -216,30 +_,42 @@ implementation("me.lucko:spark-paper:1.10.152") } diff --git a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch b/divinemc-server/minecraft-patches/features/0001-Rebrand.patch index ec0c013..7ba0734 100644 --- a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch +++ b/divinemc-server/minecraft-patches/features/0001-Rebrand.patch @@ -31,7 +31,7 @@ index 97844ec1ccc986eb3d3a185d78a03ceeca49fc1a..5e40ec3fbe6e6d5f98ad98df7d4c27d6 @Override diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java -index 2c85607bcc62b227485972707c3541247a626524..9e25b6412fadbbecda0430f8554eaa48dbe8c151 100644 +index 42841fdc7e64311ba9217789a3dc758a351cf674..036c3931f4c1e453892f32e59085be702721f016 100644 --- a/net/minecraft/server/Main.java +++ b/net/minecraft/server/Main.java @@ -67,36 +67,29 @@ public class Main { @@ -120,10 +120,10 @@ index 2c85607bcc62b227485972707c3541247a626524..9e25b6412fadbbecda0430f8554eaa48 String awtException = io.papermc.paper.util.ServerEnvironment.awtDependencyCheck(); if (awtException != null) { diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 10769fe7a3d99f0464b9d265b9d0b8c9fc25ae5d..31edaf3b34d77656ceb010beb2e33307d84fb117 100644 +index f3fc79b93efdd6cade9d2a49999f55031049da1d..247f2eb2414e15c56ee17c7f7efc21dfc6641ec9 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1263,6 +1263,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements AutoCloseable { @@ -74,12 +74,12 @@ index 18c7fff36ca26a659fa8ea022c93ea65f3199181..444cc14e9b9e6b77254bc1c5ada00f8f private final List> newTopCommands = new ObjectArrayList<>(); private int currentFrameDepth; -- public ExecutionContext(int commandLimit, int forkLimit, ProfilerFiller profiler) { -+ public ExecutionContext(int commandLimit, int forkLimit) { - this.commandLimit = commandLimit; +- public ExecutionContext(int commandQuota, int forkLimit, ProfilerFiller profiler) { ++ public ExecutionContext(int commandQuota, int forkLimit) { + this.commandLimit = commandQuota; this.forkLimit = forkLimit; - this.profiler = profiler; - this.commandQuota = commandLimit; + this.commandQuota = commandQuota; } @@ -132,7 +130,7 @@ public class ExecutionContext implements AutoCloseable { @@ -203,7 +203,7 @@ index 18071dcc69cc28471dddb7de94e803ec1e5fc2e4..aa25f5ebaf7d1b22825b962b02dcae02 } } diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 31edaf3b34d77656ceb010beb2e33307d84fb117..d8e5de94e677863e1e7894b186c7cd79ecef43f6 100644 +index 247f2eb2414e15c56ee17c7f7efc21dfc6641ec9..f9d60a28763e2c45b5dcf9687b8999fb73817aa9 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -117,20 +117,9 @@ import net.minecraft.util.TimeUtil; @@ -241,7 +241,7 @@ index 31edaf3b34d77656ceb010beb2e33307d84fb117..d8e5de94e677863e1e7894b186c7cd79 private ServerConnectionListener connection; // Paper - per world load listener - moved LevelLoadListener to ServerLevel @Nullable -@@ -998,9 +980,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; try { this.isSaving = true; -@@ -1665,10 +1608,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serverPlayer1.connection.suspendFlushing()); this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit // Paper start - optimise Folia entity scheduler -@@ -1776,9 +1712,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Purpur - Ridables @@ -477,7 +477,7 @@ index 31edaf3b34d77656ceb010beb2e33307d84fb117..d8e5de94e677863e1e7894b186c7cd79 try { serverLevel.tick(hasTimeLeft); } catch (Throwable var7) { -@@ -1834,37 +1763,25 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { + ResourceManager resourceManager = state.resourceManager(); + return preparation.wait(Unit.INSTANCE).thenRunAsync(() -> { - ProfilerFiller profilerFiller = Profiler.get(); - profilerFiller.push("listener"); this.onResourceManagerReload(resourceManager); - profilerFiller.pop(); - }, applyExectutor); + }, gameExecutor); } diff --git a/net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener.java b/net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener.java @@ -1674,7 +1674,7 @@ index 16bab14884a5a7b8d7659379f5b7ea90aa9bd737..a2320c37e4ef495eae7a1978aa7c7dc6 scanDirectory(resourceManager, this.lister, this.ops, this.codec, map); return map; diff --git a/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java b/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java -index 11884fc390d73b476632c372eb2d3d7876cdb7fd..6a4a63de2da352094d58c3c80c54ec164e7c0b58 100644 +index 6e07a06234b34250087e70e18be22a526417fa80..ff5e508838340ee575d83216e33400721bdc6f05 100644 --- a/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java +++ b/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java @@ -2,8 +2,6 @@ package net.minecraft.server.packs.resources; @@ -1687,14 +1687,14 @@ index 11884fc390d73b476632c372eb2d3d7876cdb7fd..6a4a63de2da352094d58c3c80c54ec16 public abstract class SimplePreparableReloadListener implements PreparableReloadListener { @Override @@ -11,12 +9,12 @@ public abstract class SimplePreparableReloadListener implements PreparableRel - PreparableReloadListener.SharedState sharedState, Executor exectutor, PreparableReloadListener.PreparationBarrier barrier, Executor applyExectutor + PreparableReloadListener.SharedState state, Executor backgroundExecutor, PreparableReloadListener.PreparationBarrier preparation, Executor gameExecutor ) { - ResourceManager resourceManager = sharedState.resourceManager(); -- return CompletableFuture.supplyAsync(() -> this.prepare(resourceManager, Profiler.get()), exectutor) -+ return CompletableFuture.supplyAsync(() -> this.prepare(resourceManager), exectutor) - .thenCompose(barrier::wait) -- .thenAcceptAsync(object -> this.apply((T)object, resourceManager, Profiler.get()), applyExectutor); -+ .thenAcceptAsync(object -> this.apply((T)object, resourceManager), applyExectutor); + ResourceManager resourceManager = state.resourceManager(); +- return CompletableFuture.supplyAsync(() -> this.prepare(resourceManager, Profiler.get()), backgroundExecutor) ++ return CompletableFuture.supplyAsync(() -> this.prepare(resourceManager), backgroundExecutor) + .thenCompose(preparation::wait) +- .thenAcceptAsync(object -> this.apply((T)object, resourceManager, Profiler.get()), gameExecutor); ++ .thenAcceptAsync(object -> this.apply((T)object, resourceManager), gameExecutor); } - protected abstract T prepare(ResourceManager resourceManager, ProfilerFiller profiler); @@ -1799,7 +1799,7 @@ index 39a604c9a53930b53d959b1d2eb504aa964e9a58..0d0380e3955836ce125f777841477503 @Override diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe3707adb5 100644 +index 8c6554965fb0db76cf8ca0f1c905b0a1ab15ea2f..4cb08e5d70dc98fda437c8fbdb27aca3c8e8bb75 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -82,8 +82,6 @@ import net.minecraft.util.RandomSource; @@ -1871,7 +1871,7 @@ index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe } } // Paper start - detailed watchdog information -@@ -3541,8 +3528,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3540,8 +3527,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name this.processPortalCooldown(); if (this.portalProcess != null) { if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) { @@ -1880,7 +1880,7 @@ index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe this.setPortalCooldown(); TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this); if (portalDestination != null) { -@@ -3552,8 +3537,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3551,8 +3536,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name this.teleport(portalDestination); } } @@ -1889,7 +1889,7 @@ index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe } else if (this.portalProcess.hasExpired()) { this.portalProcess = null; } -@@ -4120,15 +4103,12 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4119,15 +4102,12 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name entity.teleport(this.calculatePassengerTransition(teleportTransition, entity)); } @@ -1905,7 +1905,7 @@ index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe return this; } -@@ -4145,11 +4125,8 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4144,11 +4124,8 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name } } @@ -1917,7 +1917,7 @@ index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe return null; } else { // Paper start - Fix item duplication and teleport issues -@@ -4169,7 +4146,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4168,7 +4145,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name newLevel.resetEmptyTime(); teleportTransition.postTeleportTransition().onTransition(entityx); this.teleportSpectators(teleportTransition, oldLevel); @@ -1926,7 +1926,7 @@ index 2c4ed31a6573248a6730933fe447dbaf1856ea6d..79d224baca372cb1b6b89f7fcb63c5fe } } diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd3c58339d 100644 +index 9ea15e4656d34ab6738812b6168e15bd6d25fccb..bdd59ab98de1c1392cc8d73a3eedf28ffa64911a 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -70,8 +70,6 @@ import net.minecraft.tags.FluidTags; @@ -1955,7 +1955,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd } protected boolean shouldTakeDrowningDamage() { -@@ -3402,11 +3397,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3409,11 +3404,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin f1 = this.getYRot(); } @@ -1967,7 +1967,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd // Paper start - stop large pitch and yaw changes from crashing the server this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; -@@ -3418,7 +3409,6 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3425,7 +3416,6 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Paper end - stop large pitch and yaw changes from crashing the server @@ -1975,7 +1975,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd if (this.isFallFlying()) { this.fallFlyTicks++; } else { -@@ -3594,21 +3584,15 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3601,21 +3591,15 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin } this.setDeltaMovement(d, d1, d2); @@ -1997,7 +1997,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd if (this.jumping && this.isAffectedByFluids()) { double fluidHeight; if (this.isInLava()) { -@@ -3637,8 +3621,6 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3644,8 +3628,6 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin this.noJumpDelay = 0; } @@ -2006,7 +2006,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd if (this.isFallFlying()) { this.updateFallFlying(); } -@@ -3663,9 +3645,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3670,9 +3652,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin this.calculateEntityAnimation(this instanceof FlyingAnimal); } @@ -2016,7 +2016,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd if ((!this.isInPowderSnow || !this.canFreeze()) && !this.freezeLocked) { // Paper - Freeze Tick Lock API this.setTicksFrozen(Math.max(0, this.getTicksFrozen() - 2)); } -@@ -3675,18 +3655,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3682,18 +3662,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin if (this.tickCount % 40 == 0 && this.isFullyFrozen() && this.canFreeze()) { this.hurtServer(serverLevel, this.damageSources().freeze(), 1.0F); } @@ -2036,7 +2036,7 @@ index 06ccbb08ddb0ed8c9f6e1be4d6306b79484c1467..4e8594985442fe4371504fca697569bd // Purpur start - Ridables if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java -index 3f2e4b48b0ac7f2062c2cbeab36e14eb1c46e3f9..c3a7a41b399590e2c004fda4e97b1935575c4972 100644 +index 699842fcc714a79f0ae83b899a301fa62400709c..c551b8c8c9b9d070afdbcf5cfcdb35e99830fd91 100644 --- a/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java @@ -31,8 +31,6 @@ import net.minecraft.util.debug.DebugGoalInfo; @@ -2181,7 +2181,7 @@ index 859b859d29b637200cf7c9a0bd52d9f712413e3d..653c58c7637c46c8b46a5082f671324a public Set getAvailableGoals() { diff --git a/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index 3e427a7e8be0e15bf867948ee21e838a8a9c3408..1f45b389553cd5782972193537ce7adcd9c7c600 100644 +index 05943450baa0a04ac433c39fdbe80e7abd191363..17d2a937ab6f325295c0b5b9b0a681952d4bce85 100644 --- a/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/PathNavigation.java @@ -12,8 +12,6 @@ import net.minecraft.tags.BlockTags; @@ -2202,11 +2202,11 @@ index 3e427a7e8be0e15bf867948ee21e838a8a9c3408..1f45b389553cd5782972193537ce7adc BlockPos blockPos = offsetUpward ? this.mob.blockPosition().above() : this.mob.blockPosition(); int i = (int)(followRange + regionOffset); PathNavigationRegion pathNavigationRegion = new PathNavigationRegion(this.level, blockPos.offset(-i, -i, -i), blockPos.offset(i, i, i)); - Path path = this.pathFinder.findPath(pathNavigationRegion, this.mob, targets, followRange, accuracy, this.maxVisitedNodesMultiplier); + Path path = this.pathFinder.findPath(pathNavigationRegion, this.mob, targets, followRange, reachRange, this.maxVisitedNodesMultiplier); - profilerFiller.pop(); if (path != null && path.getTarget() != null) { this.targetPos = path.getTarget(); - this.reachRange = accuracy; + this.reachRange = reachRange; diff --git a/net/minecraft/world/entity/ai/sensing/Sensing.java b/net/minecraft/world/entity/ai/sensing/Sensing.java index c569074403b1d8b443aaa98ba9cf9bbd0e98bd2d..b1aa7294f9479f45fcde77c5ea46db9f62370abf 100644 --- a/net/minecraft/world/entity/ai/sensing/Sensing.java @@ -2232,7 +2232,7 @@ index c569074403b1d8b443aaa98ba9cf9bbd0e98bd2d..b1aa7294f9479f45fcde77c5ea46db9f this.seen.add(id); } else { diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java -index 5b08703e27a9e92fb4bcd019661b1407078c24e1..7fae9853c117cda03c516afc1508493af460fa8a 100644 +index e85f17f362548f13a414a41f711900add788b2f7..0506db902dab8c15e6460b5049d388f7af561628 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java @@ -13,8 +13,6 @@ import net.minecraft.sounds.SoundEvents; @@ -2259,7 +2259,7 @@ index 5b08703e27a9e92fb4bcd019661b1407078c24e1..7fae9853c117cda03c516afc1508493a this.checkRestriction(); diff --git a/net/minecraft/world/entity/animal/allay/Allay.java b/net/minecraft/world/entity/animal/allay/Allay.java -index d2665a3bc4602ca8e9635bc9f8104c7ad8eacc5a..3a2451bfa5e59de51d703eac8a536284e1d3348b 100644 +index d842d0158f1c685a9350c61158a6eaa36ea9e897..ae68a19a0b13bc626efec6a028f3abba4a436f3b 100644 --- a/net/minecraft/world/entity/animal/allay/Allay.java +++ b/net/minecraft/world/entity/animal/allay/Allay.java @@ -24,8 +24,6 @@ import net.minecraft.tags.GameEventTags; @@ -2287,7 +2287,7 @@ index d2665a3bc4602ca8e9635bc9f8104c7ad8eacc5a..3a2451bfa5e59de51d703eac8a536284 } diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java -index e3fad2dbf9f8e0523082540ecbd46a0b13a36101..5448b010f98e5c0da6e62ef9f91652747eddd650 100644 +index 040fac5a4852b101299597e655a3774d83450172..bc7d026cae5c80e81b27b611557d48147f3e55d1 100644 --- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java +++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java @@ -22,8 +22,6 @@ import net.minecraft.util.ByIdMap; @@ -2314,7 +2314,7 @@ index e3fad2dbf9f8e0523082540ecbd46a0b13a36101..5448b010f98e5c0da6e62ef9f9165274 this.forceDrops = true; // CraftBukkit if (this.dropFromGiftLootTable(level, BuiltInLootTables.ARMADILLO_SHED, this::spawnAtLocation)) { diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 08fb591e860b7b2b93b42bfc7a91d63999567dc6..1927f8be451258d9f0f8eec1617d103a4140e1e7 100644 +index 3cc8ee115e889ced4457596b9c5fce438157e980..a952e78ac0c1fa7a2728fc3036b93e69e2fefb8d 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -30,8 +30,6 @@ import net.minecraft.util.ByIdMap; @@ -2342,7 +2342,7 @@ index 08fb591e860b7b2b93b42bfc7a91d63999567dc6..1927f8be451258d9f0f8eec1617d103a Optional memory = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS); this.setPlayingDead(memory.isPresent() && memory.get() > 0); diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java -index bb750bcc35a3dd75c112dea445595ab27cc15fd5..5a436ae8893cd91944e8269f11c29bc82217c755 100644 +index cc71c575a8fb62c41198c6e1f27bd0e88380f5bc..efe34d1510d96f91821abb36ed2957b388dcd7bd 100644 --- a/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java @@ -17,8 +17,6 @@ import net.minecraft.tags.BlockTags; @@ -2370,7 +2370,7 @@ index bb750bcc35a3dd75c112dea445595ab27cc15fd5..5a436ae8893cd91944e8269f11c29bc8 } diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java -index e18364baff00dc08aad75e0d40e86ae14fec56ad..1a504e30602d7d8feaf7a9180adf6382596aae02 100644 +index 78863bd593acaa46f33a49fadbd0cdb025074c11..7643e8d1b89a23354c27395509407c20e3d93b69 100644 --- a/net/minecraft/world/entity/animal/frog/Frog.java +++ b/net/minecraft/world/entity/animal/frog/Frog.java @@ -27,8 +27,6 @@ import net.minecraft.tags.ItemTags; @@ -2398,7 +2398,7 @@ index e18364baff00dc08aad75e0d40e86ae14fec56ad..1a504e30602d7d8feaf7a9180adf6382 } diff --git a/net/minecraft/world/entity/animal/frog/Tadpole.java b/net/minecraft/world/entity/animal/frog/Tadpole.java -index 4586969e406b24639893a393e2ebe19ec5b224ea..8312a0d5229043fd84125db809c4346bb80f2bc0 100644 +index 13b44b9560d46b351c4751aab189cc01c61d768d..37b1674c3f89d7ddba054b066df957f3337f4a89 100644 --- a/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -11,8 +11,6 @@ import net.minecraft.server.level.ServerLevel; @@ -2426,7 +2426,7 @@ index 4586969e406b24639893a393e2ebe19ec5b224ea..8312a0d5229043fd84125db809c4346b } diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java -index 99980c9a69b51f81a9cd4429d59fab9497d79656..80714e2a6e74047af89680c261e2dbc097d86062 100644 +index 6b6461a61a1738d64220f571b8cf7b46605327c0..7ed4685600fb0d03d90e4b7e6044ee8c466ecd72 100644 --- a/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java @@ -19,8 +19,6 @@ import net.minecraft.tags.ItemTags; @@ -2454,7 +2454,7 @@ index 99980c9a69b51f81a9cd4429d59fab9497d79656..80714e2a6e74047af89680c261e2dbc0 } diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 204a9ee08668d12368b5c0e9ed990d0a4624b925..b77b763a3eb58b3135ad9c9cbb8a39f67393397d 100644 +index d7e61ce6e2b77817f4eca913f2c319096e7f244f..2cfd97f10619fcd61f080bda1a617a664103ca53 100644 --- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -28,8 +28,6 @@ import net.minecraft.tags.BlockTags; @@ -2481,7 +2481,7 @@ index 204a9ee08668d12368b5c0e9ed990d0a4624b925..b77b763a3eb58b3135ad9c9cbb8a39f6 } diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java -index e0ee4f71786dce5690cf75bb55def05c8608c8d2..2eb7f602f452917b5d88fd8237898dff920cf0a9 100644 +index 2632dd89d2f5661137e2c09b8cd426fc40599f69..233d175ba7e1c8516fff7897930c16a5de224820 100644 --- a/net/minecraft/world/entity/monster/Zoglin.java +++ b/net/minecraft/world/entity/monster/Zoglin.java @@ -13,8 +13,6 @@ import net.minecraft.network.syncher.SynchedEntityData; @@ -2506,7 +2506,7 @@ index e0ee4f71786dce5690cf75bb55def05c8608c8d2..2eb7f602f452917b5d88fd8237898dff } diff --git a/net/minecraft/world/entity/monster/breeze/Breeze.java b/net/minecraft/world/entity/monster/breeze/Breeze.java -index 11408fd409eb00e6bf3289e6a5a35e98178fa6e2..44d638d5d96a58bcfd35cc8e2e0c08389717e48f 100644 +index 405eb5f041bf3a611f8111fd58864ffec30ab0c0..9ef421dfbb2d8d26d4a01d130dcbf3a6708890e9 100644 --- a/net/minecraft/world/entity/monster/breeze/Breeze.java +++ b/net/minecraft/world/entity/monster/breeze/Breeze.java @@ -14,8 +14,6 @@ import net.minecraft.tags.EntityTypeTags; @@ -2533,7 +2533,7 @@ index 11408fd409eb00e6bf3289e6a5a35e98178fa6e2..44d638d5d96a58bcfd35cc8e2e0c0838 } diff --git a/net/minecraft/world/entity/monster/creaking/Creaking.java b/net/minecraft/world/entity/monster/creaking/Creaking.java -index c05d572fa2ab5a70c8825d2d2b6ffb36317e92fe..ffa881eb837aff53d50d0ffe8af44bbe2d0aeb6a 100644 +index f31a29531cc7d63bed5a4bcbe3986bcc366b6103..6f7812f22399f67923e53a10a21ebd499ed40c64 100644 --- a/net/minecraft/world/entity/monster/creaking/Creaking.java +++ b/net/minecraft/world/entity/monster/creaking/Creaking.java @@ -15,8 +15,6 @@ import net.minecraft.server.level.ServerLevel; @@ -2557,7 +2557,7 @@ index c05d572fa2ab5a70c8825d2d2b6ffb36317e92fe..ffa881eb837aff53d50d0ffe8af44bbe } diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 08c3372555d098b62465437798bf6cbd08e73ec5..b22519a6d39bd52381fa6c17b9a415944374368b 100644 +index c5f7213b91d7a533ff56e4789514b47adb791777..d115155616a0a76a8429c0f5645a8cba73d8bc80 100644 --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -14,8 +14,6 @@ import net.minecraft.sounds.SoundEvents; @@ -2582,7 +2582,7 @@ index 08c3372555d098b62465437798bf6cbd08e73ec5..b22519a6d39bd52381fa6c17b9a41594 if (this.isConverting()) { this.timeInOverworld++; diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java -index 000391f95bf2881765c304aecb013eb313d55ba1..dea7c211a2d2ee8f1833eaad49513b3690b06c55 100644 +index dee71746e90f8a81e29ee35c3438219172509d6b..359665cfb2004c49f8e8a19edc7b31c99ce863bf 100644 --- a/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -16,8 +16,6 @@ import net.minecraft.tags.ItemTags; @@ -2607,7 +2607,7 @@ index 000391f95bf2881765c304aecb013eb313d55ba1..dea7c211a2d2ee8f1833eaad49513b36 super.customServerAiStep(level); } diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java -index 70ee15527fa6f30783d6a58bb767b18124f25c53..c4eb58d0b0c51e930f9cb72e1de0103902badba7 100644 +index ebe1b4e0b841906684561151919a5b3f6e206b60..0f1ed8ec352653089106ed8a143ab4ae3f82c3fe 100644 --- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -8,8 +8,6 @@ import net.minecraft.server.level.ServerLevel; @@ -2632,7 +2632,7 @@ index 70ee15527fa6f30783d6a58bb767b18124f25c53..c4eb58d0b0c51e930f9cb72e1de01039 PiglinBruteAi.maybePlayActivitySound(this); super.customServerAiStep(level); diff --git a/net/minecraft/world/entity/monster/warden/Warden.java b/net/minecraft/world/entity/monster/warden/Warden.java -index 137510f81e6454f45010f8d96001ad1ebdddfde6..ac7691a2a3e4c9db040408d1ecba780a89dea50e 100644 +index 380fe9b03e205d6c5b2eb48030384c8b756bc3f9..e9881eac70feebeb08f464efd4fa953cec9f62bf 100644 --- a/net/minecraft/world/entity/monster/warden/Warden.java +++ b/net/minecraft/world/entity/monster/warden/Warden.java @@ -26,8 +26,6 @@ import net.minecraft.tags.TagKey; @@ -2657,7 +2657,7 @@ index 137510f81e6454f45010f8d96001ad1ebdddfde6..ac7691a2a3e4c9db040408d1ecba780a if ((this.tickCount + this.getId()) % 120 == 0) { applyDarknessAround(level, this.position(), this, 20); diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java -index dda4563b0f0d6f0d1a0ccd64a4ec787bf27abf2d..3bcd3b7c9f7ad408d66fad5b1b70ebee96a61b43 100644 +index 0ab9ac120703285baa563391653323c17d05b20b..e89ff53c568013a5f53afcf5759314221d37adf4 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java @@ -35,8 +35,6 @@ import net.minecraft.stats.Stats; @@ -2717,7 +2717,7 @@ index 07d7c4737635f671f33b8f73001d67928fc75782..f2c82217811712625df594667330a73f LOGGER.info("Loaded {} recipes", object.values().size()); } diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java -index abde1d66d545a5aded66a908473aa52b3c7a9ce8..cd42348d3bd64aa8cabc337f57b56a7243887ef6 100644 +index 5792422495a2d71ae4341e54817550e3d352d0b4..ad69e0e97d6d8efcfe73fe8a6f66cc64719704ac 100644 --- a/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java @@ -36,7 +36,6 @@ import net.minecraft.util.AbortableIterationConsumer; @@ -2770,7 +2770,7 @@ index abde1d66d545a5aded66a908473aa52b3c7a9ce8..cd42348d3bd64aa8cabc337f57b56a72 this.getEntities().get(entityTypeTest, bounds, value -> { if (predicate.test(value)) { diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java -index c2e35467752c6cf5677fe8beee3145187a0090fc..b3649c97e5452d8cc6b7230891e827c6b460af44 100644 +index 4c3fa61566ecabf8eccea32f10aabfa7c961e4c5..1b62bc5836fbf0ddc37d8f979b4e7aa628c4b00e 100644 --- a/net/minecraft/world/level/NaturalSpawner.java +++ b/net/minecraft/world/level/NaturalSpawner.java @@ -24,8 +24,6 @@ import net.minecraft.tags.BlockTags; @@ -2826,7 +2826,7 @@ index c0c87b7c8e0b6b941fe8a63dc361504e94459d86..3c4de8b43a5658e02ddce7db9f453bfd if (this.fire) { diff --git a/net/minecraft/world/level/pathfinder/PathFinder.java b/net/minecraft/world/level/pathfinder/PathFinder.java -index b84c03cb0bddfc6fdc362a5e1432b25f67e7e23d..98abda72d88fb38a5427a15cc59094f3a7db30dc 100644 +index f90c2bb95e304bd6b9b8539d89f38d2d718893d0..f41f6c0be37f89c54cee3e02494c1412f309266f 100644 --- a/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/net/minecraft/world/level/pathfinder/PathFinder.java @@ -13,9 +13,6 @@ import java.util.function.Function; @@ -2842,7 +2842,7 @@ index b84c03cb0bddfc6fdc362a5e1432b25f67e7e23d..98abda72d88fb38a5427a15cc59094f3 @@ -62,9 +59,6 @@ public class PathFinder { @Nullable - private Path findPath(Node node, List> positions, float maxRange, int accuracy, float searchDepthMultiplier) { // Paper - optimize collection + private Path findPath(Node node, List> positions, float maxRange, int reachRange, float maxVisitedNodesMultiplier) { // Paper - optimize collection - ProfilerFiller profilerFiller = Profiler.get(); - profilerFiller.push("find_path"); - profilerFiller.markForCharting(MetricCategory.PATH_FINDING); diff --git a/divinemc-server/minecraft-patches/features/0005-Paper-PR-Throttle-failed-spawn-attempts.patch b/divinemc-server/minecraft-patches/features/0005-Paper-PR-Throttle-failed-spawn-attempts.patch index f66d89b..97ef3d1 100644 --- a/divinemc-server/minecraft-patches/features/0005-Paper-PR-Throttle-failed-spawn-attempts.patch +++ b/divinemc-server/minecraft-patches/features/0005-Paper-PR-Throttle-failed-spawn-attempts.patch @@ -22,7 +22,7 @@ Example config in paper-world-defaults.yml: ``` diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java -index b3649c97e5452d8cc6b7230891e827c6b460af44..f233841c43a0b3f71ed5a90b4df7d8b4902a642d 100644 +index 1b62bc5836fbf0ddc37d8f979b4e7aa628c4b00e..60290430e1ac70d3b885651168a6e8adcb17e7ce 100644 --- a/net/minecraft/world/level/NaturalSpawner.java +++ b/net/minecraft/world/level/NaturalSpawner.java @@ -160,29 +160,52 @@ public final class NaturalSpawner { @@ -166,7 +166,7 @@ index b3649c97e5452d8cc6b7230891e827c6b460af44..f233841c43a0b3f71ed5a90b4df7d8b4 private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel level, ChunkAccess chunk, BlockPos.MutableBlockPos pos, double distance) { diff --git a/net/minecraft/world/level/chunk/ChunkAccess.java b/net/minecraft/world/level/chunk/ChunkAccess.java -index 9889485b15501c1adf1a73bb4603d3477860482d..2457247d2bc1c3e3b042a091c3a8290d55203da8 100644 +index 98b7e1e3b8592824c69a9647a82621755526c71a..f6f9a88283e051e6a7c96f461b68b3881b3361d2 100644 --- a/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/net/minecraft/world/level/chunk/ChunkAccess.java @@ -86,6 +86,7 @@ public abstract class ChunkAccess implements BiomeManager.NoiseBiomeSource, Ligh @@ -178,7 +178,7 @@ index 9889485b15501c1adf1a73bb4603d3477860482d..2457247d2bc1c3e3b042a091c3a8290d // Paper start - rewrite chunk system private volatile ca.spottedleaf.moonrise.patches.starlight.light.SWMRNibbleArray[] blockNibbles; diff --git a/net/minecraft/world/level/chunk/storage/SerializableChunkData.java b/net/minecraft/world/level/chunk/storage/SerializableChunkData.java -index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad317624075f 100644 +index 2e8a1898c9ef8bbfd58ea1e9fbd7f6a633822fb9..e393f9025283acb7d1f5937aebbde83dabc8437f 100644 --- a/net/minecraft/world/level/chunk/storage/SerializableChunkData.java +++ b/net/minecraft/world/level/chunk/storage/SerializableChunkData.java @@ -93,6 +93,7 @@ public record SerializableChunkData( @@ -189,7 +189,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 ) { private static final Codec>> BLOCK_TICKS_CODEC = SavedTick.codec(BuiltInRegistries.BLOCK.byNameCodec()).listOf(); private static final Codec>> FLUID_TICKS_CODEC = SavedTick.codec(BuiltInRegistries.FLUID.byNameCodec()).listOf(); -@@ -186,6 +187,19 @@ public record SerializableChunkData( +@@ -184,6 +185,19 @@ public record SerializableChunkData( lists[i] = list2; } @@ -209,7 +209,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 List list3 = tag.getList("entities").stream().flatMap(ListTag::compoundStream).toList(); List list4 = tag.getList("block_entities").stream().flatMap(ListTag::compoundStream).toList(); CompoundTag compoundOrEmpty = tag.getCompoundOrEmpty("structures"); -@@ -258,6 +272,7 @@ public record SerializableChunkData( +@@ -256,6 +270,7 @@ public record SerializableChunkData( list4, compoundOrEmpty , tag.get("ChunkBukkitValues") // CraftBukkit - ChunkBukkitValues @@ -217,7 +217,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 ); } } -@@ -421,6 +436,15 @@ public record SerializableChunkData( +@@ -419,6 +434,15 @@ public record SerializableChunkData( chunkAccess.addPackedPostProcess(this.postProcessingSections[i], i); } @@ -233,7 +233,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 if (chunkType == ChunkType.LEVELCHUNK) { return this.loadStarlightLightData(level, new ImposterProtoChunk((LevelChunk)chunkAccess, false)); // Paper - starlight } else { -@@ -536,6 +560,7 @@ public record SerializableChunkData( +@@ -534,6 +558,7 @@ public record SerializableChunkData( persistentDataContainer = chunk.persistentDataContainer.toTagCompound(); } // CraftBukkit end @@ -241,7 +241,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 return new SerializableChunkData( level.palettedContainerFactory(), pos, -@@ -556,6 +581,7 @@ public record SerializableChunkData( +@@ -554,6 +579,7 @@ public record SerializableChunkData( list1, compoundTag , persistentDataContainer // CraftBukkit - persistentDataContainer @@ -249,7 +249,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 ); } } -@@ -641,6 +667,21 @@ public record SerializableChunkData( +@@ -639,6 +665,21 @@ public record SerializableChunkData( compoundTag.put("ChunkBukkitValues", this.persistentDataContainer); } // CraftBukkit end @@ -271,7 +271,7 @@ index 84840f50d1bcebc7b0bdb1d2f79b53fd6fc98abb..0e320673fb1cb9d4e4b5537850c2ad31 // Paper start - starlight if (this.lightCorrect && !this.chunkStatus.isBefore(net.minecraft.world.level.chunk.status.ChunkStatus.LIGHT)) { // clobber vanilla value to force vanilla to relight -@@ -856,4 +897,49 @@ public record SerializableChunkData( +@@ -854,4 +895,49 @@ public record SerializableChunkData( } // Paper end - starlight - convert from record } diff --git a/divinemc-server/minecraft-patches/features/0013-lithium-faster-chunk-serialization.patch b/divinemc-server/minecraft-patches/features/0013-lithium-faster-chunk-serialization.patch index c175f34..5d975d7 100644 --- a/divinemc-server/minecraft-patches/features/0013-lithium-faster-chunk-serialization.patch +++ b/divinemc-server/minecraft-patches/features/0013-lithium-faster-chunk-serialization.patch @@ -84,7 +84,7 @@ index 09fd99c9cbd23b5f3c899bfb00c9b89651948ed8..6fdd51c767399bce29dce1ecea2e1307 + @Override public void compact(net.minecraft.world.level.chunk.Palette srcPalette, net.minecraft.world.level.chunk.Palette dstPalette, short[] out, net.minecraft.world.level.chunk.PalettedContainer resizeHandler) { } // DivineMC - lithium: faster chunk serialization } diff --git a/net/minecraft/world/level/chunk/PalettedContainer.java b/net/minecraft/world/level/chunk/PalettedContainer.java -index 1843046fe145bb23f2e9cf3269fb05c0fb617603..f1cae4cab36546d5798d2b59ac59774d1c9838c0 100644 +index 54d71bd666a946bdf6eece520e080c3f96003452..51ece91c956fd4d55eaef34a534fdb38c6d24446 100644 --- a/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/net/minecraft/world/level/chunk/PalettedContainer.java @@ -29,6 +29,23 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @@ -111,7 +111,7 @@ index 1843046fe145bb23f2e9cf3269fb05c0fb617603..f1cae4cab36546d5798d2b59ac59774d public void acquire() { // this.threadingDetector.checkAndLock(); // Paper - disable this - use proper synchronization } -@@ -340,29 +357,49 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -338,29 +355,49 @@ public class PalettedContainer implements PaletteResize, PalettedContainer public synchronized PalettedContainerRO.PackedData pack(Strategy strategy) { // Paper - synchronize this.acquire(); @@ -176,8 +176,8 @@ index 1843046fe145bb23f2e9cf3269fb05c0fb617603..f1cae4cab36546d5798d2b59ac59774d + // DivineMC end - lithium: faster chunk serialization } - private static int[] reencodeContents(BitStorage storage, Palette oldPalette, Palette newPalette) { -@@ -412,13 +449,31 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + private static int[] reencodeContents(BitStorage bitStorage, Palette oldPalette, Palette newPalette) { +@@ -410,13 +447,31 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @Override public void count(PalettedContainer.CountConsumer countConsumer) { @@ -185,8 +185,8 @@ index 1843046fe145bb23f2e9cf3269fb05c0fb617603..f1cae4cab36546d5798d2b59ac59774d - countConsumer.accept(this.data.palette.valueFor(0), this.data.storage.getSize()); - } else { - Int2IntOpenHashMap map = new Int2IntOpenHashMap(); -- this.data.storage.getAll(i -> map.addTo(i, 1)); -- map.int2IntEntrySet().forEach(entry -> countConsumer.accept(this.data.palette.valueFor(entry.getIntKey()), entry.getIntValue())); +- this.data.storage.getAll(id -> map.addTo(id, 1)); +- map.int2IntEntrySet().forEach(idEntry -> countConsumer.accept(this.data.palette.valueFor(idEntry.getIntKey()), idEntry.getIntValue())); + // DivineMC start - lithium: faster chunk serialization + int len = this.data.palette().getSize(); + diff --git a/divinemc-server/minecraft-patches/features/0022-ModernFix-compact_bit_storage.patch b/divinemc-server/minecraft-patches/features/0022-ModernFix-compact_bit_storage.patch index 49f7932..d3a57b9 100644 --- a/divinemc-server/minecraft-patches/features/0022-ModernFix-compact_bit_storage.patch +++ b/divinemc-server/minecraft-patches/features/0022-ModernFix-compact_bit_storage.patch @@ -10,10 +10,10 @@ As part of: ModernFix (https://github.com/embeddedt/ModernFix) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/net/minecraft/world/level/chunk/PalettedContainer.java b/net/minecraft/world/level/chunk/PalettedContainer.java -index f1cae4cab36546d5798d2b59ac59774d1c9838c0..3baf84b3f636a3ea04945cb4c0f17acd7109bedb 100644 +index 51ece91c956fd4d55eaef34a534fdb38c6d24446..2e2625dbb8f14b11156d16501f4a1e1dea7eaef1 100644 --- a/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -283,6 +283,28 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -281,6 +281,28 @@ public class PalettedContainer implements PaletteResize, PalettedContainer data.palette.read(buffer, this.strategy.globalMap()); buffer.readFixedSizeLongArray(data.storage.getRaw()); this.data = data; diff --git a/divinemc-server/minecraft-patches/features/0033-Optimize-Fluids.patch b/divinemc-server/minecraft-patches/features/0033-Optimize-Fluids.patch index 7e0a3a7..e9a924e 100644 --- a/divinemc-server/minecraft-patches/features/0033-Optimize-Fluids.patch +++ b/divinemc-server/minecraft-patches/features/0033-Optimize-Fluids.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimize Fluids diff --git a/net/minecraft/world/level/block/LiquidBlock.java b/net/minecraft/world/level/block/LiquidBlock.java -index 34a10afcc242e4e37673918ee271d683e35385b7..2f278b528acfd3df1aff4438e31e6e81fbd6cf70 100644 +index 283e5fc879fd9869205549d66b3b99662ec56564..8aa9dac64bcfb81fdfebd1327a0f18bbc104b9d8 100644 --- a/net/minecraft/world/level/block/LiquidBlock.java +++ b/net/minecraft/world/level/block/LiquidBlock.java -@@ -197,6 +197,7 @@ public class LiquidBlock extends Block implements BucketPickup { +@@ -199,6 +199,7 @@ public class LiquidBlock extends Block implements BucketPickup { Block block = level.getFluidState(pos).isSource() ? Blocks.OBSIDIAN : Blocks.COBBLESTONE; // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(level, pos, block.defaultBlockState(), 3)) { @@ -17,7 +17,7 @@ index 34a10afcc242e4e37673918ee271d683e35385b7..2f278b528acfd3df1aff4438e31e6e81 } // CraftBukkit end diff --git a/net/minecraft/world/level/material/FlowingFluid.java b/net/minecraft/world/level/material/FlowingFluid.java -index e1a96f2448de90efef48e21ce4d673edbceda59a..7a14227f07b2b94bff7c67eb7f7f11cdd45c7b62 100644 +index 18f008dceff896a405970afe157321105d55405f..1de0ef32b6519cad10c8ebf0ed328b6773bcb3ff 100644 --- a/net/minecraft/world/level/material/FlowingFluid.java +++ b/net/minecraft/world/level/material/FlowingFluid.java @@ -200,6 +200,7 @@ public abstract class FlowingFluid extends Fluid { @@ -132,7 +132,7 @@ index e1a96f2448de90efef48e21ce4d673edbceda59a..7a14227f07b2b94bff7c67eb7f7f11cd return canPassThroughWall(Direction.DOWN, level, pos, state, belowPos, belowState) && (belowState.getFluidState().getType().isSame(this) || canHoldFluid(level, belowPos, belowState, this.getFlowing())); diff --git a/net/minecraft/world/level/material/LavaFluid.java b/net/minecraft/world/level/material/LavaFluid.java -index 545c75cfd03a36d4e8b96a69fc8dcd893b548eeb..bbc658abfb2df1b3ee3a31d46c4b9014bb34e0a2 100644 +index b7da2efaa784ef470029410be3e2359c5bf6dace..2d845b09abe3354f0999b117e78ffd00c41e8924 100644 --- a/net/minecraft/world/level/material/LavaFluid.java +++ b/net/minecraft/world/level/material/LavaFluid.java @@ -237,6 +237,7 @@ public abstract class LavaFluid extends FlowingFluid { diff --git a/divinemc-server/minecraft-patches/features/0034-Optimize-Structure-Generation.patch b/divinemc-server/minecraft-patches/features/0034-Optimize-Structure-Generation.patch index 5d1ce9b..7dfe21b 100644 --- a/divinemc-server/minecraft-patches/features/0034-Optimize-Structure-Generation.patch +++ b/divinemc-server/minecraft-patches/features/0034-Optimize-Structure-Generation.patch @@ -7,7 +7,7 @@ Original project: https://github.com/TelepathicGrunt/StructureLayoutOptimizer Original license: MIT diff --git a/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java b/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java -index 4e3302e8f28c7f12dc5fbaeb6c1f5715a9afc8e5..3b66b16612b8328eaea786cc8ba3a59fd67900e4 100644 +index 103d604797bed34c2e357d01c2f7324dea3e9026..4aa68163958e89521f542470c473f8d5980f5d4b 100644 --- a/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java +++ b/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java @@ -4,6 +4,8 @@ import com.google.common.collect.Lists; @@ -233,7 +233,7 @@ index 5c081a5b3d10f713e4e82fe1a43758f553fe50e0..85e84603a19964f05d9d5e62eb096ca7 + // DivineMC end - Optimize Structure Generation } diff --git a/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index 4068becb9eca9cbbb67e6d6fb9ff848bfc25877e..d8756e4bfc669eb17c60429c4b532b13f1c308ec 100644 +index 85f9b9a7df18a34fa7f8999b887bd444c3d3d067..0d98eee31f053614b9d4fddd811b6d17bd3a7a50 100644 --- a/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -256,6 +256,12 @@ public class StructureTemplate { @@ -246,7 +246,7 @@ index 4068becb9eca9cbbb67e6d6fb9ff848bfc25877e..d8756e4bfc669eb17c60429c4b532b13 + } + // DivineMC end - Optimize Structure Generation + - public boolean placeInWorld(ServerLevelAccessor serverLevel, BlockPos offset, BlockPos pos, StructurePlaceSettings settings, RandomSource random, int flags) { + public boolean placeInWorld(ServerLevelAccessor level, BlockPos offset, BlockPos pos, StructurePlaceSettings settings, RandomSource random, int flags) { if (this.palettes.isEmpty()) { return false; @@ -273,7 +279,11 @@ public class StructureTemplate { diff --git a/divinemc-server/minecraft-patches/features/0035-Implement-NoChatReports.patch b/divinemc-server/minecraft-patches/features/0035-Implement-NoChatReports.patch index 3f8a0b2..31ab317 100644 --- a/divinemc-server/minecraft-patches/features/0035-Implement-NoChatReports.patch +++ b/divinemc-server/minecraft-patches/features/0035-Implement-NoChatReports.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement NoChatReports diff --git a/net/minecraft/network/FriendlyByteBuf.java b/net/minecraft/network/FriendlyByteBuf.java -index 70b35188e4762c8dcd46b2df14d4efd85e147dcd..8861148b0598891e7851d2c9cc6d79edfc26e55e 100644 +index be5ac057737fd67fbf2f80f879f8e2816750f041..85faebf1d75bc6d4e6b01d0dad1920069f6fd98d 100644 --- a/net/minecraft/network/FriendlyByteBuf.java +++ b/net/minecraft/network/FriendlyByteBuf.java @@ -105,7 +105,28 @@ public class FriendlyByteBuf extends ByteBuf { @@ -206,10 +206,10 @@ index 88447fc2108126ccfad2fb7eb79ac94537f132d3..571cbe6844ebb330801dd893a45c1f73 private static final String PREFIX = "data:image/png;base64,"; public static final Codec CODEC = Codec.STRING.comapFlatMap(string -> { diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 7486df33cedea98695c614bb3d584e1d8e84314f..f9ec63ed7feb67e558abed99746726c10e9e10f4 100644 +index 6a8f501883a5b5697d3ebf401f6b7aa6145479ea..d2ac3057cd6d27c9f0ec043421cbb72b57853b97 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -833,6 +833,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -832,6 +832,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @Override public boolean enforceSecureProfile() { @@ -287,7 +287,7 @@ index 4a333e87af17bd5b673b57c0fa0d3a239fb8db59..e5569978a23c5bde673146421963a2ff if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 6c6213323df278391b30dd9f22c408a34ec052c8..c8e68bbb210457366822f2c4a01afb49693035ac 100644 +index 78d0595edb26a8ee29143c86164d01056132fa08..2425ecc8c27647acb5cb6ef1989cc7db715d2392 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -181,7 +181,7 @@ public abstract class PlayerList { @@ -299,7 +299,7 @@ index 6c6213323df278391b30dd9f22c408a34ec052c8..c8e68bbb210457366822f2c4a01afb49 ) ); player.getBukkitEntity().sendSupportedChannels(); // CraftBukkit -@@ -1255,6 +1255,7 @@ public abstract class PlayerList { +@@ -1245,6 +1245,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { diff --git a/divinemc-server/minecraft-patches/features/0036-Lag-compensation.patch b/divinemc-server/minecraft-patches/features/0036-Lag-compensation.patch index 38b95cd..817c8c8 100644 --- a/divinemc-server/minecraft-patches/features/0036-Lag-compensation.patch +++ b/divinemc-server/minecraft-patches/features/0036-Lag-compensation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lag compensation diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index d8e5de94e677863e1e7894b186c7cd79ecef43f6..8f281339ac390f005baddf00cd09e876cc49e524 100644 +index f9d60a28763e2c45b5dcf9687b8999fb73817aa9..3de2d76bf118750932a56d02233e4e6aff0b2728 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -287,6 +287,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop key) { @@ -220,7 +220,7 @@ index 45132e6608b57a30b1b1228ef89879b58d4600ef..a3daac69a79551a4a6a6d215cab3ce68 public static class BooleanValue extends GameRules.Value { private boolean value; diff --git a/net/minecraft/world/level/block/state/BlockBehaviour.java b/net/minecraft/world/level/block/state/BlockBehaviour.java -index a7dadab83644e9555dec4f597fee682be37e85c8..5f6fbc7eaa5522bd5e0692c9c2d280457a284e71 100644 +index 00ca563d6bfbe6182dc246d5f6ffca7fc9a5ba85..611b29ccba29558d8cf54eccb2136a305bf989db 100644 --- a/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -350,13 +350,21 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -248,7 +248,7 @@ index a7dadab83644e9555dec4f597fee682be37e85c8..5f6fbc7eaa5522bd5e0692c9c2d28045 } diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index b03fa199a532ff7e0e14d9ad449ee8308e6e76bc..3a9843c30f685d2e1f0cd54ace5dddfa9e2314fa 100644 +index 84bc3ed25a30ede18f66859129dacd73d6837d1f..524f987ba5cbf3d9fa502b51419cb163e099597c 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -957,6 +957,19 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot @@ -285,11 +285,11 @@ index b03fa199a532ff7e0e14d9ad449ee8308e6e76bc..3a9843c30f685d2e1f0cd54ace5dddfa // Paper start - Remove the Block Entity if it's invalid } else { diff --git a/net/minecraft/world/level/material/LavaFluid.java b/net/minecraft/world/level/material/LavaFluid.java -index bbc658abfb2df1b3ee3a31d46c4b9014bb34e0a2..38d4392a09d1d3ccebe602cf2319395217d55649 100644 +index 2d845b09abe3354f0999b117e78ffd00c41e8924..9630a1fd95853671812c3249f32a8a1e3a05f7ab 100644 --- a/net/minecraft/world/level/material/LavaFluid.java +++ b/net/minecraft/world/level/material/LavaFluid.java @@ -188,9 +188,22 @@ public abstract class LavaFluid extends FlowingFluid { - return fluidState.getHeight(blockReader, pos) >= 0.44444445F && fluid.is(FluidTags.WATER); + return fluidState.getHeight(level, pos) >= 0.44444445F && fluid.is(FluidTags.WATER); } + // DivineMC start - Lag compensation @@ -313,7 +313,7 @@ index bbc658abfb2df1b3ee3a31d46c4b9014bb34e0a2..38d4392a09d1d3ccebe602cf23193952 @Override diff --git a/net/minecraft/world/level/material/WaterFluid.java b/net/minecraft/world/level/material/WaterFluid.java -index b248fe1d66940c05d56fc322df61c52ece72e77f..2a35dcf66dc01e787f9767a90c08a6cb283576e4 100644 +index 19505eafb8b3aa09d7f889ecb62bcc28d835b4c8..790dcd8e71fc2e102a4aeae28b3a4a24680401ae 100644 --- a/net/minecraft/world/level/material/WaterFluid.java +++ b/net/minecraft/world/level/material/WaterFluid.java @@ -124,8 +124,16 @@ public abstract class WaterFluid extends FlowingFluid { diff --git a/divinemc-server/minecraft-patches/features/0037-Virtual-Threads.patch b/divinemc-server/minecraft-patches/features/0037-Virtual-Threads.patch index 4b5d01e..ecc9d68 100644 --- a/divinemc-server/minecraft-patches/features/0037-Virtual-Threads.patch +++ b/divinemc-server/minecraft-patches/features/0037-Virtual-Threads.patch @@ -18,10 +18,10 @@ index 9a7a40c1dcea57ba674d8431077d2477104a456f..8e41097f978800039e6e057c5bbcfcf0 new java.util.concurrent.LinkedBlockingQueue<>(), new com.google.common.util.concurrent.ThreadFactoryBuilder() diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 8f281339ac390f005baddf00cd09e876cc49e524..a08e56c822b54648f5013e67128c670dd6cb70de 100644 +index 3de2d76bf118750932a56d02233e4e6aff0b2728..690c67f2051996d0888a946b8c089d39dcb004f6 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -2719,8 +2719,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop GsonHelper.parse(!property.isEmpty() ? property : "{}"), new JsonObject()), this.get("level-type", property -> property.toLowerCase(Locale.ROOT), WorldPresets.NORMAL.location().toString()) diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java -index 301b45e375dafeefed56eb0db5dd51eea4c97459..65607de63f6ea900599660485861860b71e1aef3 100644 +index 94851554c2c3e0f5a2d72606fda166adb586bbca..ca0c38974d75e95d258978ff9c8a2749ad741aa5 100644 --- a/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java @@ -614,6 +614,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -64,7 +64,7 @@ index 301b45e375dafeefed56eb0db5dd51eea4c97459..65607de63f6ea900599660485861860b } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 2f09f9c02e63563828dd7000352baf2723a0ac59..4f4ede83b6ca5e1884607410b526a675fed4d42d 100644 +index e6e54f23e302292aa9e9495c00aaae22cf18dd94..97ecdd880c0225d176859517ed715e2b4159ddeb 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -655,6 +655,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -76,7 +76,7 @@ index 2f09f9c02e63563828dd7000352baf2723a0ac59..4f4ede83b6ca5e1884607410b526a675 DataFixer fixerUpper = server.getFixerUpper(); // Paper - rewrite chunk system diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java -index 970105d598964194e167ad243f6e2fc2a19fba08..74893d67a3fb6fd906afe9253f191f0e635f3277 100644 +index 97d15b759d65e32df4d780ec4850b986fcaf6ead..bd9dbf142a303893709ff6d5e9159d12fe892bf1 100644 --- a/net/minecraft/world/entity/monster/Slime.java +++ b/net/minecraft/world/entity/monster/Slime.java @@ -408,7 +408,11 @@ public class Slime extends Mob implements Enemy { @@ -93,7 +93,7 @@ index 970105d598964194e167ad243f6e2fc2a19fba08..74893d67a3fb6fd906afe9253f191f0e final double maxHeightSlimeChunk = level.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.slimeChunk.maximum; if (random.nextInt(10) == 0 && flag && pos.getY() < maxHeightSlimeChunk) { diff --git a/net/minecraft/world/level/chunk/ChunkAccess.java b/net/minecraft/world/level/chunk/ChunkAccess.java -index 2457247d2bc1c3e3b042a091c3a8290d55203da8..97b17c07b86f188e04cf747770be37b530f1dc61 100644 +index f6f9a88283e051e6a7c96f461b68b3881b3361d2..421133e5e1ff37b0a50173bd69faef50e5b5c252 100644 --- a/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/net/minecraft/world/level/chunk/ChunkAccess.java @@ -82,6 +82,10 @@ public abstract class ChunkAccess implements BiomeManager.NoiseBiomeSource, Ligh @@ -126,7 +126,7 @@ index 2457247d2bc1c3e3b042a091c3a8290d55203da8..97b17c07b86f188e04cf747770be37b5 @Nullable diff --git a/net/minecraft/world/level/chunk/ChunkGenerator.java b/net/minecraft/world/level/chunk/ChunkGenerator.java -index 213fd45bd70d347a91c46244b61d8b77f11bf6fb..30cb24503fb2e1e3743e6d19634d77cd7de48e13 100644 +index 4e4a5595ccbadf7e2df0f6de1c8e2ceb00b9ec90..180103f3712b459b4f4202959b900a1ddf4aba61 100644 --- a/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -346,7 +346,11 @@ public abstract class ChunkGenerator { @@ -388,13 +388,13 @@ index ee0d9dddb36b6879fa113299e24f1aa3b2b151cc..3af3bf800215ef78b98a4866df572f3b int i3 = this.spreadType.evaluate(worldgenRandom, i2); int i4 = this.spreadType.evaluate(worldgenRandom, i2); diff --git a/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java b/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java -index 26b1b448c95ab38a449843a0ce929a008019b151..5660c6b1a60f78faa3a0e15f8317fea68ced7c83 100644 +index b3a538f9aebf5b6e965e1140b8fc558eb394605b..892bba74ef5bd670f30d8ab3bdb3b363ec89103d 100644 --- a/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java +++ b/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java @@ -119,8 +119,17 @@ public abstract class StructurePlacement { public abstract StructurePlacementType type(); - private static boolean probabilityReducer(long levelSeed, int regionX, int regionZ, int salt, float probability, @javax.annotation.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs; ignore here + private static boolean probabilityReducer(long levelSeed, int regionX, int regionZ, int salt, float frequency, @javax.annotation.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs; ignore here - WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); - worldgenRandom.setLargeFeatureWithSalt(levelSeed, regionX, regionZ, salt); + // DivineMC start - Implement Secure Seed @@ -408,11 +408,11 @@ index 26b1b448c95ab38a449843a0ce929a008019b151..5660c6b1a60f78faa3a0e15f8317fea6 + worldgenRandom.setLargeFeatureWithSalt(levelSeed, regionX, regionZ, salt); + } + // DivineMC end - Implement Secure Seed - return worldgenRandom.nextFloat() < probability; + return worldgenRandom.nextFloat() < frequency; } diff --git a/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java b/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java -index 3b66b16612b8328eaea786cc8ba3a59fd67900e4..fc31c2419fc895942391bbace8323791e0c7bf38 100644 +index 4aa68163958e89521f542470c473f8d5980f5d4b..527e8e874bf4496504c9499a6ba6dce56d50e983 100644 --- a/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java +++ b/net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.java @@ -66,7 +66,11 @@ public class JigsawPlacement { diff --git a/divinemc-server/minecraft-patches/features/0042-Dynamic-Activation-of-Brain.patch b/divinemc-server/minecraft-patches/features/0042-Dynamic-Activation-of-Brain.patch index fc6fb72..620ecb9 100644 --- a/divinemc-server/minecraft-patches/features/0042-Dynamic-Activation-of-Brain.patch +++ b/divinemc-server/minecraft-patches/features/0042-Dynamic-Activation-of-Brain.patch @@ -31,7 +31,7 @@ index ca21597263cb430e2a5ae07e8cecfb0d53a270d2..226088405c019922085285ba5d04d7c1 } } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 4f4ede83b6ca5e1884607410b526a675fed4d42d..b240c7f2579e25d520fbc0ab08e801028bc15192 100644 +index 97ecdd880c0225d176859517ed715e2b4159ddeb..2aac1cdfa0c3cdf3d56d57452d45318ef6793cbb 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -830,6 +830,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -43,7 +43,7 @@ index 4f4ede83b6ca5e1884607410b526a675fed4d42d..b240c7f2579e25d520fbc0ab08e80102 if (!tickRateManager.isEntityFrozen(entity)) { entity.checkDespawn(); diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index b5004de3ca8951a5884a3b62b129aa2588a67af7..6724ef32e4d0de6ca0965b8b96430b68179b4bd7 100644 +index c36d133e877353f9509543b0833be745286574e9..ee8cdf62642b2713dbae9d1735db7c5e5fd55a55 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -367,6 +367,8 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @@ -56,7 +56,7 @@ index b5004de3ca8951a5884a3b62b129aa2588a67af7..6724ef32e4d0de6ca0965b8b96430b68 // Paper start - EAR 2 public final boolean defaultActivationState; diff --git a/net/minecraft/world/entity/EntityType.java b/net/minecraft/world/entity/EntityType.java -index c7544cad07293a504204cfa8bf9d8322ef16118c..e680780a0e46e9e5f9126bd11a20b918e8c36066 100644 +index 881575864f864305973033ac6e664fc47e49ca16..7d5940327c5e7a945165228d502f678a8234cd02 100644 --- a/net/minecraft/world/entity/EntityType.java +++ b/net/minecraft/world/entity/EntityType.java @@ -1192,6 +1192,7 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -68,7 +68,7 @@ index c7544cad07293a504204cfa8bf9d8322ef16118c..e680780a0e46e9e5f9126bd11a20b918 @Nullable private Component description; diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java -index c3a7a41b399590e2c004fda4e97b1935575c4972..dd25b049615c4465c1bf9ea0004dd649f5c55c5f 100644 +index c551b8c8c9b9d070afdbcf5cfcdb35e99830fd91..b61b9c512f23d5ae0465fe7196fbb222918b0988 100644 --- a/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java @@ -220,10 +220,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -147,7 +147,7 @@ index 653c58c7637c46c8b46a5082f671324a2221d431..a4328a427636aa845d6627ecb75a9efe public boolean hasTasks() { for (WrappedGoal task : this.availableGoals) { diff --git a/net/minecraft/world/entity/animal/allay/Allay.java b/net/minecraft/world/entity/animal/allay/Allay.java -index 3a2451bfa5e59de51d703eac8a536284e1d3348b..2422895ca4a2939f52f119384f498bd23bf9b7cc 100644 +index ae68a19a0b13bc626efec6a028f3abba4a436f3b..c5526952961c3c2705f946021ff3a8306ad2bde1 100644 --- a/net/minecraft/world/entity/animal/allay/Allay.java +++ b/net/minecraft/world/entity/animal/allay/Allay.java @@ -112,6 +112,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @@ -156,8 +156,8 @@ index 3a2451bfa5e59de51d703eac8a536284e1d3348b..2422895ca4a2939f52f119384f498bd2 private org.purpurmc.purpur.controller.FlyingMoveControllerWASD purpurController; // Purpur - Ridables + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Allay(EntityType entityType, Level level) { - super(entityType, level); + public Allay(EntityType type, Level level) { + super(type, level); @@ -266,10 +267,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @Override @@ -177,7 +177,7 @@ index 3a2451bfa5e59de51d703eac8a536284e1d3348b..2422895ca4a2939f52f119384f498bd2 @Override diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 1927f8be451258d9f0f8eec1617d103a4140e1e7..781ce63ff615d718cdf14bf6c3a4c742f628a920 100644 +index a952e78ac0c1fa7a2728fc3036b93e69e2fefb8d..8540ee65e1733ab37f77c964b8514e08d08781f3 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -111,6 +111,7 @@ public class Axolotl extends Animal implements Bucketable { @@ -186,8 +186,8 @@ index 1927f8be451258d9f0f8eec1617d103a4140e1e7..781ce63ff615d718cdf14bf6c3a4c742 private static final int REGEN_BUFF_BASE_DURATION = 100; + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Axolotl(EntityType entityType, Level level) { - super(entityType, level); + public Axolotl(EntityType type, Level level) { + super(type, level); @@ -372,13 +373,16 @@ public class Axolotl extends Animal implements Bucketable { @Override @@ -212,7 +212,7 @@ index 1927f8be451258d9f0f8eec1617d103a4140e1e7..781ce63ff615d718cdf14bf6c3a4c742 public static AttributeSupplier.Builder createAttributes() { diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java -index 1a504e30602d7d8feaf7a9180adf6382596aae02..9656c1bf22b1b6c945a8ba5603742261db650fd5 100644 +index 7643e8d1b89a23354c27395509407c20e3d93b69..ccd4a12b5bf2a064f8ea7d49113a18b541778ca5 100644 --- a/net/minecraft/world/entity/animal/frog/Frog.java +++ b/net/minecraft/world/entity/animal/frog/Frog.java @@ -105,6 +105,7 @@ public class Frog extends Animal { @@ -221,8 +221,8 @@ index 1a504e30602d7d8feaf7a9180adf6382596aae02..9656c1bf22b1b6c945a8ba5603742261 private org.purpurmc.purpur.controller.WaterMoveControllerWASD purpurWaterController; // Purpur - Ridables + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Frog(EntityType entityType, Level level) { - super(entityType, level); + public Frog(EntityType type, Level level) { + super(type, level); @@ -258,10 +259,13 @@ public class Frog extends Animal { @Override @@ -242,7 +242,7 @@ index 1a504e30602d7d8feaf7a9180adf6382596aae02..9656c1bf22b1b6c945a8ba5603742261 @Override diff --git a/net/minecraft/world/entity/animal/frog/Tadpole.java b/net/minecraft/world/entity/animal/frog/Tadpole.java -index 8312a0d5229043fd84125db809c4346bb80f2bc0..1a437d3e09484f4bacc4ef22b3e5f1c3c58ca42f 100644 +index 37b1674c3f89d7ddba054b066df957f3337f4a89..e437dad4f65a77b1ecbefe324355e33e0abcb76d 100644 --- a/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -64,6 +64,7 @@ public class Tadpole extends AbstractFish { @@ -251,8 +251,8 @@ index 8312a0d5229043fd84125db809c4346bb80f2bc0..1a437d3e09484f4bacc4ef22b3e5f1c3 private org.purpurmc.purpur.controller.WaterMoveControllerWASD purpurController; // Purpur - Ridables + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Tadpole(EntityType entityType, Level level) { - super(entityType, level); + public Tadpole(EntityType type, Level level) { + super(type, level); @@ -134,10 +135,13 @@ public class Tadpole extends AbstractFish { @Override @@ -272,7 +272,7 @@ index 8312a0d5229043fd84125db809c4346bb80f2bc0..1a437d3e09484f4bacc4ef22b3e5f1c3 public static AttributeSupplier.Builder createAttributes() { diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java -index 73fe7a8c216aed7dc2274fd53fb126d85ec5137d..d4de51a8fd1f2adfc35eb6e23cda6905bd376515 100644 +index 58ee22461c0330e2fbbbf283c154b8141e2d1953..1ef0fa87f55a4fe6309ed456b0458287925f9835 100644 --- a/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java @@ -93,6 +93,7 @@ public class Goat extends Animal { @@ -281,8 +281,8 @@ index 73fe7a8c216aed7dc2274fd53fb126d85ec5137d..d4de51a8fd1f2adfc35eb6e23cda6905 private int lowerHeadTick; + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Goat(EntityType entityType, Level level) { - super(entityType, level); + public Goat(EntityType type, Level level) { + super(type, level); @@ -232,10 +233,13 @@ public class Goat extends Animal { @Override @@ -302,7 +302,7 @@ index 73fe7a8c216aed7dc2274fd53fb126d85ec5137d..d4de51a8fd1f2adfc35eb6e23cda6905 @Override diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index b22519a6d39bd52381fa6c17b9a415944374368b..10e36ec8d5e3ee44400e916632771a9cc1381664 100644 +index d115155616a0a76a8429c0f5645a8cba73d8bc80..e998708d6f0a588710d3fc8dea08bac2470d5557 100644 --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -87,6 +87,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -311,8 +311,8 @@ index b22519a6d39bd52381fa6c17b9a415944374368b..10e36ec8d5e3ee44400e916632771a9c ); + private int behaviorTick; // DivineMC - Dynamic Activation of Brain - public Hoglin(EntityType entityType, Level level) { - super(entityType, level); + public Hoglin(EntityType type, Level level) { + super(type, level); @@ -205,18 +206,21 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @Override @@ -346,7 +346,7 @@ index b22519a6d39bd52381fa6c17b9a415944374368b..10e36ec8d5e3ee44400e916632771a9c @Override diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java -index dea7c211a2d2ee8f1833eaad49513b3690b06c55..e2b467cfc19dfcf1fb617e57251451aa88de727d 100644 +index 359665cfb2004c49f8e8a19edc7b31c99ce863bf..011d293a3cf7d0d2510619bcd282a51b4b84606c 100644 --- a/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -128,6 +128,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -355,8 +355,8 @@ index dea7c211a2d2ee8f1833eaad49513b3690b06c55..e2b467cfc19dfcf1fb617e57251451aa // CraftBukkit end + private int behaviorTick; // DivineMC - Dynamic Activation of Brain - public Piglin(EntityType entityType, Level level) { - super(entityType, level); + public Piglin(EntityType type, Level level) { + super(type, level); @@ -345,10 +346,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override @@ -376,7 +376,7 @@ index dea7c211a2d2ee8f1833eaad49513b3690b06c55..e2b467cfc19dfcf1fb617e57251451aa @Override diff --git a/net/minecraft/world/entity/monster/warden/Warden.java b/net/minecraft/world/entity/monster/warden/Warden.java -index ac7691a2a3e4c9db040408d1ecba780a89dea50e..e3478244e430faa614f23c288019303bd6bb0e04 100644 +index e9881eac70feebeb08f464efd4fa953cec9f62bf..6edd808e8d0c940dfa6dea463d549d6e80a5d465 100644 --- a/net/minecraft/world/entity/monster/warden/Warden.java +++ b/net/minecraft/world/entity/monster/warden/Warden.java @@ -107,6 +107,7 @@ public class Warden extends Monster implements VibrationSystem { @@ -385,8 +385,8 @@ index ac7691a2a3e4c9db040408d1ecba780a89dea50e..e3478244e430faa614f23c288019303b AngerManagement angerManagement = new AngerManagement(this::canTargetEntity, Collections.emptyList()); + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Warden(EntityType entityType, Level level) { - super(entityType, level); + public Warden(EntityType type, Level level) { + super(type, level); @@ -300,19 +301,22 @@ public class Warden extends Monster implements VibrationSystem { @Override @@ -422,7 +422,7 @@ index ac7691a2a3e4c9db040408d1ecba780a89dea50e..e3478244e430faa614f23c288019303b @Override diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java -index 3bcd3b7c9f7ad408d66fad5b1b70ebee96a61b43..94424c01b0c4a28c7eafd5c02d068b9c41e451e2 100644 +index e89ff53c568013a5f53afcf5759314221d37adf4..5443677ed4ecaaf3b647e3f72802e80d7d22fad9 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java @@ -178,6 +178,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -432,8 +432,8 @@ index 3bcd3b7c9f7ad408d66fad5b1b70ebee96a61b43..94424c01b0c4a28c7eafd5c02d068b9c + public long nextGolemPanic = -1; // DivineMC - Dynamic Activation of Brain + private int behaviorTick = 0; // DivineMC - Dynamic Activation of Brain - public Villager(EntityType entityType, Level level) { - this(entityType, level, VillagerType.PLAINS); + public Villager(EntityType type, Level level) { + this(type, level, VillagerType.PLAINS); @@ -398,7 +400,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } else { this.isLobotomized = false; diff --git a/divinemc-server/minecraft-patches/features/0043-Petal-Async-Pathfinding.patch b/divinemc-server/minecraft-patches/features/0043-Petal-Async-Pathfinding.patch index b422b52..725c622 100644 --- a/divinemc-server/minecraft-patches/features/0043-Petal-Async-Pathfinding.patch +++ b/divinemc-server/minecraft-patches/features/0043-Petal-Async-Pathfinding.patch @@ -295,7 +295,7 @@ index 73bba480f3f017a8aed14562bd82ba33db04391c..b31976b68eec3cd0ab0620a487e99ecd Node node = path.getNode(i); this.doorPos = new BlockPos(node.x, node.y + 1, node.z); diff --git a/net/minecraft/world/entity/ai/navigation/AmphibiousPathNavigation.java b/net/minecraft/world/entity/ai/navigation/AmphibiousPathNavigation.java -index 458ceec68ca138b0aa9b70d6c934473c01d468f4..ff06ba3ede2f2e40aae8f9a0b997150cfaaeecb7 100644 +index 59236a4f5fcb9212b7ef66ce87bd8efcdea5383e..900afa1ccd700cc2cf73ecd97093d6c5514ce7ed 100644 --- a/net/minecraft/world/entity/ai/navigation/AmphibiousPathNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/AmphibiousPathNavigation.java @@ -12,9 +12,25 @@ public class AmphibiousPathNavigation extends PathNavigation { @@ -325,7 +325,7 @@ index 458ceec68ca138b0aa9b70d6c934473c01d468f4..ff06ba3ede2f2e40aae8f9a0b997150c } diff --git a/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java b/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java -index e21a79f77b6775764816ec45fc9023f52a00af84..2e82b6b884ff6296b2affa29e7b3ce0551372265 100644 +index c20d10250e2fdd563d0fcfac47de1e276393b529..651edbf9d8545ea2fcd37b65ca39ed0df3228bf4 100644 --- a/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java @@ -15,9 +15,25 @@ public class FlyingPathNavigation extends PathNavigation { @@ -363,7 +363,7 @@ index e21a79f77b6775764816ec45fc9023f52a00af84..2e82b6b884ff6296b2affa29e7b3ce05 if (!this.isDone()) { if (this.canUpdatePath()) { diff --git a/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java b/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java -index f2f07146a3638fe07f4814abd22a9bf815507fd2..2ee4c8f02bd62c67bacb1d817b3aed24a79dc050 100644 +index 5ccc526adb65b2107afd944a52c1246738b4bcad..d26f0d0217d6c9d24c3db117140980d519f69227 100644 --- a/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java @@ -25,9 +25,25 @@ public class GroundPathNavigation extends PathNavigation { @@ -393,7 +393,7 @@ index f2f07146a3638fe07f4814abd22a9bf815507fd2..2ee4c8f02bd62c67bacb1d817b3aed24 } diff --git a/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index 1f45b389553cd5782972193537ce7adcd9c7c600..777b3ccce23b0ffd84176b12207a1bbc4beda379 100644 +index 17d2a937ab6f325295c0b5b9b0a681952d4bce85..b469f5be3bebd4beb0bf933e33cb9c8d49a940d8 100644 --- a/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/PathNavigation.java @@ -173,6 +173,10 @@ public abstract class PathNavigation { @@ -410,10 +410,10 @@ index 1f45b389553cd5782972193537ce7adcd9c7c600..777b3ccce23b0ffd84176b12207a1bbc @@ -197,11 +201,29 @@ public abstract class PathNavigation { int i = (int)(followRange + regionOffset); PathNavigationRegion pathNavigationRegion = new PathNavigationRegion(this.level, blockPos.offset(-i, -i, -i), blockPos.offset(i, i, i)); - Path path = this.pathFinder.findPath(pathNavigationRegion, this.mob, targets, followRange, accuracy, this.maxVisitedNodesMultiplier); + Path path = this.pathFinder.findPath(pathNavigationRegion, this.mob, targets, followRange, reachRange, this.maxVisitedNodesMultiplier); - if (path != null && path.getTarget() != null) { - this.targetPos = path.getTarget(); -- this.reachRange = accuracy; +- this.reachRange = reachRange; - this.resetStuckTimeout(); + // DivineMC start - async path processing + if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.asyncPathfinding) { @@ -426,14 +426,14 @@ index 1f45b389553cd5782972193537ce7adcd9c7c600..777b3ccce23b0ffd84176b12207a1bbc + + if (processedPath != null && processedPath.getTarget() != null) { + this.targetPos = processedPath.getTarget(); -+ this.reachRange = accuracy; ++ this.reachRange = reachRange; + this.resetStuckTimeout(); + } + }); + } else { + if (path != null && path.getTarget() != null) { + this.targetPos = path.getTarget(); -+ this.reachRange = accuracy; ++ this.reachRange = reachRange; + this.resetStuckTimeout(); + } } @@ -451,7 +451,7 @@ index 1f45b389553cd5782972193537ce7adcd9c7c600..777b3ccce23b0ffd84176b12207a1bbc + if (path.isProcessed() && this.path.getNodeCount() <= 0) { // DivineMC - only check node count if processed return false; } else { - this.speedModifier = speed; + this.speedModifier = speedModifier; @@ -276,6 +298,7 @@ public abstract class PathNavigation { if (this.hasDelayedRecomputation) { this.recomputePath(); @@ -478,7 +478,7 @@ index 1f45b389553cd5782972193537ce7adcd9c7c600..777b3ccce23b0ffd84176b12207a1bbc Vec3 vec3 = new Vec3((endNode.x + this.mob.getX()) / 2.0, (endNode.y + this.mob.getY()) / 2.0, (endNode.z + this.mob.getZ()) / 2.0); return pos.closerToCenterThan(vec3, this.path.getNodeCount() - this.path.getNextNodeIndex()); diff --git a/net/minecraft/world/entity/ai/navigation/WaterBoundPathNavigation.java b/net/minecraft/world/entity/ai/navigation/WaterBoundPathNavigation.java -index ea0f6a19e4a79538e68917ba86cbc98be4dbca8d..030d90f93dbbc07e94d4776198c368650539bf91 100644 +index a0b7caf807602ee1f62bf05764cc16478f981da7..2ffa8ba8e2eca6e9c7ec95dcbdf89c0f4e109a7d 100644 --- a/net/minecraft/world/entity/ai/navigation/WaterBoundPathNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/WaterBoundPathNavigation.java @@ -15,11 +15,27 @@ public class WaterBoundPathNavigation extends PathNavigation { @@ -557,10 +557,10 @@ index 1f96fd5085bacb4c584576c7cb9f51e7898e9b03..d975b89c7bb57562852596751a4ff881 + // DivineMC end - async pathfinding } diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java -index a520052f0feae97c5ed8eb4af4fb48cdf56d6550..127840b75b39ec6a68e504396948c3c523535fd9 100644 +index 968ec5a7188cc4e4a60956e12e44c4b746cf78d1..df32142019bc81896e3e84d3f69e23f5ae8cbd83 100644 --- a/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java -@@ -944,7 +944,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -942,7 +942,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } else { Bee.this.pathfindRandomlyTowards(Bee.this.hivePos); } @@ -569,7 +569,7 @@ index a520052f0feae97c5ed8eb4af4fb48cdf56d6550..127840b75b39ec6a68e504396948c3c5 boolean flag = this.pathfindDirectlyTowards(Bee.this.hivePos); if (!flag) { this.dropAndBlacklistHive(); -@@ -998,7 +998,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -996,7 +996,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { return true; } else { Path path = Bee.this.navigation.getPath(); @@ -579,7 +579,7 @@ index a520052f0feae97c5ed8eb4af4fb48cdf56d6550..127840b75b39ec6a68e504396948c3c5 } } diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java -index 9656c1bf22b1b6c945a8ba5603742261db650fd5..be75453e5426d2d2819983b17014e0e8675961bd 100644 +index ccd4a12b5bf2a064f8ea7d49113a18b541778ca5..7893205fa74c348d5345ad48a1928ae56caf46d3 100644 --- a/net/minecraft/world/entity/animal/frog/Frog.java +++ b/net/minecraft/world/entity/animal/frog/Frog.java @@ -480,6 +480,17 @@ public class Frog extends Animal { @@ -613,7 +613,7 @@ index 9656c1bf22b1b6c945a8ba5603742261db650fd5..be75453e5426d2d2819983b17014e0e8 } } diff --git a/net/minecraft/world/entity/monster/Drowned.java b/net/minecraft/world/entity/monster/Drowned.java -index 12650e3981fe48ab0cb4398e021e768eea03bd60..63e6fbcdead96fb98a527b8c6ba76d49c9d3eb66 100644 +index 28fb51950c38ffbc88c3e01c113310fd2bccd097..71864c239da6e12bb897d171cdeff314fed54b5c 100644 --- a/net/minecraft/world/entity/monster/Drowned.java +++ b/net/minecraft/world/entity/monster/Drowned.java @@ -304,7 +304,7 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -626,7 +626,7 @@ index 12650e3981fe48ab0cb4398e021e768eea03bd60..63e6fbcdead96fb98a527b8c6ba76d49 if (target != null) { double d = this.distanceToSqr(target.getX(), target.getY(), target.getZ()); diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java -index 592095f4c78866c53745786a615f1681dcaf6bf6..06a6bc22e408ab4366715fb57edfede37a9e5117 100644 +index da7644dd2b9e86ec8947250ff998fb554e881161..c842e500ddc229bc776c29a39c6f8a71237ea810 100644 --- a/net/minecraft/world/entity/monster/Strider.java +++ b/net/minecraft/world/entity/monster/Strider.java @@ -560,9 +560,25 @@ public class Strider extends Animal implements ItemSteerable { @@ -656,7 +656,7 @@ index 592095f4c78866c53745786a615f1681dcaf6bf6..06a6bc22e408ab4366715fb57edfede3 } diff --git a/net/minecraft/world/entity/monster/warden/Warden.java b/net/minecraft/world/entity/monster/warden/Warden.java -index e3478244e430faa614f23c288019303bd6bb0e04..862a7d464e1045e543049523d771bf79e8da7541 100644 +index 6edd808e8d0c940dfa6dea463d549d6e80a5d465..56f0aefd0f5c3087fc8122354fcb1b753aff2a4c 100644 --- a/net/minecraft/world/entity/monster/warden/Warden.java +++ b/net/minecraft/world/entity/monster/warden/Warden.java @@ -572,6 +572,16 @@ public class Warden extends Monster implements VibrationSystem { @@ -677,7 +677,7 @@ index e3478244e430faa614f23c288019303bd6bb0e04..862a7d464e1045e543049523d771bf79 @Override protected float distance(Node first, Node second) { diff --git a/net/minecraft/world/level/pathfinder/Path.java b/net/minecraft/world/level/pathfinder/Path.java -index d8d086b54f07a855cf312b6f742802e267dfd034..bd02babf2a9bb4bd5585f408deeba0c70b721dd0 100644 +index 4a17d60e09bc2a73c50a1c981e4b50ae3eabe9ee..7f4fd1bfb26651a0c61728479b4827c3c8140979 100644 --- a/net/minecraft/world/level/pathfinder/Path.java +++ b/net/minecraft/world/level/pathfinder/Path.java @@ -11,7 +11,7 @@ import net.minecraft.util.VisibleForDebug; @@ -710,13 +710,13 @@ index d8d086b54f07a855cf312b6f742802e267dfd034..bd02babf2a9bb4bd5585f408deeba0c7 @@ -101,6 +112,7 @@ public final class Path { } - public boolean sameAs(@Nullable Path pathEntity) { -+ if (pathEntity == this) return true; // DivineMC - async path processing - return pathEntity != null && this.nodes.equals(pathEntity.nodes); + public boolean sameAs(@Nullable Path path) { ++ if (path == this) return true; // DivineMC - async path processing + return path != null && this.nodes.equals(path.nodes); } diff --git a/net/minecraft/world/level/pathfinder/PathFinder.java b/net/minecraft/world/level/pathfinder/PathFinder.java -index 98abda72d88fb38a5427a15cc59094f3a7db30dc..d829ed8c15779d2c8f2df51d2136f206c79fd2bf 100644 +index f41f6c0be37f89c54cee3e02494c1412f309266f..57d9a53b75826472e24e2760046fe44a6fd7258c 100644 --- a/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/net/minecraft/world/level/pathfinder/PathFinder.java @@ -23,11 +23,19 @@ public class PathFinder { @@ -740,10 +740,10 @@ index 98abda72d88fb38a5427a15cc59094f3a7db30dc..d829ed8c15779d2c8f2df51d2136f206 public void setCaptureDebug(BooleanSupplier captureDebug) { this.captureDebug = captureDebug; -@@ -39,26 +47,63 @@ public class PathFinder { +@@ -39,26 +47,62 @@ public class PathFinder { @Nullable - public Path findPath(PathNavigationRegion region, Mob mob, Set targetPositions, float maxRange, int accuracy, float searchDepthMultiplier) { + public Path findPath(PathNavigationRegion region, Mob mob, Set targets, float maxRange, int reachRange, float maxVisitedNodesMultiplier) { - this.openSet.clear(); - this.nodeEvaluator.prepare(region, mob); - Node start = this.nodeEvaluator.getStart(); @@ -762,24 +762,23 @@ index 98abda72d88fb38a5427a15cc59094f3a7db30dc..d829ed8c15779d2c8f2df51d2136f206 } else { // Paper start - Perf: remove streams and optimize collection List> map = Lists.newArrayList(); - for (BlockPos pos : targetPositions) { + for (BlockPos pos : targets) { - map.add(new java.util.AbstractMap.SimpleEntry<>(this.nodeEvaluator.getTarget(pos.getX(), pos.getY(), pos.getZ()), pos)); + map.add(new java.util.AbstractMap.SimpleEntry<>(nodeEvaluator.getTarget(pos.getX(), pos.getY(), pos.getZ()), pos)); // DivineMC - handle nodeEvaluatorGenerator } // Paper end - Perf: remove streams and optimize collection -- Path path = this.findPath(start, map, maxRange, accuracy, searchDepthMultiplier); +- Path path = this.findPath(start, map, maxRange, reachRange, maxVisitedNodesMultiplier); - this.nodeEvaluator.done(); - return path; + // DivineMC start - async path processing + if (this.nodeEvaluatorGenerator == null) { -+ // run sync :( + org.bxteam.divinemc.async.pathfinding.NodeEvaluatorCache.removeNodeEvaluator(nodeEvaluator); -+ return this.findPath(start, map, maxRange, accuracy, searchDepthMultiplier); ++ return this.findPath(start, map, maxRange, reachRange, maxVisitedNodesMultiplier); + } + -+ return new org.bxteam.divinemc.async.pathfinding.AsyncPath(Lists.newArrayList(), targetPositions, () -> { ++ return new org.bxteam.divinemc.async.pathfinding.AsyncPath(Lists.newArrayList(), targets, () -> { + try { -+ return this.processPath(nodeEvaluator, start, map, maxRange, accuracy, searchDepthMultiplier); ++ return this.processPath(nodeEvaluator, start, map, maxRange, reachRange, maxVisitedNodesMultiplier); + } catch (Exception e) { + e.printStackTrace(); + return null; @@ -793,10 +792,10 @@ index 98abda72d88fb38a5427a15cc59094f3a7db30dc..d829ed8c15779d2c8f2df51d2136f206 } @Nullable - private Path findPath(Node node, List> positions, float maxRange, int accuracy, float searchDepthMultiplier) { // Paper - optimize collection + private Path findPath(Node node, List> positions, float maxRange, int reachRange, float maxVisitedNodesMultiplier) { // Paper - optimize collection + // DivineMC start - split pathfinding into the original sync method for compat and processing for delaying + try { -+ return this.processPath(this.nodeEvaluator, node, positions, maxRange, accuracy, searchDepthMultiplier); ++ return this.processPath(this.nodeEvaluator, node, positions, maxRange, reachRange, maxVisitedNodesMultiplier); + } catch (Exception e) { + e.printStackTrace(); + return null; @@ -805,13 +804,13 @@ index 98abda72d88fb38a5427a15cc59094f3a7db30dc..d829ed8c15779d2c8f2df51d2136f206 + } + } + -+ private synchronized @org.jetbrains.annotations.NotNull Path processPath(NodeEvaluator nodeEvaluator, Node node, List> positions, float maxRange, int accuracy, float searchDepthMultiplier) { // sync to only use the caching functions in this class on a single thread ++ private synchronized @org.jetbrains.annotations.NotNull Path processPath(NodeEvaluator nodeEvaluator, Node node, List> positions, float maxRange, int reachRange, float maxVisitedNodesMultiplier) { // sync to only use the caching functions in this class on a single thread + org.apache.commons.lang3.Validate.isTrue(!positions.isEmpty()); // ensure that we have at least one position, which means we'll always return a path + // DivineMC end - split pathfinding into the original sync method for compat and processing for delaying // Set set = targetPositions.keySet(); // Paper - unused node.g = 0.0F; node.h = this.getBestH(node, positions); // Paper - optimize collection -@@ -96,7 +141,7 @@ public class PathFinder { +@@ -96,7 +140,7 @@ public class PathFinder { if (!(node1.distanceTo(node) >= maxRange)) { diff --git a/divinemc-server/minecraft-patches/features/0044-Petal-Multithreaded-Tracker.patch b/divinemc-server/minecraft-patches/features/0044-Petal-Multithreaded-Tracker.patch index 1960364..fbe3ccf 100644 --- a/divinemc-server/minecraft-patches/features/0044-Petal-Multithreaded-Tracker.patch +++ b/divinemc-server/minecraft-patches/features/0044-Petal-Multithreaded-Tracker.patch @@ -66,7 +66,7 @@ index 9c0c99b936b4a82ebfe924866e53ec71f7bbe9ad..01ed1e3572e9c2ccfd19df117cda0d5c .add( new ClientboundUpdateAttributesPacket.AttributeSnapshot( diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java -index 6251e7dc5bbe7eee18b0c5a8979d9218fee728d0..5b16dad04bf4540df750ce06c18af4b1d80d8648 100644 +index 188a62f00bd541f27adaaa4250b56276565f0d74..04dd1bec1aff470e67a21fb0b25932685992ec82 100644 --- a/net/minecraft/server/level/ChunkMap.java +++ b/net/minecraft/server/level/ChunkMap.java @@ -253,9 +253,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -391,10 +391,10 @@ index 737a6ff0bfec9b555fa425619d97b80ef95cb3e6..cfa2c3aa357a0dbb7edf7f0c8cebea5e } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index b240c7f2579e25d520fbc0ab08e801028bc15192..01ad6566c236bac2141f75fa9cf37844e3d97637 100644 +index 2aac1cdfa0c3cdf3d56d57452d45318ef6793cbb..fad9facf999f7f98ea8acc6ffd87114aa21a1b3c 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java -@@ -2579,7 +2579,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2569,7 +2569,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @Override public LevelEntityGetter getEntities() { @@ -402,7 +402,7 @@ index b240c7f2579e25d520fbc0ab08e801028bc15192..01ad6566c236bac2141f75fa9cf37844 return this.moonrise$getEntityLookup(); // Paper - rewrite chunk system } -@@ -2858,7 +2857,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2848,7 +2847,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } map.carriedByPlayers.remove(player); @@ -412,7 +412,7 @@ index b240c7f2579e25d520fbc0ab08e801028bc15192..01ad6566c236bac2141f75fa9cf37844 } } diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2638343fcccbaf81d19dcd4fd09534b2e7bee796..e5ece51effaddeb49b689f897da5172958360d5f 100644 +index 58ab04ba1296904bbff1abc549c0efa5b6f239c5..b0c702253173c86362907cba71e3c0a5f408edf2 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1942,7 +1942,6 @@ public class ServerGamePacketListenerImpl @@ -424,10 +424,10 @@ index 2638343fcccbaf81d19dcd4fd09534b2e7bee796..e5ece51effaddeb49b689f897da51729 if (this.player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 49f83d3dedc16d977f7904971af13cc17ed32882..86370c9f6e83e5815922080c10336d394075b4e9 100644 +index f15497ef868574ee2fe11611bfc31d9b102f80d0..ca392664826ca8ced5a1c2c8b2d22eb87c5bd139 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java -@@ -1359,13 +1359,13 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -1360,13 +1360,13 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin } private void refreshDirtyAttributes() { @@ -447,7 +447,7 @@ index 49f83d3dedc16d977f7904971af13cc17ed32882..86370c9f6e83e5815922080c10336d39 protected void onAttributeUpdated(Holder attribute) { diff --git a/net/minecraft/world/entity/ai/attributes/Attribute.java b/net/minecraft/world/entity/ai/attributes/Attribute.java -index 18563961e9dba1a11265c6ea708881d4e46846ff..355e552f77e7639ddf1c8b4da9868775017563c3 100644 +index 69d59650b26fcb1c654d7a784022ac7f4c9230ce..7e8fed00bbdeaa1ccd6d07312b26c1e7754c0b69 100644 --- a/net/minecraft/world/entity/ai/attributes/Attribute.java +++ b/net/minecraft/world/entity/ai/attributes/Attribute.java @@ -16,10 +16,15 @@ public class Attribute { @@ -661,10 +661,10 @@ index 325ec57df2885f5e81b8a6b61e3a9fed9484b30f..1796f0a6f647c94b0943a6003a130779 @Override diff --git a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 00c7fe0419fa44736b971b684adfe1b963e24bd5..581486ad49945d1658cb070d9f418f7a2fc9196d 100644 +index d2511e001645c30b7b4d1f2b280401c817672fdb..8ea2a1ab532fdcffab04a9019d7f617bd3e8ed8f 100644 --- a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -212,6 +212,7 @@ public class MapItemSavedData extends SavedData { +@@ -214,6 +214,7 @@ public class MapItemSavedData extends SavedData { for (int i = 0; i < this.carriedBy.size(); i++) { MapItemSavedData.HoldingPlayer holdingPlayer1 = this.carriedBy.get(i); diff --git a/divinemc-server/minecraft-patches/features/0047-C2ME-Density-Function-Compiler.patch b/divinemc-server/minecraft-patches/features/0047-C2ME-Density-Function-Compiler.patch index e6f56f6..fc33497 100644 --- a/divinemc-server/minecraft-patches/features/0047-C2ME-Density-Function-Compiler.patch +++ b/divinemc-server/minecraft-patches/features/0047-C2ME-Density-Function-Compiler.patch @@ -11,28 +11,28 @@ All functions provided by vanilla are implemented. About Density function: https://minecraft.wiki/w/Density_function diff --git a/net/minecraft/util/CubicSpline.java b/net/minecraft/util/CubicSpline.java -index c04229bbed9d1162ecec99b8042d1707e2fc09bc..45b01de060362d88a5f02a76d6e6dc01748a55f5 100644 +index e4e1ecdfd28a1c6d0fd518668caed33a8ec45ec3..929820fcab17b1b804759c5e9fa36606e3add72c 100644 --- a/net/minecraft/util/CubicSpline.java +++ b/net/minecraft/util/CubicSpline.java @@ -254,31 +254,47 @@ public interface CubicSpline> extends Bound @Override - public float apply(C input) { -- float f = this.coordinate.apply(input); + public float apply(C value) { +- float f = this.coordinate.apply(value); - int i = findIntervalStart(this.locations, f); - int i1 = this.locations.length - 1; - if (i < 0) { -- return linearExtend(f, this.locations, this.values.get(0).apply(input), this.derivatives, 0); +- return linearExtend(f, this.locations, this.values.get(0).apply(value), this.derivatives, 0); - } else if (i == i1) { -- return linearExtend(f, this.locations, this.values.get(i1).apply(input), this.derivatives, i1); +- return linearExtend(f, this.locations, this.values.get(i1).apply(value), this.derivatives, i1); + // DivineMC start - Density Function Compiler -+ float point = this.coordinate.apply(input); ++ float point = this.coordinate.apply(value); + int rangeForLocation = findIntervalStart(this.locations, point); + int last = this.locations.length - 1; + if (rangeForLocation < 0) { -+ return linearExtend(point, this.locations, this.values.get(0).apply(input), this.derivatives, 0); ++ return linearExtend(point, this.locations, this.values.get(0).apply(value), this.derivatives, 0); + } else if (rangeForLocation == last) { -+ return linearExtend(point, this.locations, this.values.get(last).apply(input), this.derivatives, last); ++ return linearExtend(point, this.locations, this.values.get(last).apply(value), this.derivatives, last); } else { - float f1 = this.locations[i]; - float f2 = this.locations[i + 1]; @@ -41,8 +41,8 @@ index c04229bbed9d1162ecec99b8042d1707e2fc09bc..45b01de060362d88a5f02a76d6e6dc01 - BoundedFloatFunction boundedFloatFunction1 = (BoundedFloatFunction)this.values.get(i + 1); - float f4 = this.derivatives[i]; - float f5 = this.derivatives[i + 1]; -- float f6 = boundedFloatFunction.apply(input); -- float f7 = boundedFloatFunction1.apply(input); +- float f6 = boundedFloatFunction.apply(value); +- float f7 = boundedFloatFunction1.apply(value); - float f8 = f4 * (f2 - f1) - (f7 - f6); - float f9 = -f5 * (f2 - f1) + (f7 - f6); - return Mth.lerp(f3, f6, f7) + f3 * (1.0F - f3) * Mth.lerp(f3, f8, f9); @@ -50,8 +50,8 @@ index c04229bbed9d1162ecec99b8042d1707e2fc09bc..45b01de060362d88a5f02a76d6e6dc01 + float loc1 = this.locations[rangeForLocation + 1]; + float locDist = loc1 - loc0; + float k = (point - loc0) / locDist; -+ float n = this.values.get(rangeForLocation).apply(input); -+ float o = this.values.get(rangeForLocation + 1).apply(input); ++ float n = this.values.get(rangeForLocation).apply(value); ++ float o = this.values.get(rangeForLocation + 1).apply(value); + float onDist = o - n; + float p = this.derivatives[rangeForLocation] * locDist - onDist; + float q = -this.derivatives[rangeForLocation + 1] * locDist + onDist; @@ -111,7 +111,7 @@ index c04229bbed9d1162ecec99b8042d1707e2fc09bc..45b01de060362d88a5f02a76d6e6dc01 } } diff --git a/net/minecraft/world/level/levelgen/DensityFunctions.java b/net/minecraft/world/level/levelgen/DensityFunctions.java -index f2fd59359c69a379b9b0a359c7fc917890b3bb74..90531d659d8be9178d8e7ed9fc20a57d204cf07e 100644 +index 73412c5b89b38f90a4c941acb3ce6f13e026c303..40d7965d95b78c6046b0da33f290eaeadd99c9b5 100644 --- a/net/minecraft/world/level/levelgen/DensityFunctions.java +++ b/net/minecraft/world/level/levelgen/DensityFunctions.java @@ -281,38 +281,66 @@ public final class DensityFunctions { @@ -339,7 +339,7 @@ index f2fd59359c69a379b9b0a359c7fc917890b3bb74..90531d659d8be9178d8e7ed9fc20a57d FlatCache("flat_cache"), Cache2D("cache_2d"), diff --git a/net/minecraft/world/level/levelgen/NoiseChunk.java b/net/minecraft/world/level/levelgen/NoiseChunk.java -index ff0c2aa0cdf7a88f67e6438dbd17d9c2bc39107a..3c3615043ab87da45b7ea47bf2f632a91a60dbc6 100644 +index 39efa4329e7517fe0ec47d1e1975fc0d4ec5727c..a743c142b152ad696506dca7b04462d2af3c6893 100644 --- a/net/minecraft/world/level/levelgen/NoiseChunk.java +++ b/net/minecraft/world/level/levelgen/NoiseChunk.java @@ -8,6 +8,7 @@ import java.util.Arrays; @@ -640,8 +640,8 @@ index ff0c2aa0cdf7a88f67e6438dbd17d9c2bc39107a..3c3615043ab87da45b7ea47bf2f632a9 + } + // DivineMC end - Density Function Compiler - CacheAllInCell(final DensityFunction noiseFilter) { - this.noiseFiller = noiseFilter; + CacheAllInCell(final DensityFunction noiseFiller) { + this.noiseFiller = noiseFiller; @@ -539,18 +737,51 @@ public class NoiseChunk implements DensityFunction.ContextProvider, DensityFunct @Override @@ -1071,8 +1071,8 @@ index ff0c2aa0cdf7a88f67e6438dbd17d9c2bc39107a..3c3615043ab87da45b7ea47bf2f632a9 + } + // DivineMC end - Density Function Compiler - NoiseInterpolator(final DensityFunction noiseFilter) { - this.noiseFiller = noiseFilter; + NoiseInterpolator(final DensityFunction noiseFiller) { + this.noiseFiller = noiseFiller; @@ -754,16 +1256,18 @@ public class NoiseChunk implements DensityFunction.ContextProvider, DensityFunct @Override diff --git a/divinemc-server/minecraft-patches/features/0049-SparklyPaper-Parallel-world-ticking.patch b/divinemc-server/minecraft-patches/features/0049-SparklyPaper-Parallel-world-ticking.patch index 978e2ec..0455abd 100644 --- a/divinemc-server/minecraft-patches/features/0049-SparklyPaper-Parallel-world-ticking.patch +++ b/divinemc-server/minecraft-patches/features/0049-SparklyPaper-Parallel-world-ticking.patch @@ -82,7 +82,7 @@ index 181fdb493f64442c659165c10e237ebc198fb6e2..43363235f3dc696973eee99548b1ae55 List states = new java.util.ArrayList<>(level.capturedBlockStates.values()); level.capturedBlockStates.clear(); diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index fa29260810341898169441f6baf72846dbd17d67..b533f3c938ba184bee7dea9f9969b59381c03912 100644 +index 698460d2dc19a0bdf6cf2a528a702d6dbc625eb2..fd9ef48ac8b23e8b409c00d154dbea27b701e3bc 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -289,6 +289,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serverPlayer1.connection.suspendFlushing()); this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit -@@ -1746,28 +1771,43 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop, ServerLevel> oldLevels = this.levels; Map, ServerLevel> newLevels = Maps.newLinkedHashMap(oldLevels); newLevels.remove(level.dimension()); @@ -333,7 +333,7 @@ index 3836d60ce84fb26f30a609486a5755d3fd1c94f1..1aab02441e4dfa7703963855d77bb918 } } else if (this.visible.remove(advancementHolder)) { diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 78f831bf369906396860a73b9aaff5dc67bcfa09..3a3346ef4df6fb424189306c2617b391a4bd2a84 100644 +index c37851095cfe637a2768de0aa179efe66e9a4cde..1afd48654a421f0e0d4d5c2f27bdfe0b5f436bb8 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java @@ -311,6 +311,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -351,7 +351,7 @@ index 78f831bf369906396860a73b9aaff5dc67bcfa09..3a3346ef4df6fb424189306c2617b391 LOGGER.info("Default game type: {}", properties.gameMode.get()); // Paper start - Unix domain socket support diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java -index 0a32c1106d3eebb8b4aa75b27b489169052897db..bfc200f39a22664204b5aa66d3911abdb368e563 100644 +index d8f0bd8173836796ecdd9771b637d24c7a807a79..e23f2004705fc299934a8b30e736ddf0a8eb2147 100644 --- a/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java @@ -176,8 +176,12 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -370,7 +370,7 @@ index 0a32c1106d3eebb8b4aa75b27b489169052897db..bfc200f39a22664204b5aa66d3911abd } } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 01ad6566c236bac2141f75fa9cf37844e3d97637..f22762d2e0c97246415669baa7b3d713bb6e929a 100644 +index fad9facf999f7f98ea8acc6ffd87114aa21a1b3c..dbc0b9f926f2738f305477730ca1ab91edbd5d2f 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -186,7 +186,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -467,7 +467,7 @@ index 01ad6566c236bac2141f75fa9cf37844e3d97637..f22762d2e0c97246415669baa7b3d713 // Paper start - extra debug info if (entity.valid) { diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index dd933185b1afadae52b51c95bb566bb453a9bfed..7eed31f8fcc7c0e1b83bd5e1eb8157580a2afd00 100644 +index 3d983372c1f519066f980fd19db9b7d3c36b35dd..9ca749141b063b84042285116cb65c8e3ff7ec5c 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java @@ -444,6 +444,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -520,7 +520,7 @@ index dd933185b1afadae52b51c95bb566bb453a9bfed..7eed31f8fcc7c0e1b83bd5e1eb815758 // Paper end - Inventory close reason this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId)); diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index c8e68bbb210457366822f2c4a01afb49693035ac..8524060daabd3bc34c938313f30ed247759bdd5a 100644 +index 2425ecc8c27647acb5cb6ef1989cc7db715d2392..1ce1de38992f1368bf49432d690bebb0289a7561 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -149,6 +149,7 @@ public abstract class PlayerList { @@ -640,10 +640,10 @@ index f9e7532f86122a379692561a639a209a126e8bba..839f6b7696ef85314da185bedba7cfc5 if (isLocatorBarEnabledFor(player)) { if (!connection.isBroken()) { diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 6724ef32e4d0de6ca0965b8b96430b68179b4bd7..167c244433fd77b5d0cc0975965f04c5d88001fa 100644 +index ee8cdf62642b2713dbae9d1735db7c5e5fd55a55..714a7722a45798a445acf3aeb1e7db5d250a9670 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -3549,14 +3549,34 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3548,14 +3548,34 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name if (this.portalProcess != null) { if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) { this.setPortalCooldown(); @@ -684,7 +684,7 @@ index 6724ef32e4d0de6ca0965b8b96430b68179b4bd7..167c244433fd77b5d0cc0975965f04c5 } else if (this.portalProcess.hasExpired()) { this.portalProcess = null; } -@@ -4134,6 +4154,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4133,6 +4153,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @Nullable private Entity teleportCrossDimension(ServerLevel oldLevel, ServerLevel newLevel, TeleportTransition teleportTransition) { @@ -796,7 +796,7 @@ index 6adf1b2250234ede6e6f498ed0990ab523f09b8e..a8ae790a7b9bfd0d78cac0577bb7a4dd entity.getBrain().eraseMemory(MemoryModuleType.POTENTIAL_JOB_SITE); } diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java -index 94424c01b0c4a28c7eafd5c02d068b9c41e451e2..087fc14bbfaf63bf5ba5724e10c6f005a404f733 100644 +index 5443677ed4ecaaf3b647e3f72802e80d7d22fad9..f200827d35d981aef06b8136557b92fc9a566239 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java @@ -793,13 +793,24 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -831,7 +831,7 @@ index 94424c01b0c4a28c7eafd5c02d068b9c41e451e2..087fc14bbfaf63bf5ba5724e10c6f005 }); } diff --git a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -index 382c8b51fbf908068f4e5bef01d71441f8c85d1a..71df0cd87e66fd052aea5dc9c6961a53235531d5 100644 +index 9213d25928066ee6722f1a145ae37e99d6e62582..28f0b59500d67bdd92c97a7e138c94887caa043b 100644 --- a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java @@ -104,43 +104,53 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { @@ -922,7 +922,7 @@ index 382c8b51fbf908068f4e5bef01d71441f8c85d1a..71df0cd87e66fd052aea5dc9c6961a53 } else { Entity entity = owner.teleport( diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java -index 4354aafdd29c397d1318ae71dc365e7ca0aa781c..97397e5849d3ddc14506776431a69939a2204765 100644 +index c0b54e17d75150b1114a9d5895311995726bb88f..c88b0567d1b9377bfca4e4a62d8eb22daccd83a8 100644 --- a/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -96,8 +96,14 @@ public abstract class AbstractContainerMenu { @@ -941,7 +941,7 @@ index 4354aafdd29c397d1318ae71dc365e7ca0aa781c..97397e5849d3ddc14506776431a69939 this.containerId = containerId; } diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java -index 358d69bdca0aa46d1952d3ef9bf9b65dc39a3338..d04167eccda1fe29abe7fc28cab0c837a14e47ab 100644 +index e4bcd4a3cbbc8942d52e5f3c7a4fb1572fdef91c..52a8a818a636e35b486b8aaf482cd68849a0bbcd 100644 --- a/net/minecraft/world/item/ItemStack.java +++ b/net/minecraft/world/item/ItemStack.java @@ -399,8 +399,10 @@ public final class ItemStack implements DataComponentHolder { @@ -958,7 +958,7 @@ index 358d69bdca0aa46d1952d3ef9bf9b65dc39a3338..d04167eccda1fe29abe7fc28cab0c837 serverLevel.capturedBlockStates.clear(); org.bukkit.event.world.StructureGrowEvent structureEvent = null; diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java -index c8f5462bfd4d0fd24dfb20116ad5eb3489484042..49c4d40e802f8adaba52d929ba013d3953704989 100644 +index 79627c421088d439745164d7652a0cc1d93ced30..a8c2e02450caa52714bc3e064237d12fa56b4207 100644 --- a/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java @@ -166,6 +166,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -1079,7 +1079,7 @@ index d306f5f524dc64618df94c9783c2168dc561a5e3..6a0c4dc2ff5e3d82e811db63dc9da7b9 return true; } else { diff --git a/net/minecraft/world/level/block/RedStoneWireBlock.java b/net/minecraft/world/level/block/RedStoneWireBlock.java -index 7d7e7a87f5c9bbd9535bf2105e05d7abf08fc3dc..11356bfa7b12739f9bb9f780d7fcafeb39775d12 100644 +index eff16b8931cba66a7159a313abb2b98cb292a77d..846cf81e9446214510ec99f2809976612049255e 100644 --- a/net/minecraft/world/level/block/RedStoneWireBlock.java +++ b/net/minecraft/world/level/block/RedStoneWireBlock.java @@ -66,6 +66,7 @@ public class RedStoneWireBlock extends Block { @@ -1101,7 +1101,7 @@ index 7d7e7a87f5c9bbd9535bf2105e05d7abf08fc3dc..11356bfa7b12739f9bb9f780d7fcafeb + } else { + turbo.updateSurroundingRedstone(worldIn, pos, state, source); + } -+ // DivineMC end ++ // DivineMC end - Parallel world ticking return; } updatePowerStrength(worldIn, pos, state, orientation, blockAdded); @@ -1147,16 +1147,16 @@ index 7d7e7a87f5c9bbd9535bf2105e05d7abf08fc3dc..11356bfa7b12739f9bb9f780d7fcafeb @@ -422,12 +444,23 @@ public class RedStoneWireBlock extends Block { @Override - protected int getDirectSignal(BlockState blockState, BlockGetter blockAccess, BlockPos pos, Direction side) { -- return !this.shouldSignal ? 0 : blockState.getSignal(blockAccess, pos, side); + protected int getDirectSignal(BlockState state, BlockGetter level, BlockPos pos, Direction side) { +- return !this.shouldSignal ? 0 : state.getSignal(level, pos, side); + // DivineMC start - Parallel world ticking + boolean signal = org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableParallelWorldTicking ? this.shouldSignalTL.get() : this.shouldSignal; -+ return !signal ? 0 : blockState.getSignal(blockAccess, pos, side); ++ return !signal ? 0 : state.getSignal(level, pos, side); + // DivineMC end - Parallel world ticking } @Override - protected int getSignal(BlockState blockState, BlockGetter blockAccess, BlockPos pos, Direction side) { + protected int getSignal(BlockState state, BlockGetter level, BlockPos pos, Direction side) { - if (this.shouldSignal && side != Direction.DOWN) { + // DivineMC start - Parallel world ticking + boolean signal; @@ -1167,7 +1167,7 @@ index 7d7e7a87f5c9bbd9535bf2105e05d7abf08fc3dc..11356bfa7b12739f9bb9f780d7fcafeb + } + // DivineMC end - Parallel world ticking + if (signal && side != Direction.DOWN) { // DivineMC - Parallel world ticking - int powerValue = blockState.getValue(POWER); + int powerValue = state.getValue(POWER); if (powerValue == 0) { return 0; @@ -459,7 +492,13 @@ public class RedStoneWireBlock extends Block { @@ -1356,7 +1356,7 @@ index d23f255de9208f42125fa358a9e8194c984fe4d3..92e9bc9ba577474ca1108b8d06157395 // CraftBukkit end } diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index 3a9843c30f685d2e1f0cd54ace5dddfa9e2314fa..f68731273f9ca583b3dac6ecb13c1ac9fcc06bed 100644 +index 524f987ba5cbf3d9fa502b51419cb163e099597c..76ba642de5673b407e3a802db9de060bcffae9b0 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -374,6 +374,7 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot diff --git a/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch b/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch index 637d1ca..9370834 100644 --- a/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch +++ b/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch @@ -5,10 +5,10 @@ Subject: [PATCH] MSPT Tracking for each world diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index b533f3c938ba184bee7dea9f9969b59381c03912..1c60d0384e3f5cc9f719fdd2ca2960af407114a0 100644 +index fd9ef48ac8b23e8b409c00d154dbea27b701e3bc..6a714d59d01eafcd833f05208a948bf33b797392 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1716,7 +1716,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements FeatureElement, EntityTypeT @@ -83,7 +83,7 @@ index e680780a0e46e9e5f9126bd11a20b918e8c36066..3a50f4d2e434e9766656a7e2a1da8c1e private static EntityType register(ResourceKey> key, EntityType.Builder builder) { return Registry.register(BuiltInRegistries.ENTITY_TYPE, key, builder.build(key)); diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index 9a6355328ca25ae7c183b68e890106776d82204e..6a8e50598da5e08ce6694c226012a44f88483f71 100644 +index d5337d37be18d2ebb047e122b220e1a694f46696..bd41bbac179460d38edee624334cdcd0efb5504c 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -183,6 +183,25 @@ public abstract class Player extends Avatar implements ContainerUser { diff --git a/divinemc-server/minecraft-patches/features/0058-Leaves-Protocol-Core.patch b/divinemc-server/minecraft-patches/features/0058-Leaves-Protocol-Core.patch index c9a4bc9..a9d5d90 100644 --- a/divinemc-server/minecraft-patches/features/0058-Leaves-Protocol-Core.patch +++ b/divinemc-server/minecraft-patches/features/0058-Leaves-Protocol-Core.patch @@ -35,10 +35,10 @@ index fb263fa1f30a7dfcb7ec2656abfb38e5fe88eac9..c3be4c2fd4a544967322a45d3b8c0fe7 }; } diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 949b8129ec014c76a1558a9011633f1a6405f2d7..7239a712628ae5a7f70d9e5b45b7faa7c8fa9395 100644 +index f654664fb06556125cbd2a213c9fb89eabb329e7..9c1798cca21a3f36f0347a0a4ac1fe9ababe60af 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1829,6 +1829,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -36,14 +36,14 @@ index 2da4ba00963c9ff6715fe60aa2f6af724fa8ed61..987edb0a89c00695c6620a8996c063d3 public Connection(PacketFlow receiving) { @@ -160,6 +161,7 @@ public class Connection extends SimpleChannelInboundHandler> { - public void channelActive(ChannelHandlerContext context) throws Exception { - super.channelActive(context); - this.channel = context.channel(); + public void channelActive(ChannelHandlerContext ctx) throws Exception { + super.channelActive(ctx); + this.channel = ctx.channel(); + this.eventLoop = (io.netty.channel.SingleThreadEventLoop) this.channel.eventLoop(); // Paper - Optimise non-flush packet sending this.address = this.channel.remoteAddress(); this.preparing = false; // Spigot if (this.delayedDisconnect != null) { -@@ -474,7 +476,13 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -472,7 +474,13 @@ public class Connection extends SimpleChannelInboundHandler> { if (this.channel.eventLoop().inEventLoop()) { this.doSendPacket(packet, sendListener, flush); } else { diff --git a/divinemc-server/minecraft-patches/features/0060-Linear-region-file-format.patch b/divinemc-server/minecraft-patches/features/0060-Linear-region-file-format.patch index 154c2af..3710234 100644 --- a/divinemc-server/minecraft-patches/features/0060-Linear-region-file-format.patch +++ b/divinemc-server/minecraft-patches/features/0060-Linear-region-file-format.patch @@ -60,10 +60,10 @@ index 51c126735ace8fdde89ad97b5cab62f244212db0..23f6ed26b531ea570fdf2ae48c1e2710 + public void moonrise$write(final org.bxteam.divinemc.region.IRegionFile regionFile) throws IOException; // DivineMC - Buffered Linear region format } diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 7239a712628ae5a7f70d9e5b45b7faa7c8fa9395..1c7f170f92d7d184a3a0d79d8046cc266d006076 100644 +index 9c1798cca21a3f36f0347a0a4ac1fe9ababe60af..fe55ccb61324f4132448720bbab48e0f4c9b6b4d 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -939,10 +939,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { +@@ -608,13 +608,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) { @@ -70,7 +70,7 @@ index 98b101fde04fbf5507f021bb8d8e6bed334de5b6..e76530da9641acc482aa0f030c4dc267 } } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index f4399659d084ed9703052b3ce2c82a9e198cd514..668e20075c875775ac0bf355d7318c3ff1426fc0 100644 +index e550e647693c27c8f8c4f9718d4fe1210e07aa76..21f9b04927418778645475fda51d2d978215dc1c 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -1385,13 +1385,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -102,7 +102,7 @@ index f4399659d084ed9703052b3ce2c82a9e198cd514..668e20075c875775ac0bf355d7318c3f private void tickPassenger(Entity ridingEntity, Entity passengerEntity, final boolean isActive) { // Paper - EAR 2 diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index b26226f6479f7b9c58a1355639c6f264e161ab50..ee33af29c7f98df04f687dde627413e186c42221 100644 +index 0e7a870e85be7f3a2856ce0ca9c861295a66e032..e8fdcb827af1d7e04bcf1918922e89929d29eba0 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -1117,29 +1117,10 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @@ -149,7 +149,7 @@ index b26226f6479f7b9c58a1355639c6f264e161ab50..ee33af29c7f98df04f687dde627413e1 } private void applyMovementEmissionAndPlaySound(Entity.MovementEmission movementEmission, Vec3 movement, BlockPos pos, BlockState state) { -@@ -5027,9 +5001,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -5026,9 +5000,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name } public void setDeltaMovement(Vec3 deltaMovement) { @@ -159,7 +159,7 @@ index b26226f6479f7b9c58a1355639c6f264e161ab50..ee33af29c7f98df04f687dde627413e1 } public void addDeltaMovement(Vec3 addend) { -@@ -5127,9 +5099,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -5126,9 +5098,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name } // Paper end - Block invalid positions and bounding box if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/divinemc-server/minecraft-patches/features/0064-Do-not-send-spectator-change-packet.patch b/divinemc-server/minecraft-patches/features/0064-Do-not-send-spectator-change-packet.patch index 7c124d4..7ab4907 100644 --- a/divinemc-server/minecraft-patches/features/0064-Do-not-send-spectator-change-packet.patch +++ b/divinemc-server/minecraft-patches/features/0064-Do-not-send-spectator-change-packet.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not send spectator change packet diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java -index 07dd9b8088e363110ecab24026a20485484710c4..a51d506c4ffe11ac2ad8510a9b35d854b2c0d42c 100644 +index 4be37952a3502f6dbd62932de7dd9cbed1488312..97bcad549d7e2de53ea74753f4e9d6832c678c58 100644 --- a/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/net/minecraft/server/level/ServerPlayerGameMode.java @@ -86,10 +86,7 @@ public class ServerPlayerGameMode { @@ -39,7 +39,7 @@ index 07dd9b8088e363110ecab24026a20485484710c4..a51d506c4ffe11ac2ad8510a9b35d854 + // DivineMC end - Do not send spectator change packet } diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index f290b3291ee20c77a301adc57c933788ebc6d56d..57577a81888203f1e19dc8a804ca9f1ee764c49e 100644 +index 713992baae023165f126e7b98c4afb2a815c1e17..c69efd556b7ce753b9ccf204731e200b483a755f 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -258,6 +258,7 @@ public abstract class PlayerList { @@ -71,7 +71,7 @@ index f290b3291ee20c77a301adc57c933788ebc6d56d..57577a81888203f1e19dc8a804ca9f1e } // Paper end - Use single player info update packet on join player.sentListPacket = true; -@@ -1403,4 +1407,69 @@ public abstract class PlayerList { +@@ -1393,4 +1397,69 @@ public abstract class PlayerList { public boolean isAllowCommandsForAllPlayers() { return this.allowCommandsForAllPlayers; } diff --git a/divinemc-server/minecraft-patches/features/0068-Optimize-level-ticking.patch b/divinemc-server/minecraft-patches/features/0068-Optimize-level-ticking.patch index ea768c1..e5f8c2f 100644 --- a/divinemc-server/minecraft-patches/features/0068-Optimize-level-ticking.patch +++ b/divinemc-server/minecraft-patches/features/0068-Optimize-level-ticking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize level ticking diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 668e20075c875775ac0bf355d7318c3ff1426fc0..8c9a1266bfbd1eb2b7612a07df126ea1ba792027 100644 +index 21f9b04927418778645475fda51d2d978215dc1c..f9d4d8ba415864019bca2a69a142ff1ce0307072 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -944,9 +944,10 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -73,7 +73,7 @@ index 668e20075c875775ac0bf355d7318c3ff1426fc0..8c9a1266bfbd1eb2b7612a07df126ea1 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index f68731273f9ca583b3dac6ecb13c1ac9fcc06bed..ac56a14097a9f61bb9aa46e8bc3e01e6d82ba496 100644 +index 76ba642de5673b407e3a802db9de060bcffae9b0..29f4cce6823ad13bec607523f059166f97a48c22 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -84,7 +84,7 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot @@ -86,7 +86,7 @@ index f68731273f9ca583b3dac6ecb13c1ac9fcc06bed..ac56a14097a9f61bb9aa46e8bc3e01e6 public final ServerLevel level; // CraftBukkit - type @Nullable diff --git a/net/minecraft/world/ticks/LevelChunkTicks.java b/net/minecraft/world/ticks/LevelChunkTicks.java -index 66d0a6390febe929ef774b0a7813329015bc8cc2..c17549c4f8a877852c4b86453b1db7b17aab4665 100644 +index 2e28cc201e4557ff603aba7a6ed997b8d36fbb4a..37d9459a905ef8e05400d821db24f61a2dd03f10 100644 --- a/net/minecraft/world/ticks/LevelChunkTicks.java +++ b/net/minecraft/world/ticks/LevelChunkTicks.java @@ -14,10 +14,10 @@ import javax.annotation.Nullable; @@ -137,7 +137,7 @@ index 66d0a6390febe929ef774b0a7813329015bc8cc2..c17549c4f8a877852c4b86453b1db7b1 for (ScheduledTick scheduledTick : this.tickQueue) { + if (scheduledTick == null) continue; // DivineMC - Optimize level ticking - list.add(scheduledTick.toSavedTick(gametime)); + list.add(scheduledTick.toSavedTick(gameTime)); } diff --git a/net/minecraft/world/ticks/LevelTicks.java b/net/minecraft/world/ticks/LevelTicks.java diff --git a/divinemc-server/minecraft-patches/features/0069-Optimize-Moonrise.patch b/divinemc-server/minecraft-patches/features/0069-Optimize-Moonrise.patch index 10b4c59..1cf743d 100644 --- a/divinemc-server/minecraft-patches/features/0069-Optimize-Moonrise.patch +++ b/divinemc-server/minecraft-patches/features/0069-Optimize-Moonrise.patch @@ -452,7 +452,7 @@ index d03d075d5c56b7d2beb5f0aafecbb69f5b3bbf5b..ce3b8f4161dde3e2758c5d33445da150 } diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java -index 50daa39747a0f07c4d31a13c4410819a82d5f076..124bf62b7dd7fb72b4cc076e909449ddfe7793ae 100644 +index 656cd8e807c914531d249c950341ed48b4618eb0..d08e39ffa47fe99bbbf61d2d3773b28f32c179ba 100644 --- a/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java @@ -667,8 +667,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -466,7 +466,7 @@ index 50daa39747a0f07c4d31a13c4410819a82d5f076..124bf62b7dd7fb72b4cc076e909449dd } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 8c9a1266bfbd1eb2b7612a07df126ea1ba792027..8db13a734eae1ee946fcf9363d289f5f98d7b6d5 100644 +index f9d4d8ba415864019bca2a69a142ff1ce0307072..57dcde95d789774dabe18c518219b369cec28d5a 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -186,6 +186,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -495,7 +495,7 @@ index 8c9a1266bfbd1eb2b7612a07df126ea1ba792027..8db13a734eae1ee946fcf9363d289f5f // Paper end - rewrite chunk system } -@@ -2648,16 +2649,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2638,16 +2639,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe public boolean isPositionTickingWithEntitiesLoaded(long chunkPos) { // Paper start - rewrite chunk system diff --git a/divinemc-server/minecraft-patches/features/0072-lithium-sleeping_block_entity.patch b/divinemc-server/minecraft-patches/features/0072-lithium-sleeping_block_entity.patch index ba3f5de..fcfba40 100644 --- a/divinemc-server/minecraft-patches/features/0072-lithium-sleeping_block_entity.patch +++ b/divinemc-server/minecraft-patches/features/0072-lithium-sleeping_block_entity.patch @@ -59,7 +59,7 @@ index 766b6080160d87742ef4d8caa73b3b8fa52d5589..541d22fdc559717c7fda692c23abae58 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/server/commands/data/EntityDataAccessor.java b/net/minecraft/server/commands/data/EntityDataAccessor.java -index 3092454bf7071deca75fecfc203072593fe5c7e7..098dd4647ae1500195729d6531e90c2bb7603eba 100644 +index 2b8d394dc30d459127289a1afeee0780003f4c79..2fd2712550a9b8ac79974f113ebcea5dab392bc5 100644 --- a/net/minecraft/server/commands/data/EntityDataAccessor.java +++ b/net/minecraft/server/commands/data/EntityDataAccessor.java @@ -55,6 +55,7 @@ public class EntityDataAccessor implements DataAccessor { @@ -71,10 +71,10 @@ index 3092454bf7071deca75fecfc203072593fe5c7e7..098dd4647ae1500195729d6531e90c2b } } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 8db13a734eae1ee946fcf9363d289f5f98d7b6d5..6b72ffe12b0ce259558b5475f4c059dad3694484 100644 +index 57dcde95d789774dabe18c518219b369cec28d5a..7622b35e2aee4401104f69b0b8e3abe67bfc42bb 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java -@@ -2500,6 +2500,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2490,6 +2490,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe for (TickingBlockEntity tickingBlockEntity : this.blockEntityTickers) { BlockPos pos = tickingBlockEntity.getPos(); @@ -96,10 +96,10 @@ index 8e6f097b4d17aaaf8eccc16e11ce2bd01ad63322..ded99b157865f5bcfd64b3082c628a71 int getContainerSize(); diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index ee33af29c7f98df04f687dde627413e186c42221..5904b574e9cc64fadd63ec59a79be23436770865 100644 +index e8fdcb827af1d7e04bcf1918922e89929d29eba0..bec9307f082b5c809921a06ef9b8b5807008e3da 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -5133,6 +5133,18 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -5132,6 +5132,18 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name this.setBoundingBox(this.makeBoundingBox()); } // Paper end - Block invalid positions and bounding box @@ -119,7 +119,7 @@ index ee33af29c7f98df04f687dde627413e186c42221..5904b574e9cc64fadd63ec59a79be234 public void checkDespawn() { diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java -index b5d7e5738ce043fdc08cd4872c9daaf952251b9a..a65fa538c930ab94e815b2aac19beefe0bde6da2 100644 +index 7525184fd5a801e39fbcba2afbcc968862a1cfbb..c074cd9b83015970028ac19c7afafb94d95713c9 100644 --- a/net/minecraft/world/entity/item/ItemEntity.java +++ b/net/minecraft/world/entity/item/ItemEntity.java @@ -35,7 +35,7 @@ import net.minecraft.world.level.storage.ValueInput; @@ -234,7 +234,7 @@ index b5d7e5738ce043fdc08cd4872c9daaf952251b9a..a65fa538c930ab94e815b2aac19beefe + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java -index 8643d46d21852e9e14f9b2448f1c0eb26a737ebb..91eeb18926278763fbd6650d02c30cc33b9992fb 100644 +index 0f9bfcd1eab023c1772e9fafcda85d110904bd1c..a54dbf14af2abcf0307c1c43fb82cfd6ab13bfd1 100644 --- a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java +++ b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java @@ -21,7 +21,7 @@ import net.minecraft.world.level.storage.ValueOutput; @@ -264,7 +264,7 @@ index 8643d46d21852e9e14f9b2448f1c0eb26a737ebb..91eeb18926278763fbd6650d02c30cc3 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java -index 97397e5849d3ddc14506776431a69939a2204765..3af415d58e32d89ac7c9289d5a003fc11a98149c 100644 +index c88b0567d1b9377bfca4e4a62d8eb22daccd83a8..487c8812f921ecc7b00ecac7deee5ac76954aa40 100644 --- a/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -901,6 +901,12 @@ public abstract class AbstractContainerMenu { @@ -281,7 +281,7 @@ index 97397e5849d3ddc14506776431a69939a2204765..3af415d58e32d89ac7c9289d5a003fc1 ItemStack item = container.getItem(i); if (!item.isEmpty()) { diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java -index d04167eccda1fe29abe7fc28cab0c837a14e47ab..64576f34fc452724a56572c1589830128e50d2bc 100644 +index 52a8a818a636e35b486b8aaf482cd68849a0bbcd..7706bf3cdd8017eb0591a4002489835b97bb4918 100644 --- a/net/minecraft/world/item/ItemStack.java +++ b/net/minecraft/world/item/ItemStack.java @@ -96,7 +96,7 @@ import org.apache.commons.lang3.function.TriConsumer; @@ -417,7 +417,7 @@ index d04167eccda1fe29abe7fc28cab0c837a14e47ab..64576f34fc452724a56572c158983012 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java -index ccf9e2d5ef57ecdf1c7471620c5baa33575738e2..1f33d4e9df33670abbb80b15f499960a64578e70 100644 +index 604b4670f59e0c3ed5c287e8a0c573560826ed78..2f031b9119f7b520d736223ab8a7d96d79b17d52 100644 --- a/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java @@ -1475,7 +1475,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -456,7 +456,7 @@ index ccf9e2d5ef57ecdf1c7471620c5baa33575738e2..1f33d4e9df33670abbb80b15f499960a + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/ComposterBlock.java b/net/minecraft/world/level/block/ComposterBlock.java -index 1a805c9926ef1a5641abbe8cdaca06508f1020a5..4b9ac0140c2ca40655cb9d396073f22718722f74 100644 +index 8cc6f7fcf8da2498fab3a0e300da785c489a63cc..2c3dc9e0131071530eab9b7f0cabe4b8519cc294 100644 --- a/net/minecraft/world/level/block/ComposterBlock.java +++ b/net/minecraft/world/level/block/ComposterBlock.java @@ -440,7 +440,7 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { @@ -493,19 +493,19 @@ index 1a805c9926ef1a5641abbe8cdaca06508f1020a5..4b9ac0140c2ca40655cb9d396073f227 private final LevelAccessor level; private final BlockPos pos; diff --git a/net/minecraft/world/level/block/DiodeBlock.java b/net/minecraft/world/level/block/DiodeBlock.java -index 558751ade918a92a1173096ccfeacf238f4260d0..1a2c56330dc5d75a566b98232d38da54c6412fcc 100644 +index a5b4b64b3feef04661c3dcd6eea29ffda7f0785c..c6511c1f40455b1c277542a4d71df453e7470e02 100644 --- a/net/minecraft/world/level/block/DiodeBlock.java +++ b/net/minecraft/world/level/block/DiodeBlock.java @@ -173,6 +173,7 @@ public abstract class DiodeBlock extends HorizontalDirectionalBlock { @Override - protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) { + protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { this.updateNeighborsInFront(level, pos, state); + if (org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.sleepingBlockEntity && this instanceof ComparatorBlock && !oldState.is(Blocks.COMPARATOR)) net.caffeinemc.mods.lithium.common.block.entity.inventory_comparator_tracking.ComparatorTracking.notifyNearbyBlockEntitiesAboutNewComparator(level, pos); // DivineMC - lithium: sleeping_block_entity } @Override diff --git a/net/minecraft/world/level/block/HopperBlock.java b/net/minecraft/world/level/block/HopperBlock.java -index 73b602eee0da94f657b4b4cb654147f7ba41c1a4..64bc18c1831e58f114ad1c245183f107c84109ab 100644 +index 2a6d5790ac3bc4984937c5b6d70f8f49f2c59116..3903871081cc670d7c4532a1ebf3934ff5e0e621 100644 --- a/net/minecraft/world/level/block/HopperBlock.java +++ b/net/minecraft/world/level/block/HopperBlock.java @@ -38,7 +38,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; @@ -518,7 +518,7 @@ index 73b602eee0da94f657b4b4cb654147f7ba41c1a4..64bc18c1831e58f114ad1c245183f107 public static final EnumProperty FACING = BlockStateProperties.FACING_HOPPER; public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; @@ -101,6 +101,16 @@ public class HopperBlock extends BaseEntityBlock { - protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) { + protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { if (!oldState.is(state.getBlock())) { this.checkPoweredState(level, pos, state); + // DivineMC start - lithium: sleeping_block_entity @@ -568,7 +568,7 @@ index 73b602eee0da94f657b4b4cb654147f7ba41c1a4..64bc18c1831e58f114ad1c245183f107 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 57eae0dbb614f57e2a352613c7490145bbfeb5a1..e6d04ab20e800cc1db245efbf9cf23ae5650dff3 100644 +index ab9200d1b402374e71a9c3b09baf8f5b504ac365..515c0ef0952601ef9e39144ef86c8a48a0f8d267 100644 --- a/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -39,7 +39,7 @@ import net.minecraft.world.level.storage.ValueInput; @@ -814,7 +814,7 @@ index 7c2acea8af6a3110d782b9b3afeac0915ac127da..ccad8ed53e846ee0838420a74c8dc4b3 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/BlockEntity.java b/net/minecraft/world/level/block/entity/BlockEntity.java -index 15d3f2f2959c3463f96f410b87c5f0106298352c..ec126adfcd21744e640344b8365bf54eff6a944d 100644 +index 9a9208d3716c2ed7fbcc5ea8518d4b7d3cb2296a..6a2f56e9925185813b84a70fdc8709801d0e2839 100644 --- a/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/net/minecraft/world/level/block/entity/BlockEntity.java @@ -36,7 +36,7 @@ import net.minecraft.world.level.storage.ValueInput; @@ -894,7 +894,7 @@ index 15d3f2f2959c3463f96f410b87c5f0106298352c..ec126adfcd21744e640344b8365bf54e + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java b/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java -index 8602a42967ebc28821d6156c07e0aad69c12fa9d..da0fe1ad7bf907b31e6ad0c2587543c36607d361 100644 +index 8b9606c4a89ccea494a7ea55099161c236d4b772..acc14f050147583f1bf82edf74ae1317a8ec9761 100644 --- a/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java +++ b/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java @@ -24,7 +24,7 @@ import net.minecraft.world.level.block.state.BlockState; @@ -1086,7 +1086,7 @@ index fb7932e17d7d00ee3050e71c88510fa23befb1bb..d4f8dc6e37eea8da251e3dfb917607a7 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/net/minecraft/world/level/block/entity/ChestBlockEntity.java -index c0d4dd95812172a86e5b6f4217bf3cb9d7ee6f2a..151e99d1e9100865fa6f8211a53174a9aa99fea1 100644 +index 6b1299c20573ca009f6bffce829a4a593f548fce..e36049d044d7adc7e587c1c825fba36ce8f37089 100644 --- a/net/minecraft/world/level/block/entity/ChestBlockEntity.java +++ b/net/minecraft/world/level/block/entity/ChestBlockEntity.java @@ -25,7 +25,7 @@ import net.minecraft.world.level.block.state.properties.ChestType; @@ -1175,7 +1175,7 @@ index c0d4dd95812172a86e5b6f4217bf3cb9d7ee6f2a..151e99d1e9100865fa6f8211a53174a9 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java b/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java -index 6b05556a84ae6a8f08025439db29db207325bb7a..456f00b44ec58350d2faaa1a36be38ff0107bcfe 100644 +index 986d3fb65f3bbcb0357b9764ac4f338d64cb62c9..bfbf72f9f44b0239f92f188074016f6192641992 100644 --- a/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java +++ b/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java @@ -21,7 +21,7 @@ import net.minecraft.world.level.storage.ValueInput; @@ -1200,7 +1200,7 @@ index 6b05556a84ae6a8f08025439db29db207325bb7a..456f00b44ec58350d2faaa1a36be38ff + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/CrafterBlockEntity.java b/net/minecraft/world/level/block/entity/CrafterBlockEntity.java -index a631ad830d4820fbf983ef321b40f3192db4527f..861b29a2ffa728d6e19ac715b4467dd974e4363e 100644 +index 09f937e826b2a87d11a739e1398cc83a9f84e7e3..d36f925f675d485f8ad86d43b048e6911a918602 100644 --- a/net/minecraft/world/level/block/entity/CrafterBlockEntity.java +++ b/net/minecraft/world/level/block/entity/CrafterBlockEntity.java @@ -22,7 +22,7 @@ import net.minecraft.world.level.block.state.BlockState; @@ -1315,7 +1315,7 @@ index b4a155cc914092dad83977df714fbbc033c69d19..f3cd91636539ebd201f6a22ca5a4f8a8 + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java b/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java -index e5cbc9f6d7989e993da566f5f9c239a3fe8c7e8b..4ad785f7d1a5c24a26568c628529751e6bb1bc32 100644 +index 775928cfe700202a70b19589ca72afd9768b62f1..2eda08301a3e3888c55a21390d1a718b86d50463 100644 --- a/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java +++ b/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.Level; @@ -1341,9 +1341,9 @@ index e5cbc9f6d7989e993da566f5f9c239a3fe8c7e8b..4ad785f7d1a5c24a26568c628529751e this.chestLidController.shouldBeOpen(type > 0); return true; } else { -@@ -97,4 +99,35 @@ public class EnderChestBlockEntity extends BlockEntity implements LidBlockEntity - public float getOpenNess(float partialTicks) { - return this.chestLidController.getOpenness(partialTicks); +@@ -99,4 +101,35 @@ public class EnderChestBlockEntity extends BlockEntity implements LidBlockEntity + public float getOpenNess(float partialTick) { + return this.chestLidController.getOpenness(partialTick); } + + // DivineMC start - lithium: sleeping_block_entity @@ -2260,7 +2260,7 @@ index daf4f28d04a1ad1e034c6d7dedba9e4e2272f2ea..3afb0ce74c5378ce909c1a1e6182aaae + } } diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java -index e2a2811464ff7455e513944b7565f9f226a5ed34..7458e0257996eb1d68237234de526cfd85020bb9 100644 +index d0880daad9d43e0b3a8d6010fcc114344df9e58a..94685824a6ab1373e9d888e8d02d464d769dd918 100644 --- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java +++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java @@ -32,7 +32,7 @@ import net.minecraft.world.level.storage.ValueOutput; @@ -2337,7 +2337,7 @@ index e2a2811464ff7455e513944b7565f9f226a5ed34..7458e0257996eb1d68237234de526cfd + // DivineMC end - lithium: sleeping_block_entity } diff --git a/net/minecraft/world/level/block/state/BlockBehaviour.java b/net/minecraft/world/level/block/state/BlockBehaviour.java -index 5f6fbc7eaa5522bd5e0692c9c2d280457a284e71..03d49e37a39ad9d1963d86da3aff88782db6a201 100644 +index 611b29ccba29558d8cf54eccb2136a305bf989db..f7362eb5e7f42eac024dc3a89ecb6a46073fc834 100644 --- a/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -84,7 +84,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; @@ -2358,21 +2358,21 @@ index 5f6fbc7eaa5522bd5e0692c9c2d280457a284e71..03d49e37a39ad9d1963d86da3aff8878 } diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index aa4b184943eb2ce4683ffd65ff7268ae8880d932..120c5284cda3785cb8f4254860b4f88f20fa6828 100644 +index 60f3567ef70a82ad1704aec3135e6a72f5033e12..3cd9d7cb9b9506874b7f7a242324ac122a5d1844 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -931,12 +931,14 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot - (blockPos, rebindableTickingBlockEntityWrapper) -> { + (pos, ticker1) -> { TickingBlockEntity tickingBlockEntity = this.createTicker(blockEntity, ticker); - if (rebindableTickingBlockEntityWrapper != null) { -+ if (org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.sleepingBlockEntity && blockEntity instanceof net.caffeinemc.mods.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(rebindableTickingBlockEntityWrapper); // DivineMC - lithium: sleeping_block_entity - rebindableTickingBlockEntityWrapper.rebind(tickingBlockEntity); - return (LevelChunk.RebindableTickingBlockEntityWrapper)rebindableTickingBlockEntityWrapper; + if (ticker1 != null) { ++ if (org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.sleepingBlockEntity && blockEntity instanceof net.caffeinemc.mods.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(ticker1); // DivineMC - lithium: sleeping_block_entity + ticker1.rebind(tickingBlockEntity); + return (LevelChunk.RebindableTickingBlockEntityWrapper)ticker1; } else if (this.isInLevel()) { - LevelChunk.RebindableTickingBlockEntityWrapper rebindableTickingBlockEntityWrapper1 = new LevelChunk.RebindableTickingBlockEntityWrapper( + LevelChunk.RebindableTickingBlockEntityWrapper rebindableTickingBlockEntityWrapper = new LevelChunk.RebindableTickingBlockEntityWrapper( tickingBlockEntity ); + if (org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.sleepingBlockEntity && blockEntity instanceof net.caffeinemc.mods.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(rebindableTickingBlockEntityWrapper); // DivineMC - lithium: sleeping_block_entity - this.level.addBlockEntityTicker(rebindableTickingBlockEntityWrapper1); - return rebindableTickingBlockEntityWrapper1; + this.level.addBlockEntityTicker(rebindableTickingBlockEntityWrapper); + return rebindableTickingBlockEntityWrapper; } else { diff --git a/divinemc-server/minecraft-patches/features/0073-lithium-equipment_tracking.patch b/divinemc-server/minecraft-patches/features/0073-lithium-equipment_tracking.patch index 81ea3b9..73e1c99 100644 --- a/divinemc-server/minecraft-patches/features/0073-lithium-equipment_tracking.patch +++ b/divinemc-server/minecraft-patches/features/0073-lithium-equipment_tracking.patch @@ -187,7 +187,7 @@ index 1e00a7bd89d885cabb4b9ca3c86fbd8cd93cebf5..4fb31f578c2a4a5dc137c38de8f64159 + // DivineMC end - lithium: equipment_tracking } diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 86370c9f6e83e5815922080c10336d394075b4e9..85e287bc66c4e2be6f703c3206fe53bba3d15a6d 100644 +index ca392664826ca8ced5a1c2c8b2d22eb87c5bd139..c08fb102fb9d325cf7c41e32b32833e70474fecb 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -439,9 +439,17 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -210,7 +210,7 @@ index 86370c9f6e83e5815922080c10336d394075b4e9..85e287bc66c4e2be6f703c3206fe53bb super.baseTick(); if (this.isAlive() && this.level() instanceof ServerLevel serverLevel1) { -@@ -3444,6 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3451,6 +3459,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin public void detectEquipmentUpdates() { Map map = this.collectEquipmentChanges(); if (map != null) { @@ -218,7 +218,7 @@ index 86370c9f6e83e5815922080c10336d394075b4e9..85e287bc66c4e2be6f703c3206fe53bb this.handleHandSwap(map); if (!map.isEmpty()) { this.handleEquipmentChanges(map); -@@ -3453,6 +3462,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -3460,6 +3469,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @Nullable private Map collectEquipmentChanges() { @@ -234,7 +234,7 @@ index 86370c9f6e83e5815922080c10336d394075b4e9..85e287bc66c4e2be6f703c3206fe53bb // Paper start - EntityEquipmentChangedEvent record EquipmentChangeImpl(org.bukkit.inventory.ItemStack oldItem, org.bukkit.inventory.ItemStack newItem) implements io.papermc.paper.event.entity.EntityEquipmentChangedEvent.EquipmentChange { diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java -index 79c652fbbc3ecef289e6358c325d98e509f5c216..434f5a331e0beb582dd8229e697ed1c1eecba8cc 100644 +index 03a350b91948b8309a74edb5e1f35d336316ff34..71f9dac6d592a41d80d7563d3f71884e26d3ece4 100644 --- a/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/net/minecraft/world/entity/decoration/ArmorStand.java @@ -528,8 +528,9 @@ public class ArmorStand extends LivingEntity { diff --git a/divinemc-server/minecraft-patches/features/0075-Pufferfish-Cache-climbing-check-for-activation.patch b/divinemc-server/minecraft-patches/features/0075-Pufferfish-Cache-climbing-check-for-activation.patch index 5950e66..cb0f1c1 100644 --- a/divinemc-server/minecraft-patches/features/0075-Pufferfish-Cache-climbing-check-for-activation.patch +++ b/divinemc-server/minecraft-patches/features/0075-Pufferfish-Cache-climbing-check-for-activation.patch @@ -23,10 +23,10 @@ index 226088405c019922085285ba5d04d7c131470c69..61bf86a1380060ff118c31b5070b2870 } if (entity instanceof final Mob mob && mob.getTarget() != null) { diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 85e287bc66c4e2be6f703c3206fe53bba3d15a6d..fe7232b25458f363dfc43dd1eccab5b95212fc10 100644 +index c08fb102fb9d325cf7c41e32b32833e70474fecb..3533a8fe46f255025db70242b214fcd51916a6d0 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java -@@ -2236,6 +2236,20 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin +@@ -2243,6 +2243,20 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin return this.lastClimbablePos; } diff --git a/divinemc-server/minecraft-patches/features/0076-Pufferfish-Make-EntityCollisionContext-a-live-repres.patch b/divinemc-server/minecraft-patches/features/0076-Pufferfish-Make-EntityCollisionContext-a-live-repres.patch index 6807ecf..e5de4ac 100644 --- a/divinemc-server/minecraft-patches/features/0076-Pufferfish-Make-EntityCollisionContext-a-live-repres.patch +++ b/divinemc-server/minecraft-patches/features/0076-Pufferfish-Make-EntityCollisionContext-a-live-repres.patch @@ -10,7 +10,7 @@ As part of: Airplane (https://github.com/TECHNOVE/Airplane) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/net/minecraft/world/phys/shapes/EntityCollisionContext.java b/net/minecraft/world/phys/shapes/EntityCollisionContext.java -index a2467db9f096368810e3c1ab8ddabf610fa38379..953c28670cecd6a8ceae1c9c3a490df99acd1a73 100644 +index a2d7eb19fc8963f80c94761138b7c43af0e44fe9..c9b1f73cffd2bcfb426324dcbe15fd599fac0bbf 100644 --- a/net/minecraft/world/phys/shapes/EntityCollisionContext.java +++ b/net/minecraft/world/phys/shapes/EntityCollisionContext.java @@ -12,40 +12,35 @@ import net.minecraft.world.level.block.state.BlockState; @@ -41,18 +41,18 @@ index a2467db9f096368810e3c1ab8ddabf610fa38379..953c28670cecd6a8ceae1c9c3a490df9 } @Deprecated - protected EntityCollisionContext(Entity entity, boolean canStandOnFluid, boolean placement) { + protected EntityCollisionContext(Entity entity, boolean alwaysCollideWithFluid, boolean placement) { - this( - entity.isDescending(), - placement, - entity.getY(), - entity instanceof LivingEntity livingEntity ? livingEntity.getMainHandItem() : ItemStack.EMPTY, -- canStandOnFluid, +- alwaysCollideWithFluid, - entity - ); + // DivineMC start - Pufferfish: Make EntityCollisionContext a live representation + this.placement = placement; -+ this.alwaysCollideWithFluid = canStandOnFluid; ++ this.alwaysCollideWithFluid = alwaysCollideWithFluid; + this.entity = entity; + // DivineMC end - Pufferfish: Make EntityCollisionContext a live representation } diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch index 010c276..04a1dd4 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -986,6 +_,13 @@ +@@ -1005,6 +_,13 @@ if (this.hasStopped) return; this.hasStopped = true; } @@ -14,7 +14,7 @@ if (!hasLoggedStop && isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging shutdownThread = Thread.currentThread(); // Paper - Improved watchdog support org.spigotmc.WatchdogThread.doStop(); // Paper - Improved watchdog support -@@ -1078,6 +_,7 @@ +@@ -1097,6 +_,7 @@ // Paper end - rewrite chunk system // Paper start - Improved watchdog support - move final shutdown items here Util.shutdownExecutors(); diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch index 5559d6e..93a4dc9 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -1070,6 +_,7 @@ +@@ -1068,6 +_,7 @@ player.connection.send(new ClientboundInitializeBorderPacket(worldBorder)); player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getRespawnData())); diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch index 8711080..09e772d 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch @@ -3,9 +3,9 @@ @@ -51,7 +_,7 @@ @Override - public void sendSystemMessage(Component component) { -- this.buffer.append(component.getString()); -+ this.buffer.append(component.getString()).append(System.lineSeparator()); // DivineMC - Fix MC-7569 + public void sendSystemMessage(Component message) { +- this.buffer.append(message.getString()); ++ this.buffer.append(message.getString()).append(System.lineSeparator()); // DivineMC - Fix MC-7569 } @Override diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch index f4f5e8f..7df913d 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch @@ -32,7 +32,7 @@ if (this.repositionEntityAfterLoad()) { this.reapplyPosition(); } -@@ -4298,6 +_,7 @@ +@@ -4297,6 +_,7 @@ } public boolean canTeleport(Level fromLevel, Level toLevel) { @@ -40,7 +40,7 @@ if (!this.isAlive() || !this.valid) return false; // Paper - Fix item duplication and teleport issues if (fromLevel.dimension() == Level.END && toLevel.dimension() == Level.OVERWORLD) { for (Entity entity : this.getPassengers()) { -@@ -4527,6 +_,7 @@ +@@ -4526,6 +_,7 @@ } public final void setBoundingBox(AABB bb) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch index b4268e5..a076f43 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch @@ -17,7 +17,7 @@ return; } // CraftBukkit end -@@ -2793,6 +_,7 @@ +@@ -2799,6 +_,7 @@ } protected void updateSwingTime() { @@ -25,7 +25,7 @@ int currentSwingDuration = this.getCurrentSwingDuration(); if (this.swinging) { this.swingTime++; -@@ -3309,7 +_,13 @@ +@@ -3315,7 +_,13 @@ } protected float getFlyingSpeed() { @@ -40,7 +40,7 @@ } public float getSpeed() { -@@ -3758,6 +_,7 @@ +@@ -3764,6 +_,7 @@ protected void updateFallFlying() { this.checkFallDistanceAccumulation(); if (!this.level().isClientSide()) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/GameRules.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/GameRules.java.patch index 240198b..686dbbe 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/GameRules.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/GameRules.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/level/GameRules.java +++ b/net/minecraft/world/level/GameRules.java -@@ -301,7 +_,7 @@ +@@ -299,7 +_,7 @@ } private GameRules(Map, GameRules.Value> rules, FeatureFlagSet enabledFeatures) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/BlockEntity.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/BlockEntity.java.patch index 9d69d2b..1515951 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/BlockEntity.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/BlockEntity.java.patch @@ -3,9 +3,9 @@ @@ -392,7 +_,7 @@ // CraftBukkit start - add method - public org.bukkit.inventory.InventoryHolder getOwner() { + public @Nullable org.bukkit.inventory.InventoryHolder getOwner() { - return getOwner(true); -+ return getOwner(org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.createSnapshotOnRetrievingBlockState); // DivineMC - EMC: Don't use snapshots for acquiring blockstate ++ return getOwner(org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.createSnapshotOnRetrievingBlockState); // DivineMC - EMC: Don't use snapshots for acquiring blockstate; } - public org.bukkit.inventory.InventoryHolder getOwner(boolean useSnapshot) { + public @Nullable org.bukkit.inventory.InventoryHolder getOwner(boolean useSnapshot) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch index df5c780..fe245e3 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -160,6 +_,7 @@ +@@ -162,6 +_,7 @@ } this.vanillaRender.buffer = colors.array(); // Paper - Use Vanilla map renderer when possible diff --git a/divinemc-server/paper-patches/features/0005-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch b/divinemc-server/paper-patches/features/0005-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch index fa4ecec..64f0a59 100644 --- a/divinemc-server/paper-patches/features/0005-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch +++ b/divinemc-server/paper-patches/features/0005-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Paper PR: Add FillBottleEvents for player and dispenser diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 60350a65c8073bef3acb8432e41334430eab01cd..782cfca296cd0f5cced549d29ce6eb94ec74319c 100644 +index 0b536e4ee904cba3a724d98d491185cfded3d723..9baeecc248fe9ee6d7bb6c63d6b390b048a5649c 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2133,4 +2133,18 @@ public class CraftEventFactory { +@@ -2132,4 +2132,18 @@ public class CraftEventFactory { event.callEvent(); return event.isAllowed(); } diff --git a/divinemc-server/paper-patches/features/0015-Petal-Multithreaded-Tracker.patch b/divinemc-server/paper-patches/features/0015-Petal-Multithreaded-Tracker.patch index 2261cf4..174efaa 100644 --- a/divinemc-server/paper-patches/features/0015-Petal-Multithreaded-Tracker.patch +++ b/divinemc-server/paper-patches/features/0015-Petal-Multithreaded-Tracker.patch @@ -45,10 +45,10 @@ index 6b8841a1a84f6316b89b052328bbb549b4acbe21..56aac091b6c126132d75835af340fae4 break; } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 782cfca296cd0f5cced549d29ce6eb94ec74319c..36be4be04cc63b387680be6233fed00123fe6c9f 100644 +index 9baeecc248fe9ee6d7bb6c63d6b390b048a5649c..3a36b1c3602292a0264cfbe02b9659878fd7a217 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1804,6 +1804,26 @@ public class CraftEventFactory { +@@ -1803,6 +1803,26 @@ public class CraftEventFactory { } public static boolean handleBlockFormEvent(Level world, BlockPos pos, net.minecraft.world.level.block.state.BlockState state, int flags, @Nullable Entity entity, boolean checkSetResult) { diff --git a/gradle.properties b/gradle.properties index ed6ff71..9913368 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.bxteam.divinemc version=1.21.10-R0.1-SNAPSHOT mcVersion=1.21.10 -purpurRef=49f2891215bdda59a2c1d79f6b96b08d40229a3b +purpurRef=45bc9f4160f56de9effebb44241a819e198abd8c experimental=true org.gradle.configuration-cache=true