diff --git a/divinemc-api/build.gradle.kts.patch b/divinemc-api/build.gradle.kts.patch index 74bd0c1..759c0fa 100644 --- a/divinemc-api/build.gradle.kts.patch +++ b/divinemc-api/build.gradle.kts.patch @@ -1,6 +1,6 @@ --- a/purpur-api/build.gradle.kts +++ b/purpur-api/build.gradle.kts -@@ -9,11 +_,11 @@ +@@ -11,11 +_,11 @@ withJavadocJar() } @@ -15,7 +15,7 @@ val apiAndDocs: Configuration by configurations.creating { attributes { -@@ -40,9 +_,9 @@ +@@ -42,9 +_,9 @@ dependencies { // api dependencies are listed transitively to API consumers @@ -27,7 +27,7 @@ api("org.joml:joml:1.10.8") { isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 } -@@ -50,6 +_,7 @@ +@@ -52,6 +_,7 @@ api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion") api("com.mojang:brigadier:1.3.10") @@ -35,7 +35,7 @@ // Deprecate bungeecord-chat in favor of adventure api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") { -@@ -64,29 +_,35 @@ +@@ -66,29 +_,35 @@ apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") @@ -81,7 +81,7 @@ } val generatedDir: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath() -@@ -100,17 +_,21 @@ +@@ -102,17 +_,21 @@ java { srcDir(generatedDir) srcDir(file("../paper-api/src/main/java")) @@ -103,24 +103,7 @@ } } } -@@ -158,6 +_,16 @@ - } - } - -+// DivineMC start - Hide unnecessary compilation warnings -+tasks.withType { -+ val compilerArgs = options.compilerArgs -+ compilerArgs.add("-Xlint:-module") -+ compilerArgs.add("-Xlint:-removal") -+ compilerArgs.add("-Xlint:-dep-ann") -+ compilerArgs.add("--add-modules=jdk.incubator.vector") -+} -+// DivineMC end - Hide unnecessary compilation warnings -+ - tasks.jar { - from(generateApiVersioningFile.map { it.outputs.files.singleFile }) { - into("META-INF/maven/${project.group}/${project.name}") -@@ -176,14 +_,13 @@ +@@ -194,14 +_,13 @@ val services = objects.newInstance() tasks.withType().configureEach { @@ -137,7 +120,7 @@ "https://www.javadocs.dev/org.jetbrains/annotations/$annotationsVersion/", "https://www.javadocs.dev/org.joml/joml/1.10.8/", "https://www.javadocs.dev/com.google.code.gson/gson/2.11.0", -@@ -197,7 +_,7 @@ +@@ -215,7 +_,7 @@ "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", "https://www.javadocs.dev/org.slf4j/slf4j-api/$slf4jVersion/", "https://logging.apache.org/log4j/2.x/javadoc/log4j-api/", @@ -146,13 +129,25 @@ ) options.tags("apiNote:a:API Note:") -@@ -221,6 +_,9 @@ +@@ -239,7 +_,20 @@ into("build/docs/javadoc") } } +-} + + options.addStringOption("Xdoclint:none", "-quiet") // DivineMC - Hide unnecessary javadoc warnings + options.addStringOption("-add-modules", "jdk.incubator.vector") // DivineMC - Required for simd - } ++} ++ ++// DivineMC start - Hide unnecessary compilation warnings ++tasks.withType { ++ val compilerArgs = options.compilerArgs ++ compilerArgs.add("-Xlint:-module") ++ compilerArgs.add("-Xlint:-removal") ++ compilerArgs.add("-Xlint:-dep-ann") ++ compilerArgs.add("--add-modules=jdk.incubator.vector") ++} ++// DivineMC end - Hide unnecessary compilation warnings tasks.test { + useJUnitPlatform() diff --git a/divinemc-api/paper-patches/features/0010-SparklyPaper-Parallel-world-ticking.patch b/divinemc-api/paper-patches/features/0010-SparklyPaper-Parallel-world-ticking.patch index 46de466..d67f629 100644 --- a/divinemc-api/paper-patches/features/0010-SparklyPaper-Parallel-world-ticking.patch +++ b/divinemc-api/paper-patches/features/0010-SparklyPaper-Parallel-world-ticking.patch @@ -10,7 +10,7 @@ Original project: https://github.com/SparklyPower/SparklyPaper This patch provides an API for performance monitoring plugins. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index a17790d2da3008927b79814629e073b2091ce421..01feb47feaa977647d1b6cbf0e10589148f61414 100644 +index 485af1c80e5e1cefbce3849a108a1acee1f81cf4..0e3d693aad335350e64b374fb978c74770632e67 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2894,4 +2894,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -30,10 +30,10 @@ index a17790d2da3008927b79814629e073b2091ce421..01feb47feaa977647d1b6cbf0e105891 + // DivineMC end - Parallel world ticking } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 07390a45222a593768d1338b4739131e915869a5..84afc14168351cf8f5c9ca3b32f7885b3c2a2522 100644 +index 7822416f5cc4e453338f9257d5aa24e3ec4341a2..0ec03a25ae53ed2b542301ba829e4e2b9a201f72 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4739,4 +4739,23 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4745,4 +4745,23 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient } } } diff --git a/divinemc-server/build.gradle.kts.patch b/divinemc-server/build.gradle.kts.patch index 982da3b..4626bfe 100644 --- a/divinemc-server/build.gradle.kts.patch +++ b/divinemc-server/build.gradle.kts.patch @@ -7,8 +7,8 @@ +val bxTeamMavenPublicUrl = "https://repo.bxteam.org/snapshots/" dependencies { - mache("io.papermc:mache:1.21.10+build.9") -@@ -26,6 +_,7 @@ + mache("io.papermc:mache:1.21.11-rc3+build.1") +@@ -25,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") -@@ -33,9 +_,27 @@ +@@ -32,9 +_,27 @@ outputDir = rootDirectory.dir("paper-server") } } @@ -43,9 +43,9 @@ + // DivineMC end - Rebrand + spigot { - enabled = true + enabled = false buildDataRef = "42d18d4c4653ffc549778dbe223f6994a031d69e" -@@ -59,6 +_,7 @@ +@@ -62,6 +_,7 @@ libraryRepositories.addAll( "https://repo.maven.apache.org/maven2/", paperMavenPublicUrl, @@ -85,7 +85,7 @@ + exclude(group="org.yaml", module="snakeyaml") + } + implementation("com.github.luben:zstd-jni:1.5.7-3") -+ implementation("org.lz4:lz4-java:1.8.0") ++ implementation("at.yawk.lz4:lz4-java:1.10.1") + implementation("net.openhft:zero-allocation-hashing:0.16") + implementation("org.agrona:agrona:2.2.4") + implementation("net.objecthunter:exp4j:0.4.8") @@ -134,8 +134,8 @@ 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 -@@ -196,11 +_,11 @@ - testImplementation("io.github.classgraph:classgraph:4.8.179") // For mob goal test +@@ -197,11 +_,11 @@ + testRuntimeOnly("org.junit.platform:junit-platform-launcher") testImplementation("org.junit.jupiter:junit-jupiter:5.12.2") testImplementation("org.junit.platform:junit-platform-suite-engine:1.12.2") - testImplementation("org.hamcrest:hamcrest:2.2") @@ -150,7 +150,7 @@ implementation("net.neoforged:srgutils:1.0.9") // Mappings handling implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins -@@ -216,30 +_,42 @@ +@@ -217,30 +_,42 @@ implementation("me.lucko:spark-paper:1.10.152") } diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/core/BlockPos.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/core/BlockPos.java.patch index c0563d1..9d97d90 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/core/BlockPos.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/core/BlockPos.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/core/BlockPos.java +++ b/net/minecraft/core/BlockPos.java -@@ -348,7 +_,18 @@ +@@ -340,7 +_,18 @@ }; } 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 ebc9313..6634cdc 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 -@@ -1006,6 +_,13 @@ +@@ -1008,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 -@@ -1098,6 +_,7 @@ +@@ -1100,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/PlayerAdvancements.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch index c751cb1..376f496 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch @@ -1,10 +1,10 @@ --- a/net/minecraft/server/PlayerAdvancements.java +++ b/net/minecraft/server/PlayerAdvancements.java -@@ -60,7 +_,7 @@ - private AdvancementHolder lastSelectedTab; +@@ -59,7 +_,7 @@ + private @Nullable AdvancementHolder lastSelectedTab; private boolean isFirstPacket = true; private final Codec codec; -- public final Map, Set>> criterionData = new java.util.IdentityHashMap<>(); // Paper - fix advancement data player leakage +- public final Map, Set>> criterionData = new java.util.IdentityHashMap<>(); // Paper - fix advancement data player leakage + public final Map, Set>> criterionData = new it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap<>(); // Paper - fix advancement data player leakage // DivineMC - Use fastutil for criterion data public PlayerAdvancements(DataFixer dataFixer, PlayerList playerList, ServerAdvancementManager manager, Path playerSavePath, ServerPlayer player) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/dedicated/DedicatedServer.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/dedicated/DedicatedServer.java.patch index b048419..d20c2e9 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/dedicated/DedicatedServer.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/dedicated/DedicatedServer.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -287,6 +_,26 @@ +@@ -293,6 +_,26 @@ org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur end - Purpur config files com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now @@ -27,7 +27,7 @@ // this.worldData.setGameType(properties.gameMode.get()); // CraftBukkit - moved to world loading LOGGER.info("Default game type: {}", properties.gameMode.get()); -@@ -363,7 +_,7 @@ +@@ -369,7 +_,7 @@ String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord"; String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/"; // Paper end - Add Velocity IP Forwarding Support diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch index 1639ffb..e3517fb 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/server/level/ChunkMap.java +++ b/net/minecraft/server/level/ChunkMap.java -@@ -1345,7 +_,7 @@ +@@ -1378,7 +_,7 @@ flag = flag && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerChunkCache.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerChunkCache.java.patch index a586d16..5094926 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerChunkCache.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerChunkCache.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java -@@ -584,8 +_,10 @@ +@@ -578,8 +_,10 @@ this.chunkMap.collectSpawningChunks(list); profiler.popPush("shuffleSpawningChunks"); // Paper start - chunk tick iteration optimisation diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch index 532cd6a..89b37d2 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch @@ -1,10 +1,10 @@ --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java -@@ -2345,6 +_,7 @@ +@@ -2380,6 +_,7 @@ this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, gameMode.getId())); if (gameMode == GameType.SPECTATOR) { this.removeEntitiesOnShoulder(); + this.stopSleeping(); // DivineMC - Fix MC-119417 this.stopRiding(); + this.stopUsingItem(); EnchantmentHelper.stopLocationBasedEffects(this); - } else { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch index 9018599..bd69b3b 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -316,6 +_,7 @@ +@@ -320,6 +_,7 @@ private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper - Limit client sign length private final io.papermc.paper.event.packet.ClientTickEndEvent tickEndEvent; // Paper - add client tick end event public final io.papermc.paper.connection.PaperPlayerGameConnection playerGameConnection; // Paper @@ -8,7 +8,7 @@ public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie cookie) { super(server, connection, cookie); -@@ -327,6 +_,7 @@ +@@ -332,6 +_,7 @@ this.chatMessageChain = new FutureChain(server.chatExecutor); // CraftBukkit - async chat this.tickEndEvent = new io.papermc.paper.event.packet.ClientTickEndEvent(player.getBukkitEntity()); // Paper - add client tick end event this.playerGameConnection = new io.papermc.paper.connection.PaperPlayerGameConnection(this); // Paper 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 eb32fae..25fe8c0 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 -@@ -1026,6 +_,7 @@ +@@ -1029,6 +_,7 @@ player.connection.send(new ClientboundSetChunkCacheRadiusPacket(level.spigotConfig.viewDistance)); player.connection.send(new ClientboundSetSimulationDistancePacket(level.spigotConfig.simulationDistance)); // Paper end 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 09e772d..59289bc 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 @@ -1,6 +1,6 @@ --- a/net/minecraft/server/rcon/RconConsoleSource.java +++ b/net/minecraft/server/rcon/RconConsoleSource.java -@@ -51,7 +_,7 @@ +@@ -60,7 +_,7 @@ @Override public void sendSystemMessage(Component message) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch index e2245e0..07aa4f2 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/stats/ServerStatsCounter.java +++ b/net/minecraft/stats/ServerStatsCounter.java -@@ -98,12 +_,6 @@ +@@ -109,12 +_,6 @@ this.dirty.add(stat); } @@ -10,10 +10,10 @@ - return set; - } - - public void parseLocal(DataFixer fixerUpper, String json) { - try { - JsonElement jsonElement = StrictJsonParser.parse(json); -@@ -139,9 +_,11 @@ + public void parse(DataFixer fixerUpper, JsonElement json) { + Dynamic dynamic = new Dynamic<>(JsonOps.INSTANCE, json); + dynamic = DataFixTypes.STATS.updateToCurrentVersion(fixerUpper, dynamic, NbtUtils.getDataVersion(dynamic, 1343)); +@@ -140,9 +_,11 @@ public void sendStats(ServerPlayer player) { Object2IntMap> map = new Object2IntOpenHashMap<>(); 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 7a5b98e..e1ee2c1 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 @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -375,6 +_,7 @@ +@@ -376,6 +_,7 @@ public boolean isTemporarilyActive; public long activatedImmunityTick = Integer.MIN_VALUE; public @Nullable Boolean immuneToFire = null; // Purpur - Fire immune API @@ -8,7 +8,7 @@ public void inactiveTick() { } -@@ -1130,6 +_,7 @@ +@@ -1145,6 +_,7 @@ // Paper end - detailed watchdog information public void move(MoverType type, Vec3 movement) { @@ -16,7 +16,7 @@ final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity // Paper start - detailed watchdog information ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main"); -@@ -2625,6 +_,7 @@ +@@ -2649,6 +_,7 @@ } this.addAdditionalSaveData(output, includeAll); // CraftBukkit - pass on includeAll @@ -24,7 +24,7 @@ if (this.isVehicle()) { ValueOutput.ValueOutputList valueOutputList = output.childrenList("Passengers"); -@@ -2733,6 +_,7 @@ +@@ -2757,6 +_,7 @@ this.tags.clear(); input.read("Tags", TAG_LIST_CODEC).ifPresent(this.tags::addAll); this.readAdditionalSaveData(input); @@ -32,7 +32,7 @@ if (this.repositionEntityAfterLoad()) { this.reapplyPosition(); } -@@ -4264,6 +_,7 @@ +@@ -4284,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()) { -@@ -4493,6 +_,7 @@ +@@ -4512,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 0919d5b..81a9d94 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 @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java -@@ -757,6 +_,7 @@ +@@ -754,6 +_,7 @@ super.remove(reason, eventCause); // CraftBukkit this.brain.clearMemories(); @@ -17,7 +17,7 @@ return; } // CraftBukkit end -@@ -2802,6 +_,7 @@ +@@ -2837,6 +_,7 @@ } protected void updateSwingTime() { @@ -25,7 +25,7 @@ int currentSwingDuration = this.getCurrentSwingDuration(); if (this.swinging) { this.swingTime++; -@@ -3318,7 +_,13 @@ +@@ -3383,7 +_,13 @@ } protected float getFlyingSpeed() { @@ -40,7 +40,7 @@ } public float getSpeed() { -@@ -3767,6 +_,7 @@ +@@ -3897,6 +_,7 @@ protected void updateFallFlying() { this.checkFallDistanceAccumulation(); if (!this.level().isClientSide()) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Mob.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Mob.java.patch index 78df11b..b3d71cf 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Mob.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Mob.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java -@@ -339,6 +_,8 @@ +@@ -336,6 +_,8 @@ this.playAmbientSound(); } diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch index e825eb7..d807bba 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java +++ b/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java -@@ -114,6 +_,7 @@ +@@ -113,6 +_,7 @@ } protected void alertOther(Mob mob, LivingEntity target) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java.patch index cd1ec78..f2f7c43 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java +++ b/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java -@@ -45,11 +_,11 @@ +@@ -44,11 +_,11 @@ super.tick(); } else { if (this.pathToPosition != null) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch index 7bca1f5..f2de6bb 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch @@ -12,4 +12,4 @@ + // DivineMC end - lithium: skip useless secondary poi sensor // Purpur start - Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off Brain brain = entity.getBrain(); - if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().profession().is(net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) { + if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().profession().is(net.minecraft.world.entity.npc.villager.VillagerProfession.CLERIC)) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/zombie/ZombieVillager.java.patch similarity index 82% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/zombie/ZombieVillager.java.patch index 2724d0a..52c71ab 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/zombie/ZombieVillager.java.patch @@ -1,6 +1,6 @@ ---- a/net/minecraft/world/entity/monster/ZombieVillager.java -+++ b/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -303,6 +_,12 @@ +--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java ++++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java +@@ -324,6 +_,12 @@ if (!this.isSilent()) { level.levelEvent(null, LevelEvent.SOUND_ZOMBIE_CONVERTED, this.blockPosition(), 0); } diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch index cd44647..fa252e9 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java -@@ -1670,6 +_,7 @@ +@@ -1748,6 +_,7 @@ } public void causeFoodExhaustion(float exhaustion, org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason reason) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/raid/Raid.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/raid/Raid.java.patch index 54e045c..d151282 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/raid/Raid.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/raid/Raid.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/raid/Raid.java +++ b/net/minecraft/world/entity/raid/Raid.java -@@ -533,7 +_,7 @@ +@@ -532,7 +_,7 @@ double d1 = vec3.z + 13.0 / squareRoot * (vec31.z - vec3.z); if (squareRoot <= 64.0 || players.contains(serverPlayer)) { serverPlayer.connection 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 deleted file mode 100644 index 7b9549e..0000000 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/GameRules.java.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/net/minecraft/world/level/GameRules.java -+++ b/net/minecraft/world/level/GameRules.java -@@ -300,7 +_,7 @@ - } - - private GameRules(Map, GameRules.Value> rules, FeatureFlagSet enabledFeatures) { -- this.rules = rules; -+ this.rules = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(rules); // DivineMC - lithium: collections/gamerules - this.enabledFeatures = enabledFeatures; - - // Paper start - Perf: Use array for gamerule storage diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch index f7ffa12..37204b8 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch @@ -9,7 +9,7 @@ protected final CollectingNeighborUpdater neighborUpdater; private final List pendingBlockEntityTickers = Lists.newArrayList(); private boolean tickingBlockEntities; -@@ -1453,13 +_,11 @@ +@@ -1448,13 +_,11 @@ boolean runsNormally = this.tickRateManager().runsNormally(); int tickedEntities = 0; // Paper - rewrite chunk system @@ -24,7 +24,7 @@ } else if (runsNormally && this.shouldTickBlocksAt(tickingBlockEntity.getPos())) { tickingBlockEntity.tick(); // Paper start - rewrite chunk system -@@ -1469,7 +_,7 @@ +@@ -1464,7 +_,7 @@ // Paper end - rewrite chunk system } } diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch index d7d32cb..2acecb3 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/net/minecraft/world/level/block/TripWireHookBlock.java -@@ -187,7 +_,6 @@ +@@ -186,7 +_,6 @@ if (!cancelledEmitterHook) { // Paper - Call BlockRedstoneEvent emitState(level, pos, flag2, flag3, flag, flag1); if (!attaching) { @@ -8,7 +8,7 @@ level.setBlock(pos, blockState1.setValue(FACING, direction), Block.UPDATE_ALL); if (shouldNotifyNeighbours) { notifyNeighbors(block, level, pos, direction); -@@ -200,10 +_,18 @@ +@@ -199,10 +_,18 @@ BlockPos blockPos1 = pos.relative(direction, i2); BlockState blockState2 = blockStates[i2]; if (blockState2 != null) { 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 1515951..1e3658a 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 @@ -1,11 +1,11 @@ --- a/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -392,7 +_,7 @@ +@@ -386,7 +_,7 @@ // CraftBukkit start - add method - public @Nullable org.bukkit.inventory.InventoryHolder getOwner() { + public org.bukkit.inventory.@Nullable InventoryHolder getOwner() { - return getOwner(true); + return getOwner(org.bxteam.divinemc.config.DivineConfig.PerformanceCategory.createSnapshotOnRetrievingBlockState); // DivineMC - EMC: Don't use snapshots for acquiring blockstate; } - public @Nullable org.bukkit.inventory.InventoryHolder getOwner(boolean useSnapshot) { + public org.bukkit.inventory.@Nullable InventoryHolder getOwner(boolean useSnapshot) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch index 435134e..a36ef7b 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java -@@ -279,11 +_,18 @@ +@@ -278,11 +_,18 @@ public BlockState getBlockStateFinal(final int x, final int y, final int z) { // Copied and modified from below final int sectionIndex = this.getSectionIndex(y); diff --git a/gradle.properties b/gradle.properties index 3d9101c..7e9cd08 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,9 @@ group = org.bxteam.divinemc -version=1.21.10-R0.1-SNAPSHOT +version=1.21.11-rc3-R0.1-SNAPSHOT -mcVersion=1.21.10 -purpurRef=802b91662dad3e688cd03f39b02375454ca329c7 -experimental=false +mcVersion=1.21.11-rc3 +purpurRef=c51992977fc626e2019cb8ca4194507536754cbc +experimental=true org.gradle.configuration-cache=true org.gradle.caching = true