9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-04 15:41:40 +00:00
This commit is contained in:
Dreeam
2023-12-16 15:35:56 -05:00
parent 6dfd0e6cd3
commit c4a7891533
43 changed files with 1140 additions and 1209 deletions

View File

@@ -1,4 +1,4 @@
name: Build Leaf 1.20.2
name: Build Leaf 1.20.4
on: [ push, pull_request ]
jobs:
build:
@@ -24,14 +24,14 @@ jobs:
run: ./gradlew -Dorg.gradle.jvmargs="-Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true --add-modules jdk.incubator.vector" createReobfPaperclipJar --stacktrace --no-daemon
- name: Rename Paperclip Jar
run: mv build/libs/Leaf-paperclip-1.20.2-R0.1-SNAPSHOT-reobf.jar ./leaf-1.20.2.jar
run: mv build/libs/Leaf-paperclip-1.20.4-R0.1-SNAPSHOT-reobf.jar ./leaf-1.20.4.jar
- name: Release Leaf
if: github.ref_name == 'ver/1.20.2'
if: github.ref_name == 'ver/1.20.4'
uses: marvinpinto/action-automatic-releases@master
with:
title: "Leaf 1.20.2"
automatic_release_tag: "ver-1.20.2"
title: "Leaf 1.20.4"
automatic_release_tag: "ver-1.20.4"
repo_token: "${{ secrets.GITHUB_TOKEN }}"
files: "./leaf-1.20.2.jar"
files: "./leaf-1.20.4.jar"
prerelease: false

View File

@@ -3,7 +3,7 @@
## Leaf
[![Github Actions Build](https://img.shields.io/github/actions/workflow/status/Winds-Studio/Leaf/build-1202.yml?&style=for-the-badge)](https://github.com/Winds-Studio/Leaf/releases)
[![Github Actions Build](https://img.shields.io/github/actions/workflow/status/Winds-Studio/Leaf/build-1204.yml?&style=for-the-badge)](https://github.com/Winds-Studio/Leaf/releases)
[![Discord](https://img.shields.io/discord/1145991395388162119?color=5865F2&label=discord&style=for-the-badge)](https://discord.gg/gfgAwdSEuM)
<h5>Leaf is a drop-in replacement designed for removing some checks, customized, and high-performance built on top of <a href="https://github.com/GaleMC/Gale">Gale</a> with optimization from other forks.</h5>

View File

@@ -1,7 +1,7 @@
group = org.dreeam.leaf
version = 1.20.2-R0.1-SNAPSHOT
version = 1.20.4-R0.1-SNAPSHOT
galeCommit = 07a2ca6b82a3b809d6b89213b0648ef9067858b6
galeCommit = 78098840227379410ccc610bddafa6a7956c6ddd
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -7,17 +7,17 @@ Original license: GPL v3
Original project: https://github.com/pufferfish-gg/Pufferfish
diff --git a/build.gradle.kts b/build.gradle.kts
index 6be021dcdef8283db51baa25e74570473afb9063..a743dd26f0315ac2b39e846c18155b1f2e07e8f9 100644
index 2149d23d695e0dd8ebab9f049ee6c3a164b5918b..8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -47,6 +47,7 @@ dependencies {
@@ -51,6 +51,7 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
api("org.apache.logging.log4j:log4j-api:$log4jVersion")
api("org.slf4j:slf4j-api:$slf4jVersion")
+ api("io.sentry:sentry:7.0.0") // Pufferfish
implementation("org.ow2.asm:asm:9.4")
implementation("org.ow2.asm:asm-commons:9.4")
implementation("org.ow2.asm:asm:9.5")
implementation("org.ow2.asm:asm-commons:9.5")
diff --git a/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java b/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..364e20dfb1a141e86ae64663cc5f31ac6be3306f

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 4f12f5d3d0431cf17c2f6f80f3bdd3c834c9b8fa
Commit: 9e1216de506439171c08773730faea0f0a617a83
Patches below are removed in this patch:
Pufferfish-API-Changes.patch
@@ -279,10 +279,10 @@ index 918a045165cdcde264bc24082b7afebb407271de..687d11619379aead7f665d4a5f8f8bcc
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 7ca70b269e15e818e61a9329e2775789abb4bc73..aa9ca3e33903747a455ad0949387684ce4b917af 100644
index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..7a8a2387d8ae5aae44325da9277e8284b4caa8c0 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -11054,4 +11054,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -11500,4 +11500,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public boolean isEnabledByFeature(@NotNull World world) {
return Bukkit.getDataPackManager().isEnabledByFeature(this, world);
}
@@ -817,10 +817,10 @@ index 138d2530de2410f4a9424dabd3e5ce0cd1c1dcd2..10a8d64ad2da0be2c14f34c3e7d1957c
// Paper start
/**
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 9e3cb75536ae260dc898ab9dafbc1d98398782bc..752690574e1d3f47a3cf80fe5da2ba4107386ffd 100644
index 1d0fd7ff8449f815a7d980af0b378181ea8bf8d8..c20f29e1ddfd1d73df19f6d6f730fa23dc23dc7a 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -1063,4 +1063,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -1107,4 +1107,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
@NotNull String getScoreboardEntryName();
// Paper end - entity scoreboard name
@@ -1027,10 +1027,10 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a47be0fb0220e46cc360729fdf6cc113cdd05a39..91356220da06d290006c7c06244e96a7e88d9740 100644
index d323109ef01bcd31970a749854eeaf8805e8de6b..dd3726acb045b908053f1fdf3a06bf025823f8c3 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3378,4 +3378,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3494,4 +3494,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end
@@ -1266,10 +1266,10 @@ index c9f395064656dd0126410eb3c6e197baa450c063..13156a12e5df50cdc1e465dc0bd9d941
* When a player gets bad omen after killing a patrol captain.
*/
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
index cbce826add9dc2b3187c7bea00c27b785d7517df..3a98de6407d9a6307f89c207be1f09e639385ebe 100644
index 64e59fe706b0bb37fc2439fa88fd40c3167c9fb5..333ba8a730d01b6baa980f34aa03f3db90c8f255 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
@@ -151,7 +151,7 @@ public enum InventoryType {
@@ -159,7 +159,7 @@ public enum InventoryType {
SMITHING_NEW(4, "Upgrade Gear"),
;

View File

@@ -2916,17 +2916,6 @@ index 9d4f553c04784cca63901a56a7aea62a5cae1d72..0f96873eff87ea267f9c1875b3893f35
private static boolean inRange(int i, int j, int k) {
return i >= j && i <= k;
}
diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java
index 9d263ab3afb938c215c0b64d9171345fca6ceb2c..b2c9d86956179b77a43f95f13727a79c114476a7 100644
--- a/src/main/java/org/bukkit/command/MessageCommandSender.java
+++ b/src/main/java/org/bukkit/command/MessageCommandSender.java
@@ -1,5 +1,5 @@
package org.bukkit.command;
-
+// Dreeam - TODO: need check
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.permissions.Permission;
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
index e43d0e0a2c5edfcc82a677b6c4db9314006c9bf4..68fafa73d2e8d832acc7ce47591477749128b007 100644
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts
index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3df35a335 100644
index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f88592f46f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,11 +9,11 @@ java {
@@ -16,9 +16,8 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
+val annotationsVersion = "24.1.0" // Leaf - Bump Dependencies
val bungeeCordChatVersion = "1.20-R0.1"
val adventureVersion = "4.14.0"
-val slf4jVersion = "1.8.0-beta4"
val slf4jVersion = "2.0.9"
-val log4jVersion = "2.17.1"
+val slf4jVersion = "2.0.9" // Leaf - Bump Dependencies
+val log4jVersion = "2.22.0" // Leaf - Bump Dependencies
val apiAndDocs: Configuration by configurations.creating {
attributes {
@@ -30,9 +29,9 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
- api("com.google.guava:guava:32.1.2-jre")
+ api("com.google.guava:guava:32.1.3-jre") // Leaf - Bump Dependencies
api("com.google.code.gson:gson:2.10.1")
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.14") // Paper
api("org.yaml:snakeyaml:2.2")
@@ -37,7 +37,7 @@ dependencies {
// Paper start - adventure
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.14") {
@@ -41,7 +41,7 @@ dependencies {
api("com.googlecode.json-simple:json-simple:1.1.1") {
isTransitive = false // includes junit
}
@@ -41,12 +40,12 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion"))
apiAndDocs("net.kyori:adventure-api")
apiAndDocs("net.kyori:adventure-text-minimessage")
@@ -49,30 +49,32 @@ dependencies {
@@ -53,29 +53,31 @@ dependencies {
api("org.slf4j:slf4j-api:$slf4jVersion")
api("io.sentry:sentry:7.0.0") // Pufferfish
- implementation("org.ow2.asm:asm:9.4")
- implementation("org.ow2.asm:asm-commons:9.4")
- implementation("org.ow2.asm:asm:9.5")
- implementation("org.ow2.asm:asm-commons:9.5")
+ // Leaf start - Bump Dependencies
+ implementation("org.ow2.asm:asm:9.6")
+ implementation("org.ow2.asm:asm-commons:9.6")
@@ -55,18 +54,16 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
- api("org.apache.maven:maven-resolver-provider:3.8.5")
- compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
- compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
- compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper
+ api("org.apache.maven:maven-resolver-provider:3.9.6")
+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+ compileOnly("com.google.code.findbugs:jsr305:3.0.2") // Paper
val annotations = "org.jetbrains:annotations:$annotationsVersion" // Paper - we don't want Java 5 annotations...
compileOnly(annotations)
testCompileOnly(annotations)
// Paper start - add checker
- val checkerQual = "org.checkerframework:checker-qual:3.21.0"
- val checkerQual = "org.checkerframework:checker-qual:3.33.0"
+ val checkerQual = "org.checkerframework:checker-qual:3.41.0" // Leaf - Bump Dependencies
compileOnlyApi(checkerQual)
testCompileOnly(checkerQual)
@@ -85,7 +82,7 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
}
// Paper start
@@ -140,7 +142,7 @@ tasks.withType<Javadoc> {
@@ -143,7 +145,7 @@ tasks.withType<Javadoc> {
options.use()
options.isDocFilesSubDirs = true
options.links(
@@ -94,7 +91,7 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
"https://javadoc.io/doc/org.yaml/snakeyaml/2.2/",
"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations
// "https://javadoc.io/doc/net.md-5/bungeecord-chat/$bungeeCordChatVersion/", // Paper - don't link to bungee chat
@@ -158,7 +160,7 @@ tasks.withType<Javadoc> {
@@ -161,7 +163,7 @@ tasks.withType<Javadoc> {
"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
"https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/$log4jVersion/",
// Paper end
@@ -103,7 +100,7 @@ index a743dd26f0315ac2b39e846c18155b1f2e07e8f9..008ede9826d436cbc96dab9ae13b56e3
)
options.tags("apiNote:a:API Note:")
@@ -201,6 +203,9 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.
@@ -204,6 +206,9 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
classpath.from(configurations.compileClasspath)
}

View File

@@ -7,14 +7,12 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 91356220da06d290006c7c06244e96a7e88d9740..2eb611a28b4567f40aec9e864eb0dac62096f7d4 100644
index dd3726acb045b908053f1fdf3a06bf025823f8c3..e13e160aa2a404db7b84a1bed1e66f6f2f9232bc 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -8,8 +8,11 @@ import java.util.Collection;
import java.util.Date;
@@ -9,6 +9,10 @@ import java.util.Date;
import java.util.Map;
import java.util.UUID;
-
import org.bukkit.BanEntry;
+// KeYi start
+import java.util.concurrent.CompletableFuture;
@@ -23,7 +21,7 @@ index 91356220da06d290006c7c06244e96a7e88d9740..2eb611a28b4567f40aec9e864eb0dac6
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
@@ -3497,4 +3500,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3613,4 +3617,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
sendDeathScreen(message);
}
// Purpur end

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 2eb611a28b4567f40aec9e864eb0dac62096f7d4..10350641e7d1cd066e1b7bd8be099b387df3ca58 100644
index e13e160aa2a404db7b84a1bed1e66f6f2f9232bc..3c5a76050deb45d15e3608d0a99350c09bd1e766 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3244,6 +3244,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3361,6 +3361,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName();
// Paper end

View File

@@ -5,22 +5,19 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index de7a3389c66d5cb3123cf4c85d854bc727528b65..14965728716a69f849c21cfe69954a89cf054ff8 100644
index e800e16e408d8a2f79c98bba229e878665b332db..40cd0233582c2f4e05c57853572eac7abc1f4015 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -15,9 +15,9 @@ val alsoShade: Configuration by configurations.creating
dependencies {
@@ -29,7 +29,7 @@ dependencies {
extraRuntime(platform("net.kyori:adventure-bom:4.15.0-SNAPSHOT"))
// Gale start - project setup
// Depend on own API
- implementation(project(":gale-api"))
+ implementation(project(":leaf-api")) // Leaf
// Depend on Paper MojangAPI
- implementation("io.papermc.paper:paper-mojangapi:1.20.1-R0.1-SNAPSHOT") {
+ implementation("io.papermc.paper:paper-mojangapi:1.20.2-R0.1-SNAPSHOT") { // Leaf
implementation("io.papermc.paper:paper-mojangapi:${project.version}") {
exclude("io.papermc.paper", "paper-api")
}
// Gale end - project setup
@@ -87,7 +87,7 @@ tasks.jar {
@@ -101,7 +101,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
@@ -76,10 +73,10 @@ index e45e6b44b2a8f2cdae6e0048a812b92126aa17ca..b5f3f213da8a40d5184098af017c8e26
.completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1fb4befc9fd770e2dcc31e9f32965f4510ecc316..a93db76e432d485690d996d821bf8ec68c599b48 100644
index f1bf143d5a97a4afbba6b2e7c07a5f46678c3260..69d7ffeae56f4e9e8bd33b23c9322f1cd9d09272 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -898,7 +898,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -944,7 +944,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
We do not want people to report thread issues to Paper,
but we do want people to report thread issues to Gale.
*/
@@ -89,10 +86,10 @@ index 1fb4befc9fd770e2dcc31e9f32965f4510ecc316..a93db76e432d485690d996d821bf8ec6
while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 8658179e08172a85a4b762fcedf071d24ff8365e..dce9eb210fe92f44745a316d1969251554673af2 100644
index 15f1bccace7f03ab5fe63dd9d23441018835e7be..cae462613284bea0029e1087f80d758e89090c12 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -272,7 +272,7 @@ import javax.annotation.Nullable; // Paper
@@ -273,7 +273,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {
@@ -102,7 +99,7 @@ index 8658179e08172a85a4b762fcedf071d24ff8365e..dce9eb210fe92f44745a316d19692515
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index fda56c3970e7fa1e9e282eee4323b23a6f80d316..b07be33bf62a0d4f0a0f44ac6bfbb023086a6b0d 100644
index ddcc9f28cb9ca85e0875bacdfccb883cd1ce0aef..4be39d64431b7c42ef23c13c2872f8ab46fffdc7 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -501,7 +501,7 @@ public class CraftScheduler implements BukkitScheduler {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaf Config
diff --git a/build.gradle.kts b/build.gradle.kts
index 14965728716a69f849c21cfe69954a89cf054ff8..b386250d71d47ab5591a9b89ff39b4369ec4e0a3 100644
index 40cd0233582c2f4e05c57853572eac7abc1f4015..2b6b85708f3464e3d65de298c6e120145868ad5a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -57,6 +57,13 @@ dependencies {
@@ -71,6 +71,13 @@ dependencies {
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
@@ -38,7 +38,7 @@ index f749516e5d3c22e808638f3a7672aab837571b1a..61fc65624f7d9a3bfa399a58112efb7f
new TimingsExport(listeners, parent, history).start();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 72a364253d5871b4902b50cfd57d0b7f30c742e6..f74efb12626a3f027d716bcd3bdb69d9225b3fac 100644
index 08d82f8592714eac92ead36b98460de6ff607cfe..fc017f554147eaaee5c436ede2595bccd6b8fd7f 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -232,6 +232,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -20,10 +20,10 @@ and, in my opinion, worth the low risk of minor mob-spawning-related
inconsistencies.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index a93db76e432d485690d996d821bf8ec68c599b48..c5f86ffb98bf9790e58e22473762a58546564100 100644
index 69d7ffeae56f4e9e8bd33b23c9322f1cd9d09272..01d8446b4019562a2e68b14236a85277639d6728 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -295,6 +295,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -301,6 +301,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final long SERVER_INIT = System.nanoTime();
// Paper end - lag compensation
@@ -33,7 +33,7 @@ index a93db76e432d485690d996d821bf8ec68c599b48..c5f86ffb98bf9790e58e22473762a585
AtomicReference<S> atomicreference = new AtomicReference();
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index d41a5cd97255663c54b45cb8f68b5ff5f74d9c14..dc6e4bcdbaef000869fcd35d125f71e45f3f2258 100644
index fc017f554147eaaee5c436ede2595bccd6b8fd7f..5f1d63343b1d7fbcf19b1ef189504e55170dce34 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -350,6 +350,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -58,10 +58,10 @@ index 7fab09e8edf26bd841ab6e51ddf45ac316aa113b..f2070cc0c1a665520b7270b3d72d4255
public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop<Runnable> mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory, int viewDistance, boolean dsync) {
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 292a6450a2031756b3037c77dfc501e9396d7440..c466991236490bd05bde99e01862fb0e02ff41f1 100644
index b4b6f21556717900b7ac49f8bead34a95362d4de..c1a140b9d197c06451fe338c28adc5bdee1183a3 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -74,6 +74,9 @@ public class ServerChunkCache extends ChunkSource {
@@ -72,6 +72,9 @@ public class ServerChunkCache extends ChunkSource {
final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<LevelChunk> loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f);
private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4];
@@ -71,71 +71,58 @@ index 292a6450a2031756b3037c77dfc501e9396d7440..c466991236490bd05bde99e01862fb0e
private static int getChunkCacheKey(int x, int z) {
return x & 3 | ((z & 3) << 2);
@@ -521,28 +524,35 @@ public class ServerChunkCache extends ChunkSource {
int l = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
- // re-set mob counts
- for (ServerPlayer player : this.level.players) {
- // Paper start - per player mob spawning backoff
- for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) {
- player.mobCounts[ii] = 0;
-
- int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm?
- if (newBackoff < 0) {
- newBackoff = 0;
+ // Pufferfish start - moved down when async processing
+ if (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning) {
+ // re-set mob counts
+ for (ServerPlayer player : this.level.players) {
+ // Paper start - per player mob spawning backoff
+ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) {
+ player.mobCounts[ii] = 0;
+
+ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm?
+ if (newBackoff < 0) {
+ newBackoff = 0;
+ }
+ player.mobBackoffCounts[ii] = newBackoff;
@@ -550,6 +553,8 @@ public class ServerChunkCache extends ChunkSource {
// Paper start - per player mob spawning
int naturalSpawnChunkCount = k;
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
+ // Pufferfish start - moved down when async processing
+ if (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning) {
// re-set mob counts
for (ServerPlayer player : this.level.players) {
// Paper start - per player mob spawning backoff
@@ -564,17 +569,22 @@ public class ServerChunkCache extends ChunkSource {
}
- player.mobBackoffCounts[ii] = newBackoff;
+ // Paper end - per player mob spawning backoff
// Paper end - per player mob spawning backoff
}
- // Paper end - per player mob spawning backoff
+ lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true);
- spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
+ lastSpawnState = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
+ }
+ // Pufferfish end
} else {
- spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
+ // Pufferfish start
+ lastSpawnState = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
+ _pufferfish_spawnCountsReady.set(true);
+ // Pufferfish end
}
- spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true);
+ // Pufferfish end
} else {
- spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
+ // Pufferfish start
+ lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
+ _pufferfish_spawnCountsReady.set(true);
+ // Pufferfish end
}
// Paper end
this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
// Paper end
this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
- this.lastSpawnState = spawnercreature_d;
+ //this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
// Paper - optimise chunk tick iteration
// Paper - optimise chunk tick iteration
- this.lastSpawnState = spawnercreature_d;
+ //this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
// Gale start - MultiPaper - skip unnecessary mob spawning computations
@@ -636,8 +646,8 @@ public class ServerChunkCache extends ChunkSource {
// Paper end - optimise chunk tick iteration
if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) { // Paper - optimise chunk tick iteration
chunk1.incrementInhabitedTime(j);
- if (spawn && flag2AndHasNaturalSpawn && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Gale - MultiPaper - skip unnecessary mob spawning computations
- NaturalSpawner.spawnForChunk(this.level, chunk1, spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1);
+ if (spawn && flag2 && (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning || _pufferfish_spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Pufferfish
+ NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); // Pufferfish
}
} else {
- spawnercreature_d = null;
+ lastSpawnState = null; // Pufferfish
}
// Gale end - MultiPaper - skip unnecessary mob spawning computations
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
@@ -679,6 +689,39 @@ public class ServerChunkCache extends ChunkSource {
@@ -663,8 +673,8 @@ public class ServerChunkCache extends ChunkSource {
if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) {
// Paper end - optimise chunk tick iteration
chunk1.incrementInhabitedTime(j);
- if (spawn && flagAndHasNaturalSpawn && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Gale - MultiPaper - skip unnecessary mob spawning computations
- NaturalSpawner.spawnForChunk(this.level, chunk1, spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1);
+ if (spawn && flagAndHasNaturalSpawn && (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning || _pufferfish_spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Gale - MultiPaper - skip unnecessary mob spawning computations // Pufferfish
+ NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); // Pufferfish
}
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
@@ -707,6 +717,40 @@ public class ServerChunkCache extends ChunkSource {
this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
// Paper - optimise chunk tick iteration
this.chunkMap.tick();
}
+
+ // Pufferfish start - optimize mob spawning
+ if (org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning) {
+ for (ServerPlayer player : this.level.players) {

View File

@@ -30,10 +30,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index fcf17d4faffe60bd2b2ba288c919debec735d432..7a63134b143e9ef67554bcfd6bcdaaf1ce2917d9 100644
index b19571f838469dcaba5ecee06fe43de23bcdc776..1c9ba5d25d521126a912522aed8d220cc1bb68b4 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -864,6 +864,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -881,6 +881,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
this.timings.entityTick.startTiming(); // Spigot
this.entityTickList.forEach((entity) -> {
@@ -42,10 +42,10 @@ index fcf17d4faffe60bd2b2ba288c919debec735d432..7a63134b143e9ef67554bcfd6bcdaaf1
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a11ab3630fdc5848440e0df0f450337b02ca965a..ab359bca07ec86f14be8b2fb7cc0972d79bc0411 100644
index 53275a3aef1f4c03324a368a9fef34ffc6307a7f..e3839453a62eb6b6b1272289ccde6a49593aa2f0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -436,6 +436,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -441,6 +441,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
// Paper end
@@ -58,10 +58,10 @@ index a11ab3630fdc5848440e0df0f450337b02ca965a..ab359bca07ec86f14be8b2fb7cc0972d
return this.yRot;
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 73871f456a85bda1e51f54986d0e61fb629822e8..ebf05a484175548c0e411adfd35fd1f648925fed 100644
index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..3e89a633b57fd206216b65f704ea8c0243e02c52 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -301,6 +301,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -305,6 +305,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
private final boolean canSpawnFarFromPlayer;
private final int clientTrackingRange;
private final int updateInterval;
@@ -70,10 +70,10 @@ index 73871f456a85bda1e51f54986d0e61fb629822e8..ebf05a484175548c0e411adfd35fd1f6
private String descriptionId;
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index b35d9c04f0a9d73d6483526e396035d72fa33825..770fb085a259cf4af6e0c81c43f9968529659210 100644
index db9aee68b644d318f65df010027b40628ea84ea2..88cccee4152d18db34818a37c7a2c19dcb6ef596 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -226,10 +226,10 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -227,10 +227,10 @@ public abstract class Mob extends LivingEntity implements Targeting {
@Override
public void inactiveTick() {
super.inactiveTick();
@@ -86,7 +86,7 @@ index b35d9c04f0a9d73d6483526e396035d72fa33825..770fb085a259cf4af6e0c81c43f99685
this.targetSelector.tick();
}
}
@@ -904,10 +904,14 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -905,10 +905,14 @@ public abstract class Mob extends LivingEntity implements Targeting {
int i = this.level().getServer().getTickCount() + this.getId();
if (i % 2 != 0 && this.tickCount > 1) {
@@ -153,10 +153,10 @@ index 26731a659fe3c40fc20135d473bacf105cc15300..c521ff04be40bfa892021f67acc1b324
AllayAi.updateActivity(this);
super.customServerAiStep();
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 120fc4e35eb6eedb401b2741a5617bb90d0ee533..26f0430a92aaa5dd5210b255ffb82291c5a7b278 100644
index 91bde1774cc9e7a323ffd2c943b6656101b232a1..53e932cd13d4d06d81cb3d41b433b8b03375b3b9 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -280,8 +280,10 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -275,8 +275,10 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
return true;
}
@@ -168,11 +168,11 @@ index 120fc4e35eb6eedb401b2741a5617bb90d0ee533..26f0430a92aaa5dd5210b255ffb82291
AxolotlAi.updateActivity(this);
if (!this.isNoAi()) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index eee679f4c6d33d8dab9ad635c42a41a6dde122c5..4e78834c03baef977ebc691103f4ec7a8d88a5fb 100644
index 81e69ea2858228942177e54c92b50b2b908bc010..d1458cec0313f7317134e7eb8bdabc31cea5df68 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -164,8 +164,10 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
return true;
@@ -159,8 +159,10 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
}
+ private int behaviorTick = 0; // Pufferfish
@@ -243,10 +243,10 @@ index 57d7873290fc361d8c5c094e166416772fe11cbe..e25456327e510c0b4fac3b1974aa6f3e
PiglinAi.updateActivity(this);
super.customServerAiStep();
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index db09d5c6b709f746e69111cedebd29f82c1f9e32..f172cf9f754b73e44c3688581c984baa4e2ad8b6 100644
index 206701dd16f0e5850bc2384388a0a3a746a1b74e..fd2811b0d7cd0f9ff165c5116fe268c4cfe01cce 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -272,10 +272,12 @@ public class Warden extends Monster implements VibrationSystem {
@@ -273,10 +273,12 @@ public class Warden extends Monster implements VibrationSystem {
}
@@ -260,7 +260,7 @@ index db09d5c6b709f746e69111cedebd29f82c1f9e32..f172cf9f754b73e44c3688581c984baa
super.customServerAiStep();
if ((this.tickCount + this.getId()) % 120 == 0) {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index fdc63df66c41a26c9b417fc64df0120f1f3cb594..892101a78dbf2311f74abdad79b3d4dff8597a3a 100644
index 53da46274f3cb2767b20e6959e2a0d01c1899750..ad8aad31c748bd813634abd8de4a75f89d8389f0 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -144,6 +144,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler

View File

@@ -7,10 +7,10 @@ Original license: GPL v3
Original project: https://github.com/pufferfish-gg/Pufferfish
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index bb32b2d71b65254ccfa6a73e7debc63f801e7dc5..db0fb4cd2041b456269479bd97751bd78d9593e9 100644
index 88cccee4152d18db34818a37c7a2c19dcb6ef596..c413a191fa8fd1a2447f51f66187f0c18818c222 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -222,11 +222,13 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -223,11 +223,13 @@ public abstract class Mob extends LivingEntity implements Targeting {
return this.lookControl;
}

View File

@@ -7,10 +7,10 @@ Original license: GPL v3
Original project: https://github.com/pufferfish-gg/Pufferfish
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ab359bca07ec86f14be8b2fb7cc0972d79bc0411..e8e7f56860720f560f5abf48ea91dc0ff5b34380 100644
index e3839453a62eb6b6b1272289ccde6a49593aa2f0..b6efe398aa82e1095e6f14e5544e656ebd92ddad 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -805,6 +805,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -810,6 +810,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public void tick() {
@@ -24,10 +24,10 @@ index ab359bca07ec86f14be8b2fb7cc0972d79bc0411..e8e7f56860720f560f5abf48ea91dc0f
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index ebf05a484175548c0e411adfd35fd1f648925fed..2561e74ffdf595a9b6ae13dcd738662c772db442 100644
index 3e89a633b57fd206216b65f704ea8c0243e02c52..a63399eedb896c06e96c7fba5cac7102e1c40ba6 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -302,6 +302,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -306,6 +306,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
private final int clientTrackingRange;
private final int updateInterval;
public boolean dabEnabled = false; // Pufferfish

File diff suppressed because one or more lines are too long

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur: Configurable server mod name
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 995dd071082e482785448678b9189f0715a75308..ee53c964c86e281120958aa0d2a7e1b7ca9d070f 100644
index 7418860e8d25d6eeab33a617a7365c608e1454d2..176f10372a0060fbd2733a6713eb3979a8f4652e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1689,7 +1689,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1858,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {

View File

@@ -7,15 +7,15 @@ Completely remove the Timings, since it wastes too much performance. Use Spark i
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
deleted file mode 100644
index e6452bb4f29bf32600dbf8654365826600189bb5..0000000000000000000000000000000000000000
index 4b467f1af93452d13829f756d55dee18b8889d40..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/timings/MinecraftTimings.java
+++ /dev/null
@@ -1,182 +0,0 @@
@@ -1,181 +0,0 @@
-package co.aikar.timings;
-
-import com.google.common.collect.MapMaker;
-import io.papermc.paper.configuration.GlobalConfiguration;
-import net.minecraft.commands.CommandFunction;
-import net.minecraft.commands.functions.CommandFunction;
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.world.level.block.Block;
-import net.minecraft.world.level.block.entity.BlockEntity;
@@ -62,7 +62,6 @@ index e6452bb4f29bf32600dbf8654365826600189bb5..00000000000000000000000000000000
- public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search
- public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager
-
-
- public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
-
- private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap();
@@ -173,8 +172,8 @@ index e6452bb4f29bf32600dbf8654365826600189bb5..00000000000000000000000000000000
- return Timings.ofSafe("## Packet - " + packet.getClass().getName(), packetProcessTimer);
- }
-
- public static Timing getCommandFunctionTiming(CommandFunction function) {
- return Timings.ofSafe("Command Function - " + function.getId());
- public static Timing getCommandFunctionTiming(CommandFunction<?> function) {
- return Timings.ofSafe("Command Function - " + function.id());
- }
-
- public static void processConfig(GlobalConfiguration.Timings config) {
@@ -926,31 +925,11 @@ index dab211c458311869c61779305580a1c7da830f71..0ddcf3652a2cc9e0cc28f672f103ec7e
}
@Override
diff --git a/src/main/java/net/minecraft/commands/CommandFunction.java b/src/main/java/net/minecraft/commands/CommandFunction.java
index 956cddf5d975b91619316b9b6779cf51575cfc0a..0e460de37ac2ae8accbd0d3da73faac6cd7df8e0 100644
--- a/src/main/java/net/minecraft/commands/CommandFunction.java
+++ b/src/main/java/net/minecraft/commands/CommandFunction.java
@@ -32,15 +32,6 @@ import net.minecraft.server.ServerFunctionManager;
public class CommandFunction {
private final CommandFunction.Entry[] entries;
final ResourceLocation id;
- // Paper start
- public co.aikar.timings.Timing timing;
- public co.aikar.timings.Timing getTiming() {
- if (timing == null) {
- timing = co.aikar.timings.MinecraftTimings.getCommandFunctionTiming(this);
- }
- return timing;
- }
- // Paper end
public CommandFunction(ResourceLocation id, CommandFunction.Entry[] elements) {
this.id = id;
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
index 9a49f5271ec1d9de17632bfffe8309cb1ba0d8b1..1bf374d482acba25614ae303d1fa72ed686a3072 100644
index c5c734b9eb80d1cdf0e9fd8a043f2b6d1f4cbffe..68ef0398e1b517dd9fd2def43d7d87e4be42ec84 100644
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
@@ -48,8 +48,8 @@ public class PacketUtils {
@@ -49,8 +49,8 @@ public class PacketUtils {
try { // Paper - detailed watchdog information
if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590
if (listener.shouldHandleMessage(packet)) {
@@ -960,12 +939,12 @@ index 9a49f5271ec1d9de17632bfffe8309cb1ba0d8b1..1bf374d482acba25614ae303d1fa72ed
+ try {
packet.handle(listener);
} catch (Exception exception) {
if (exception instanceof ReportedException) {
label25:
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3eaf0752ec 100644
index 176f10372a0060fbd2733a6713eb3979a8f4652e..138935ffe2f7852e8aa30a5fdea2d4ca340c4cdf 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -179,8 +179,6 @@ import org.bukkit.craftbukkit.Main;
@@ -180,8 +180,6 @@ import org.bukkit.craftbukkit.Main;
import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end
@@ -974,7 +953,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable {
public static final int SERVER_THREAD_PRIORITY = Integer.getInteger("gale.thread.priority.server", -1); // Gale - server thread priority environment variable
@@ -917,7 +915,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -963,7 +961,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Shutdown and don't bother finishing
@@ -982,7 +961,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
// Purpur start
if (upnp) {
if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
@@ -1281,7 +1278,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1345,7 +1342,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
protected void waitUntilNextTick() {
@@ -991,8 +970,27 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
long tickOversleepStart = System.nanoTime(); // Gale - YAPFA - last tick time
this.managedBlock(() -> {
return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick
@@ -1377,15 +1374,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public void onServerExit() {}
@@ -1414,8 +1411,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.startTiming();
- try {
for (;;) {
boolean moreTasks = this.tickMidTickTasks();
long currTime = System.nanoTime();
@@ -1440,9 +1435,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
}
- } finally {
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.stopTiming();
- }
}
// Paper end - execute chunk tasks mid tick
@@ -1515,15 +1507,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
- co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTimingFullServerTick(); // Paper // Gale - final timings calls
@@ -1009,7 +1007,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
// Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper
@@ -1417,11 +1413,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1557,11 +1548,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// Paper end
io.papermc.paper.util.CachedLists.reset(); // Paper
@@ -1021,15 +1019,15 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
// Paper start
long endTime = System.nanoTime();
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
@@ -1439,7 +1430,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1583,7 +1569,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end
this.logTickTime(k - i);
this.logTickTime(l - i);
org.spigotmc.WatchdogThread.tick(); // Spigot
- co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTimingFullServerTick(); // Paper // Gale - final timings calls
}
protected void logTickTime(long nanos) {}
@@ -1476,9 +1466,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private int computeNextAutosaveInterval() {
@@ -1645,9 +1630,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing();
});
@@ -1039,7 +1037,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
// Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> {
@@ -1494,20 +1482,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1663,20 +1646,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
});
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
@@ -1060,7 +1058,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
// Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - optimize time updates
for (final ServerLevel level : this.getAllLevels()) {
@@ -1527,7 +1510,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1696,7 +1674,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
// Paper end
@@ -1068,7 +1066,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
this.isIteratingOverLevels = true; // Paper
net.minecraft.network.FriendlyByteBuf.hasItemSerializeEvent = org.purpurmc.purpur.event.packet.NetworkItemSerializeEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
@@ -1547,14 +1529,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1716,14 +1693,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end */
try {
@@ -1083,17 +1081,17 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
} catch (Throwable throwable) {
// Spigot Start
CrashReport crashreport;
@@ -1574,21 +1554,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1743,21 +1718,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
this.isIteratingOverLevels = false; // Paper
- MinecraftTimings.connectionTimer.startTiming(); // Spigot
- MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper
this.getConnection().tick();
- MinecraftTimings.connectionTimer.stopTiming(); // Spigot
- MinecraftTimings.connectionTimer.stopTiming(); // Spigot // Paper
- MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper
this.playerList.tick();
- MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper
if (SharedConstants.IS_RUNNING_IN_IDE) {
if (SharedConstants.IS_RUNNING_IN_IDE && this.tickRateManager.runsNormally()) {
GameTestTicker.SINGLETON.tick();
}
@@ -1105,7 +1103,7 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
iterator = this.playerList.getPlayers().iterator();
@@ -1598,7 +1572,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1767,7 +1736,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
entityplayer.connection.chunkSender.sendNextChunks(entityplayer);
entityplayer.connection.resumeFlushing();
}
@@ -1113,40 +1111,8 @@ index badb81539ce8c19a4fd15bcbdde074688c16db92..6dd82dca0c02a92e220d99ea4f2e6e3e
}
private void synchronizeTime(ServerLevel world) {
@@ -2664,8 +2637,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.startTiming();
- try {
for (;;) {
boolean moreTasks = this.tickMidTickTasks();
long currTime = System.nanoTime();
@@ -2690,9 +2661,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
}
- } finally {
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.stopTiming();
- }
}
// Paper end - execute chunk tasks mid tick
}
diff --git a/src/main/java/net/minecraft/server/ServerFunctionManager.java b/src/main/java/net/minecraft/server/ServerFunctionManager.java
index 0d1d4d2b1ed46a9f4ee383112ea20ac68295f026..662ad3887cc4a6fe3084ba63895e3f0c6bd73c44 100644
--- a/src/main/java/net/minecraft/server/ServerFunctionManager.java
+++ b/src/main/java/net/minecraft/server/ServerFunctionManager.java
@@ -91,7 +91,7 @@ public class ServerFunctionManager {
} else {
int i;
- try (co.aikar.timings.Timing timing = function.getTiming().startTiming()) { // Paper
+ try {
this.context = new ServerFunctionManager.ExecutionContext(tracer);
i = this.context.runTopCommand(customfunction1, source);
} finally {
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 77e80f2a59a8a45138c2b8504842f6f50d4895ab..4edbbbf380d751cdddda51e4a863c90a6ff77e1c 100644
index f690b0b56bdaf78ce1e64445f14018b705eb3c37..3db403505f2829680648e9ff2bc2c1288b4e70cf 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -57,7 +57,6 @@ import org.apache.logging.log4j.Level;
@@ -1174,7 +1140,7 @@ index 77e80f2a59a8a45138c2b8504842f6f50d4895ab..4edbbbf380d751cdddda51e4a863c90a
}
@Override
@@ -821,23 +817,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -822,23 +818,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (event.isCancelled()) {
return;
}
@@ -1277,10 +1243,10 @@ index f2070cc0c1a665520b7270b3d72d425535288f08..6c3c4ec6cef581da45f6cdbb68cb74ea
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index c466991236490bd05bde99e01862fb0e02ff41f1..cb5a808ff5902ddae52c400c0f60f02c5463d867 100644
index c1a140b9d197c06451fe338c28adc5bdee1183a3..76b64eb4a69e2d02c23d5375f1e80ab8ad19e403 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -293,10 +293,8 @@ public class ServerChunkCache extends ChunkSource {
@@ -291,10 +291,8 @@ public class ServerChunkCache extends ChunkSource {
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
// Paper end
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info
@@ -1291,7 +1257,7 @@ index c466991236490bd05bde99e01862fb0e02ff41f1..cb5a808ff5902ddae52c400c0f60f02c
} // Paper
ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1;
@@ -445,17 +443,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -443,17 +441,13 @@ public class ServerChunkCache extends ChunkSource {
public void save(boolean flush) {
this.runDistanceManagerUpdates();
@@ -1309,7 +1275,7 @@ index c466991236490bd05bde99e01862fb0e02ff41f1..cb5a808ff5902ddae52c400c0f60f02c
}
// Paper end
@@ -481,20 +475,14 @@ public class ServerChunkCache extends ChunkSource {
@@ -479,21 +473,15 @@ public class ServerChunkCache extends ChunkSource {
@Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
@@ -1322,6 +1288,7 @@ index c466991236490bd05bde99e01862fb0e02ff41f1..cb5a808ff5902ddae52c400c0f60f02c
this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
this.tickChunks();
- this.level.timings.chunks.stopTiming(); // Paper - timings
this.chunkMap.tick();
}
- this.level.timings.doChunkUnload.startTiming(); // Spigot
@@ -1330,58 +1297,58 @@ index c466991236490bd05bde99e01862fb0e02ff41f1..cb5a808ff5902ddae52c400c0f60f02c
this.clearCache();
}
@@ -520,7 +508,6 @@ public class ServerChunkCache extends ChunkSource {
boolean flag2AndHasNaturalSpawn = flag2 && this.anySpawnCategoryIsSpawnedThisTick();
if (flag2AndHasNaturalSpawn) {
// Gale end - MultiPaper - skip unnecessary mob spawning computations
- this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
int l = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
@@ -550,7 +537,6 @@ public class ServerChunkCache extends ChunkSource {
// Pufferfish end
}
// Paper end
- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
@@ -503,7 +491,6 @@ public class ServerChunkCache extends ChunkSource {
//this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
// Paper - optimise chunk tick iteration
@@ -560,9 +546,6 @@ public class ServerChunkCache extends ChunkSource {
spawnercreature_d = null;
}
// Gale end - MultiPaper - skip unnecessary mob spawning computations
- this.level.timings.chunkTicks.startTiming(); // Paper
-
- // Paper - optimise chunk tick iteration
this.lastInhabitedUpdate = i;
if (!this.level.isDebug()) {
- if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
// Paper start - optimise chunk tick iteration
ChunkMap playerChunkMap = this.chunkMap;
@@ -663,15 +646,10 @@ public class ServerChunkCache extends ChunkSource {
@@ -548,7 +535,6 @@ public class ServerChunkCache extends ChunkSource {
boolean flagAndHasNaturalSpawn = flag && this.anySpawnCategoryIsSpawnedThisTick();
if (flagAndHasNaturalSpawn) {
// Gale end - MultiPaper - skip unnecessary mob spawning computations
- this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
int naturalSpawnChunkCount = k;
@@ -579,7 +565,6 @@ public class ServerChunkCache extends ChunkSource {
// Pufferfish end
}
// Paper end
- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
//this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
// Gale start - MultiPaper - skip unnecessary mob spawning computations
@@ -690,17 +675,13 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
- this.level.timings.chunkTicks.stopTiming(); // Paper
if (flag) {
- try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings
this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies);
- } // Paper - timings
}
}
// Paper end - optimise chunk tick iteration
- this.level.timings.chunkTicks.stopTiming(); // Paper
if (flag2) {
- try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings
this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies);
- } // Paper - timings
}
- // Paper - optimise chunk tick iteration
// Paper - optimise chunk tick iteration
- this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing
// Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -685,7 +663,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -714,7 +695,6 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
- this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
// Paper - optimise chunk tick iteration
this.chunkMap.tick();
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19abb4d9405 100644
index dd677f1981abd5aaaf9c1ec79dbde1766f70ce84..22c9353264da69591a748773e5dd0ea49229f221 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@
@@ -1392,36 +1359,40 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
import com.google.common.collect.Lists;
import com.mojang.datafixers.DataFixer;
import com.mojang.datafixers.util.Pair;
@@ -852,23 +851,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -863,27 +862,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickTime();
}
this.updateSkyBrightness();
this.tickTime();
- this.timings.scheduledBlocks.startTiming(); // Paper
if (!this.isDebug()) {
if (!this.isDebug() && flag) {
j = this.getGameTime();
this.blockTicks.tick(j, 65536, this::tickBlock);
this.fluidTicks.tick(j, 65536, this::tickFluid);
}
- this.timings.scheduledBlocks.stopTiming(); // Paper
- this.timings.raids.startTiming(); // Paper - timings
this.raids.tick();
- this.timings.raids.stopTiming(); // Paper - timings
if (flag) {
- this.timings.raids.startTiming(); // Paper - timings
this.raids.tick();
- this.timings.raids.stopTiming(); // Paper - timings
}
- this.timings.chunkProviderTick.startTiming(); // Paper - timings
this.getChunkSource().tick(shouldKeepTicking, true);
- this.timings.chunkProviderTick.stopTiming(); // Paper - timings
- this.timings.doSounds.startTiming(); // Spigot
this.runBlockEvents();
- this.timings.doSounds.stopTiming(); // Spigot
this.handlingTick = false;
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
@@ -877,13 +868,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (flag) {
- this.timings.doSounds.startTiming(); // Spigot
this.runBlockEvents();
- this.timings.doSounds.stopTiming(); // Spigot
}
if (flag || this.emptyTime++ < 300) {
this.handlingTick = false;
@@ -894,13 +885,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
if (flag1 || this.emptyTime++ < 300) {
- this.timings.tickEntities.startTiming(); // Spigot
if (this.dragonFight != null) {
if (this.dragonFight != null && flag) {
this.dragonFight.tick();
}
@@ -1430,7 +1401,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
this.entityTickList.forEach((entity) -> {
entity.activatedPriorityReset = false; // Pufferfish - DAB
if (!entity.isRemoved()) {
@@ -920,8 +909,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -937,8 +926,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
});
@@ -1439,15 +1410,15 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
this.tickBlockEntities();
}
@@ -1054,7 +1041,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1072,7 +1059,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
} // Paper
// Paper start - optimise random block ticking
- timings.chunkTicksBlocks.startTiming(); // Paper
if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking
LevelChunkSection[] sections = chunk.getSections();
final int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this);
@@ -1086,8 +1072,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1105,8 +1091,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
// Paper end - optimise random block ticking
@@ -1455,8 +1426,8 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
- timings.chunkTicksBlocks.stopTiming(); // Paper
}
private void tickIceAndSnow(boolean raining, BlockPos.MutableBlockPos blockposition1, final LevelChunk chunk) { // Paper - optimise chunk ticking
@@ -1412,31 +1396,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
@VisibleForTesting
@@ -1436,31 +1420,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
currentlyTickingEntity.lazySet(entity);
}
// Paper end - log detailed entity tick information
@@ -1488,7 +1459,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) {
@@ -1444,7 +1418,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1468,7 +1442,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickPassenger(entity, entity1);
}
@@ -1496,7 +1467,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
// Paper start - log detailed entity tick information
} finally {
if (currentlyTickingEntity.get() == entity) {
@@ -1459,9 +1432,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1483,9 +1456,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -1506,7 +1477,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
passenger.setOldPosAndRot();
++passenger.tickCount;
// Paper start - EAR 2
@@ -1482,8 +1452,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1506,8 +1476,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickPassenger(passenger, entity2);
}
@@ -1515,7 +1486,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
}
} else {
passenger.stopRiding();
@@ -1503,14 +1471,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1527,14 +1495,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
}
@@ -1530,7 +1501,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
// Copied from save()
// CraftBukkit start - moved from MinecraftServer.saveChunks
@@ -1522,7 +1487,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1546,7 +1511,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
}
// CraftBukkit end
@@ -1538,7 +1509,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
}
// Paper end
@@ -1536,7 +1500,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1560,7 +1524,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit
@@ -1546,7 +1517,7 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -1546,11 +1509,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1570,11 +1533,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
@@ -1559,10 +1530,10 @@ index 4f353e049252827a4e751817984746dfeb3b2659..e1f2e1511e3a9452c428a19098dce19a
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b4e9a31d7c65fbee6eb83d2784313630a8d8fca9..9c7fe1d04315423adb2ca8596175ddc94f7a81ef 100644
index ca8db3c11a6a794b23f760b7aaee69290752043f..add52c6986866c42d73c51fa8390d62a4a9d5594 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2484,7 +2484,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2481,7 +2481,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleCommand(String s) { // Paper - private -> public
org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher
@@ -1570,7 +1541,7 @@ index b4e9a31d7c65fbee6eb83d2784313630a8d8fca9..9c7fe1d04315423adb2ca8596175ddc9
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2494,7 +2493,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2491,7 +2490,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -1578,7 +1549,7 @@ index b4e9a31d7c65fbee6eb83d2784313630a8d8fca9..9c7fe1d04315423adb2ca8596175ddc9
return;
}
@@ -2506,8 +2504,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2503,8 +2501,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
player.sendMessage(org.bukkit.ChatColor.RED + "An internal error occurred while attempting to perform this command");
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
@@ -1588,7 +1559,7 @@ index b4e9a31d7c65fbee6eb83d2784313630a8d8fca9..9c7fe1d04315423adb2ca8596175ddc9
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 9d6e8747850d1e805200e8f89a0a79474e3a20f3..1dd4bea0d5cf4aec51220253af8981c5aba29634 100644
index a0cca8f9f92eca597552d497ee61b068622482be..4158800ce4f86d20213dfd9ccba38d4baf10aa02 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@
@@ -1598,7 +1569,7 @@ index 9d6e8747850d1e805200e8f89a0a79474e3a20f3..1dd4bea0d5cf4aec51220253af8981c5
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -1334,7 +1333,6 @@ public abstract class PlayerList {
@@ -1332,7 +1331,6 @@ public abstract class PlayerList {
public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -1606,7 +1577,7 @@ index 9d6e8747850d1e805200e8f89a0a79474e3a20f3..1dd4bea0d5cf4aec51220253af8981c5
int numSaved = 0;
long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) {
@@ -1345,7 +1343,6 @@ public abstract class PlayerList {
@@ -1343,7 +1341,6 @@ public abstract class PlayerList {
}
// Paper end
}
@@ -1615,10 +1586,10 @@ index 9d6e8747850d1e805200e8f89a0a79474e3a20f3..1dd4bea0d5cf4aec51220253af8981c5
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 5930e45bae5aa86b3cedb811c4c9bb92099bc1b5..540bafec1e973e7461c6c09228d801d4303b0e56 100644
index 38845300ceb7092de4cd8e31ef8782728892f656..0d9d7e3b1302b2ee396954a47038370c1d4a4c59 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -336,15 +336,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -340,15 +340,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
}
public EntityType(EntityType.EntityFactory<T> factory, MobCategory spawnGroup, boolean saveable, boolean summonable, boolean fireImmune, boolean spawnableFarFromPlayer, ImmutableSet<Block> canSpawnInside, EntityDimensions dimensions, int maxTrackDistance, int trackTickInterval, FeatureFlagSet requiredFeatures) {
@@ -1634,7 +1605,7 @@ index 5930e45bae5aa86b3cedb811c4c9bb92099bc1b5..540bafec1e973e7461c6c09228d801d4
this.builtInRegistryHolder = BuiltInRegistries.ENTITY_TYPE.createIntrusiveHolder(this);
this.factory = factory;
this.category = spawnGroup;
@@ -714,12 +705,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -718,12 +709,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
return this.updateInterval;
}
@@ -1647,7 +1618,7 @@ index 5930e45bae5aa86b3cedb811c4c9bb92099bc1b5..540bafec1e973e7461c6c09228d801d4
public boolean trackDeltas() {
return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS;
}
@@ -829,7 +814,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -833,7 +818,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
Util.fetchChoiceType(References.ENTITY_TREE, id);
}
@@ -1754,10 +1725,10 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..4de18d00cc464313b777874430da3f55
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index c694b9a10815031631905f8d72c09d3ff5305c0e..192026f9edab53248dbd6db4fdb7d3955dff247e 100644
index e79dbebe298289dcd63f03ebcc15dd409bfbf220..afe0fa16ced3cae40737c8017875901e4809df24 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -176,7 +176,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -179,7 +179,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
@@ -1765,7 +1736,7 @@ index c694b9a10815031631905f8d72c09d3ff5305c0e..192026f9edab53248dbd6db4fdb7d395
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
@@ -355,7 +354,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -358,7 +357,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {}
});
// CraftBukkit end
@@ -1773,7 +1744,7 @@ index c694b9a10815031631905f8d72c09d3ff5305c0e..192026f9edab53248dbd6db4fdb7d395
this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
@@ -1316,15 +1314,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1325,15 +1323,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
protected void tickBlockEntities() {
@@ -1787,9 +1758,9 @@ index c694b9a10815031631905f8d72c09d3ff5305c0e..192026f9edab53248dbd6db4fdb7d395
- this.timings.tileEntityTick.startTiming(); // Spigot
// Spigot start
// Iterator iterator = this.blockEntityTickers.iterator();
int tilesThisCycle = 0;
@@ -1357,9 +1352,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally();
@@ -1368,9 +1363,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
this.blockEntityTickers.removeAll(toRemove);
@@ -1821,10 +1792,10 @@ index 530c5e3500bd735bbd41d6c973d7470c43aed404..ec6afe51fd204e4c0764850dcc4535f7
// Paper start
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index bcc15bae4d737f54781779d46635c0d498ac81be..50258f03dd8d310bae707afad9d0df5ead28ab99 100644
index 27879468851875f9d9e7eb28f47ad36d36fd7475..be19989c059caaa8406ce58443eb9a2586d49dfe 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -112,13 +112,6 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -114,13 +114,6 @@ public class Block extends BlockBehaviour implements ItemLike {
this != Blocks.STRUCTURE_BLOCK &&
this != Blocks.JIGSAW;
}
@@ -1901,10 +1872,10 @@ index cd375184c63453829be96449c4df88372f905d9e..6e67591750ae8395f7f7b8a1299d6573
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 5cbfa4ecb4c76cfda4fa42bfa6fdcec75ec1fe27..20f57d1e3e27f0a1d7daec67d7f615465cd90107 100644
index 9ef1d6bf3b8ec431a7747c4edb4b61671758b7e9..7ae5e99e6cc8e88009688468f6d19b5af09da9e0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -477,7 +477,6 @@ public final class CraftServer implements Server {
@@ -472,7 +472,6 @@ public final class CraftServer implements Server {
this.saveCommandsConfig();
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1913,7 +1884,7 @@ index 5cbfa4ecb4c76cfda4fa42bfa6fdcec75ec1fe27..20f57d1e3e27f0a1d7daec67d7f61546
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 85f0ed9073dff0540e6eac26bc634f4d54a60db1..602013bf66c5b1fd1c720ead4e14acfb2d90521b 100644
index 802f30f6bacac22e581fef0ff6a3e668d656607f..a37998f9bec941287f51589fff33231046f05258 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -372,8 +372,6 @@ public class Main {
@@ -1926,7 +1897,7 @@ index 85f0ed9073dff0540e6eac26bc634f4d54a60db1..602013bf66c5b1fd1c720ead4e14acfb
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12");
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index b07be33bf62a0d4f0a0f44ac6bfbb023086a6b0d..801166b152e14ca266c574b17fad8d695c743f35 100644
index 4be39d64431b7c42ef23c13c2872f8ab46fffdc7..1b8728dbb8dcde72935ce0b45f32520ce3586f77 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -1,6 +1,5 @@
@@ -2045,21 +2016,19 @@ index ea26d9464644b5217879b8c21b4da28e57708dcb..cee5c35ac2ba48d092f4227119c915e6
long getCreatedAt() {
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
index 891f850ea99dac1433f3e395e26be14c8abf2bfb..e9fd08ea4c03429d186d2ceecc51c3fc8371f85d 100644
index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab35f614f02 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
@@ -113,18 +113,10 @@ public final class CraftScoreboardManager implements ScoreboardManager {
// CraftBukkit method
public void getScoreboardScores(ObjectiveCriteria criteria, String name, Consumer<Score> consumer) {
- // Paper start - add timings for scoreboard search
@@ -115,16 +115,9 @@ public final class CraftScoreboardManager implements ScoreboardManager {
public void forAllObjectives(ObjectiveCriteria criteria, ScoreHolder holder, Consumer<ScoreAccess> consumer) {
// Paper start - add timings for scoreboard search
// plugins leaking scoreboards will make this very expensive, let server owners debug it easily
- co.aikar.timings.MinecraftTimings.scoreboardScoreSearch.startTimingIfSync();
- try {
- // Paper end - add timings for scoreboard search
for (CraftScoreboard scoreboard : this.scoreboards) {
Scoreboard board = scoreboard.board;
board.forAllObjectives(criteria, name, (score) -> consumer.accept(score));
board.forAllObjectives(criteria, holder, (score) -> consumer.accept(score));
}
- } finally { // Paper start - add timings for scoreboard search
- co.aikar.timings.MinecraftTimings.scoreboardScoreSearch.stopTimingIfSync();
@@ -2068,10 +2037,10 @@ index 891f850ea99dac1433f3e395e26be14c8abf2bfb..e9fd08ea4c03429d186d2ceecc51c3fc
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index ce5817b8660ca3c3fb93314bfd326a6bc20b4832..823e858cc73d7dba6fc8ddc12eea47c5c9dd7dc4 100644
index 8561bc5482574365d7cff3a4046afe11b00f6d1f..b39d1ba982f633d68837a04dd0be2e639ee69ba4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -211,12 +211,6 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -209,12 +209,6 @@ public final class CraftMagicNumbers implements UnsafeValues {
}
// Paper end
// ========================================================================
@@ -2084,7 +2053,7 @@ index ce5817b8660ca3c3fb93314bfd326a6bc20b4832..823e858cc73d7dba6fc8ddc12eea47c5
public static byte toLegacyData(BlockState data) {
return CraftLegacy.toLegacyData(data);
@@ -478,10 +472,6 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -475,10 +469,6 @@ public final class CraftMagicNumbers implements UnsafeValues {
}
// Paper start
@@ -2096,7 +2065,7 @@ index ce5817b8660ca3c3fb93314bfd326a6bc20b4832..823e858cc73d7dba6fc8ddc12eea47c5
@Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index 104316a79771cfd9fce6883499fca268eed223c4..357dafd28c77b3fdd16f51381d59c6c40dcfd1d1 100644
index b4cca06a583fbb7918237de256f43ee61fd8ec6c..dd4a5f610e6e84a73051a8ed46e1961804356ca3 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -80,41 +80,6 @@ public class GaleGlobalConfiguration extends ConfigurationPart {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts
index 6e60342d9d394ccd595bde42c84b753ed9c0f7ec..aa3880a5bd5864081d0f9b52b727d3428d8ea6f1 100644
index ee26e30a654cf8238069ba40d271e18b49ea99a3..3d2439e90e1cb97b9b2c26c03f1dd03d5fd37552 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -22,7 +22,7 @@ dependencies {
@@ -36,7 +36,7 @@ dependencies {
}
// Gale end - project setup
// Paper start
@@ -17,7 +17,7 @@ index 6e60342d9d394ccd595bde42c84b753ed9c0f7ec..aa3880a5bd5864081d0f9b52b727d342
implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("net.kyori:adventure-text-serializer-ansi:4.14.0") // Keep in sync with adventureVersion from Paper-API build file
implementation("net.kyori:ansi:1.0.3") // Manually bump beyond above transitive dep
@@ -32,30 +32,34 @@ dependencies {
@@ -46,30 +46,34 @@ dependencies {
all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/
@@ -66,7 +66,7 @@ index 6e60342d9d394ccd595bde42c84b753ed9c0f7ec..aa3880a5bd5864081d0f9b52b727d342
// Pufferfish start
implementation("org.yaml:snakeyaml:2.2")
@@ -68,10 +72,14 @@ dependencies {
@@ -82,10 +86,14 @@ dependencies {
implementation("org.mozilla:rhino-engine:1.7.14") // Purpur
implementation("dev.omega24:upnp4j:1.0") // Purpur
@@ -83,8 +83,8 @@ index 6e60342d9d394ccd595bde42c84b753ed9c0f7ec..aa3880a5bd5864081d0f9b52b727d342
+ // Leaf end
}
val craftbukkitPackageVersion = "1_20_R2" // Paper
@@ -263,3 +271,7 @@ sourceSets {
val craftbukkitPackageVersion = "1_20_R3" // Paper
@@ -277,3 +285,7 @@ sourceSets {
}
}
// Gale end - package license into jar

View File

@@ -5,22 +5,23 @@ Subject: [PATCH] Remove Mojang username check
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 744f44e33578b56bbfd48fe27509e887716b3310..4cecb53d3792f02f8f76c2619058383142889be3 100644
index 666239aaaec967fb6e1191a4cde58fd6afd44a0b..40d4da1c0ccabfb1b5b1e813b61689b47603ba43 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -174,10 +174,10 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -153,7 +153,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
public void handleHello(ServerboundHelloPacket packet) {
// Gale start - JettPack - reduce array allocations
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", ArrayConstants.emptyObjectArray);
- Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", ArrayConstants.emptyObjectArray);
+ if (!org.dreeam.leaf.LeafConfig.removeMojangUsernameCheck) Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", ArrayConstants.emptyObjectArray); // Leaf - Remove Mojang's username check
- if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation && !this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation) Validate.validState(Player.isValidUsername(packet.name()), "Invalid characters in username", ArrayConstants.emptyObjectArray); // Paper - config username validation
+ // Leaf start - Remove Mojang's username check
+ if (!org.dreeam.leaf.LeafConfig.removeMojangUsernameCheck) {
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation && !this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation)
+ Validate.validState(Player.isValidUsername(packet.name()), "Invalid characters in username", ArrayConstants.emptyObjectArray); // Paper - config username validation
+ }
+ // Leaf end
// Gale end - JettPack - reduce array allocations
// Paper start - validate usernames
- if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) {
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation && !org.dreeam.leaf.LeafConfig.removeMojangUsernameCheck) { // Leaf - Remove Mojang's username check
if (!this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation && !validateUsername(packet.name())) {
ServerLoginPacketListenerImpl.this.disconnect("Failed to verify username!");
return;
this.requestedUsername = packet.name();
GameProfile gameprofile = this.server.getSingleplayerProfile();
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
index 80a196442edbc6b4eb44bb6a405100871aea2f6a..1e9a440d790bdd521c58dfc9c1575e2759006d02 100644
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java

View File

@@ -7,10 +7,10 @@ This Check is added in 1.17.x -> 1.18.x update by Mojang.
By removing this check, it enable hackers to use some modules of hack clients.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 9c7fe1d04315423adb2ca8596175ddc94f7a81ef..47f2568bacb06ffc7d756bbe2ea36ef9582dd4f2 100644
index add52c6986866c42d73c51fa8390d62a4a9d5594..78374c798272f597067bcf2ff7d9d060c0f4f5b2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1981,7 +1981,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2008,7 +2008,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Vec3 vec3d2 = vec3d.subtract(vec3d1);
double d0 = 1.0000001D;

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3b3bbeda831f82b6d9b284d85a31a1fff578a64f..5da0975b347261fc659f3c7710761c12307be493 100644
index dd3af429e9949a8dea09abf29bac226cc1f82e8c..c33661468d4f1e0cc668f5854b3df472c8646897 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -29,6 +29,11 @@ import java.util.Optional;
@@ -30,6 +30,11 @@ import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.WeakHashMap;
@@ -22,7 +22,7 @@ index 3b3bbeda831f82b6d9b284d85a31a1fff578a64f..5da0975b347261fc659f3c7710761c12
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Nullable;
@@ -165,6 +170,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent;
@@ -166,6 +171,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.InventoryView.Property;
import org.bukkit.inventory.ItemStack;
@@ -30,7 +30,7 @@ index 3b3bbeda831f82b6d9b284d85a31a1fff578a64f..5da0975b347261fc659f3c7710761c12
import org.bukkit.map.MapCursor;
import org.bukkit.map.MapView;
import org.bukkit.metadata.MetadataValue;
@@ -3400,4 +3406,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3390,4 +3396,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message)));
}
// Purpur end

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index 07f1f6c9613150fd1cdd460a940629a67539d8db..0fe02df86483809cef22fca2e2ce0af7b4a5c6d5 100644
index d9bc196c653aff84913bbb0e495fe735e366d23f..1f61dc925624c493ae458748e8422383104b022f 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -331,7 +331,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -349,7 +349,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
ItemStack itemstack1 = other.getItem();
if (Objects.equals(this.target, other.target) && ItemEntity.areMergable(itemstack, itemstack1)) {

View File

@@ -11,12 +11,12 @@ This is a fully vanilla optimization. Improves: [Blast]Furnace/Campfire/Smoker/S
This was mostly made for the auto crafting table, since the performance boost is much more visible while using that mod
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
index 666fc85bc2079cb367b340f2605f29fe002f4d22..72fb1729f366a4ea6e3cb7f81d87472201be81e1 100644
index b81e1802c8dcc8ebdef96d70088c18379598a66b..55e413c10b025435de20ff56954ce44cc8940ffa 100644
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
@@ -13,8 +13,8 @@ import com.mojang.datafixers.util.Pair;
@@ -11,8 +11,8 @@ import com.google.gson.JsonParseException;
import com.mojang.datafixers.util.Pair;
import com.mojang.logging.LogUtils;
import com.mojang.serialization.Codec;
import com.mojang.serialization.JsonOps;
+import java.util.ArrayList;
import java.util.Collection;

View File

@@ -8,10 +8,10 @@ Original license: GPL v3
Original project: https://github.com/Akarin-project/Akarin
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
index ac64513e989500e76f8b0689dae655bcfc7f5b53..2be0b802bf03f6952334928464094bf6932eff6a 100644
index 71e1c1a1ae59f74cfeea071aa6988f6fe47a286d..ca8f58aef40ff481dc3d620998f432dc23e48c1c 100644
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
@@ -25,6 +25,7 @@ import java.util.stream.Stream;
@@ -23,6 +23,7 @@ import java.util.stream.Stream;
import javax.annotation.Nullable;
import me.titaniumtown.ArrayConstants;
@@ -19,7 +19,7 @@ index ac64513e989500e76f8b0689dae655bcfc7f5b53..2be0b802bf03f6952334928464094bf6
import net.minecraft.Util;
import net.minecraft.util.GsonHelper;
import org.slf4j.Logger;
@@ -144,37 +145,43 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
@@ -127,37 +128,43 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
}
public void save() throws IOException {

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 1b760a544616c9950f65071736cf34abcb10d7a1..fdaf8885039c2ed5dbee65b44825f200c89b9d7b 100644
index 6096a1d08cb2018a178ed925e0a909ed8f5c3888..e3d27b570719839b461a99f6682c02722a3a18d7 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -279,6 +279,7 @@ public class ServerPlayer extends Player {
@@ -286,6 +286,7 @@ public class ServerPlayer extends Player {
private boolean tpsBar = false; // Purpur
private boolean compassBar = false; // Purpur
private boolean ramBar = false; // Purpur
@@ -19,10 +19,10 @@ index 1b760a544616c9950f65071736cf34abcb10d7a1..fdaf8885039c2ed5dbee65b44825f200
// Paper start - replace player chunk loader
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 1dd4bea0d5cf4aec51220253af8981c5aba29634..fa9264af129acc046822ac0a7769e45e42142baf 100644
index 4158800ce4f86d20213dfd9ccba38d4baf10aa02..9e66c884c9a00263cb8f723f0a94cebed7d788c9 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -972,10 +972,10 @@ public abstract class PlayerList {
@@ -970,10 +970,10 @@ public abstract class PlayerList {
ServerLevel worldserver2 = entityplayer1.serverLevel();
LevelData worlddata = worldserver2.getLevelData();
@@ -36,10 +36,10 @@ index 1dd4bea0d5cf4aec51220253af8981c5aba29634..fa9264af129acc046822ac0a7769e45e
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 5da0975b347261fc659f3c7710761c12307be493..84e75ba03da79bd761178fc22b746f1d38a9f44c 100644
index c33661468d4f1e0cc668f5854b3df472c8646897..e89ecf6d99c4ca2e387774eedcd94959d00f1d6f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1273,6 +1273,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1281,6 +1281,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
}

View File

@@ -7,10 +7,10 @@ Original license: GPLv3
Original project: https://github.com/LeavesMC/Leaves
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index dda34ad1f05302d0706710dc20766c4059229c83..3cf07a2d82ec9f0d6666fb27aee9acc9d9823ead 100644
index 8d330441c3af704ef124599aaa237f3173a8cdea..510eb88b3d43da5f5e976a7affbdc79de9241130 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -419,6 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
public boolean collidingWithWorldBorder; // Paper
public boolean fixedPose = false; // Paper
@@ -18,15 +18,15 @@ index dda34ad1f05302d0706710dc20766c4059229c83..3cf07a2d82ec9f0d6666fb27aee9acc9
public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector();
@@ -2507,6 +2508,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
nbt.putBoolean("Paper.FreezeLock", true);
@@ -2530,6 +2531,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
nbttagcompound.putBoolean("Paper.FreezeLock", true);
}
// Paper end
+ nbt.put("Leaves.Data", leavesData); // Leaves - leaves ex data
return nbt;
+ nbttagcompound.put("Leaves.Data", leavesData); // Leaves - leaves ex data
return nbttagcompound;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2654,6 +2656,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2677,6 +2679,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
}
// Paper end
@@ -38,7 +38,7 @@ index dda34ad1f05302d0706710dc20766c4059229c83..3cf07a2d82ec9f0d6666fb27aee9acc9
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
@@ -5072,4 +5079,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -5114,4 +5121,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false;
}
// Purpur end

View File

@@ -25,10 +25,10 @@ index af86f752c33a2990405fea058b7c41c437ba9d46..bada9fae1e7178162429e1f5a1608b9c
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6dd82dca0c02a92e220d99ea4f2e6e3eaf0752ec..0a077053884d4303ff0ae360cebcd8d455d8d00f 100644
index 138935ffe2f7852e8aa30a5fdea2d4ca340c4cdf..625822b060683bfdf3b79f82ed5eea68ff8ade85 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1560,6 +1560,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1724,6 +1724,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick();
}
@@ -38,7 +38,7 @@ index 6dd82dca0c02a92e220d99ea4f2e6e3eaf0752ec..0a077053884d4303ff0ae360cebcd8d4
((Runnable) this.tickables.get(i)).run();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index c2f73ac74d59f05cc4db657304de26132b78e506..1cb6c157331f6ab7f63e88a6d5fc1237fecde35d 100644
index 3eac8b20e31948f98a522a5f7e5088a032e36bed..9eebc93178929cb3e7bad202e6ff308e39863da0 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -135,6 +135,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -58,10 +58,10 @@ index c2f73ac74d59f05cc4db657304de26132b78e506..1cb6c157331f6ab7f63e88a6d5fc1237
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index fa9264af129acc046822ac0a7769e45e42142baf..032a682d6be24bbb3bdef1447ccdfe7da109f0e8 100644
index 9e66c884c9a00263cb8f723f0a94cebed7d788c9..7b184f16a7759ddfbdf430b2f79f1055a8e77064 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -363,6 +363,7 @@ public abstract class PlayerList {
@@ -361,6 +361,7 @@ public abstract class PlayerList {
}
player.didPlayerJoinEvent = true; // Gale - EMC - do not process chat/commands before player has joined
@@ -69,7 +69,7 @@ index fa9264af129acc046822ac0a7769e45e42142baf..032a682d6be24bbb3bdef1447ccdfe7d
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
@@ -622,6 +623,7 @@ public abstract class PlayerList {
@@ -620,6 +621,7 @@ public abstract class PlayerList {
return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())));
}
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
@@ -78,10 +78,10 @@ index fa9264af129acc046822ac0a7769e45e42142baf..032a682d6be24bbb3bdef1447ccdfe7d
org.purpurmc.purpur.task.BossBarTask.removeFromAll(entityplayer.getBukkitEntity()); // Purpur
ServerLevel worldserver = entityplayer.serverLevel();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 20f57d1e3e27f0a1d7daec67d7f615465cd90107..62fcfc26bd8b2a37e5345f3db080ad3eee029f77 100644
index 7ae5e99e6cc8e88009688468f6d19b5af09da9e0..65df49ab8b9407bbdd884d7122022284ca39501a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -489,6 +489,7 @@ public final class CraftServer implements Server {
@@ -484,6 +484,7 @@ public final class CraftServer implements Server {
MapPalette.setMapColorCache(new CraftMapColorCache(this.logger));
}
datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper
@@ -89,7 +89,7 @@ index 20f57d1e3e27f0a1d7daec67d7f615465cd90107..62fcfc26bd8b2a37e5345f3db080ad3e
}
public boolean getCommandBlockOverride(String command) {
@@ -1094,6 +1095,7 @@ public final class CraftServer implements Server {
@@ -1089,6 +1090,7 @@ public final class CraftServer implements Server {
org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");

View File

@@ -9,7 +9,7 @@ Original project: https://github.com/LeavesMC/Leaves
This patch is Powered by Jade(https://github.com/Snownee/Jade)
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
index e91b4d63d42276f8a498cab7c439c785730f3f6f..a2d7c5008c6d6716d9530e00de0db0276cc0d9fc 100644
index 4492652085d579fc786fe16c1930c8cfe7be8bfa..ecf906247b05f3ffc357e7e54f5810e19f2db2a7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
@@ -288,7 +288,7 @@ public class Tadpole extends AbstractFish {
@@ -37,7 +37,7 @@ index fc3938c16c43277e22b7a322177fa2a9150f1ff8..9445177d2cb64ae1cd0bd88d0c0b2ad8
public static String sentryDsn = "";
diff --git a/src/main/java/top/leavesmc/leaves/protocol/JadeProtocol.java b/src/main/java/top/leavesmc/leaves/protocol/JadeProtocol.java
new file mode 100644
index 0000000000000000000000000000000000000000..e33c0cc960b3dffd98baea243d58ddd670627f5d
index 0000000000000000000000000000000000000000..d9727943c5d44361d35b96ee8045918c4e863ec6
--- /dev/null
+++ b/src/main/java/top/leavesmc/leaves/protocol/JadeProtocol.java
@@ -0,0 +1,621 @@
@@ -251,7 +251,7 @@ index 0000000000000000000000000000000000000000..e33c0cc960b3dffd98baea243d58ddd6
+ }));
+ tileDataProviders.register(JukeboxBlockEntity.class, ((data, player, world, object, showDetails) -> {
+ if (object instanceof JukeboxBlockEntity jukebox) {
+ ItemStack stack = jukebox.getFirstItem();
+ ItemStack stack = jukebox.getTheItem();
+ if (!stack.isEmpty()) {
+ data.put("Record", stack.save(new CompoundTag()));
+ }

View File

@@ -7,10 +7,10 @@ Original license: GPLv3
Original project: https://github.com/LeavesMC/Leaves
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 032a682d6be24bbb3bdef1447ccdfe7da109f0e8..a5b21b5bc20b43c77cb6d276f89aceaef1ebc33a 100644
index 7b184f16a7759ddfbdf430b2f79f1055a8e77064..f30825df1eb2a4a9383b1fe33fa76ebba98bc999 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1372,6 +1372,7 @@ public abstract class PlayerList {
@@ -1370,6 +1370,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldborder));
player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle()));

View File

@@ -9,18 +9,18 @@ Original project: https://github.com/LeavesMC/Leaves
This patch is Powered by Syncmatica(https://github.com/End-Tech/syncmatica)
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 47f2568bacb06ffc7d756bbe2ea36ef9582dd4f2..23828b5d2300d64ac5a5c1a5da1bb1ee14f45d24 100644
index 78374c798272f597067bcf2ff7d9d060c0f4f5b2..1acd2580294af4e7f07a5c5e767d8e3093efca17 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -308,6 +308,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
player.getTextFilter().join();
this.signedMessageDecoder = server.enforceSecureProfile() ? SignedMessageChain.Decoder.REJECT_ALL : SignedMessageChain.Decoder.unsigned(player.getUUID());
@@ -311,6 +311,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Objects.requireNonNull(server);
this.signedMessageDecoder = SignedMessageChain.Decoder.unsigned(uuid, server::enforceSecureProfile);
this.chatMessageChain = new FutureChain(server.chatExecutor); // CraftBukkit - async chat
+ this.exchangeTarget = new top.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget(this); // Leaves - Syncmatica Protocol
}
// CraftBukkit start - add fields
@@ -348,6 +349,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -351,6 +352,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
);
// Purpur end

View File

@@ -14,10 +14,10 @@ This patch was ported downstream from the Petal fork.
Makes most pathfinding-related work happen asynchronously
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index d6009cf7ea6857e98f86b6bd71e34d0f137921ad..4a029f394e9df35a5bcbc42f8e2731fc2d789326 100644
index 86e1434a6361fda0d379dd67608752d0a2a30f5e..f921f961e62449b15a54f05d223c534c975b3f63 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -293,6 +293,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -294,6 +294,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@Nullable
@Override
public LivingEntity getTarget() {
@@ -591,10 +591,10 @@ index 8db20db72cd51046213625fac46c35854c59ec5d..fc99483dfe248d26885c904b72c93b0d
}
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index 38a3dcec138d9233a46e5d523bcc6d64bc7fffd0..4f53747d6b90db92ae12f656c3525c45fb051d3f 100644
index bdb78cc701543cfe91a6bafd1786fe2ea0bf1ddc..8d2e60c24e8d48094a93fdd864d931d0c33d0ca0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -1147,7 +1147,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -1154,7 +1154,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
} else {
Bee.this.pathfindRandomlyTowards(Bee.this.hivePos);
}
@@ -603,7 +603,7 @@ index 38a3dcec138d9233a46e5d523bcc6d64bc7fffd0..4f53747d6b90db92ae12f656c3525c45
boolean flag = this.pathfindDirectlyTowards(Bee.this.hivePos);
if (!flag) {
@@ -1209,7 +1209,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -1216,7 +1216,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
} else {
Path pathentity = Bee.this.navigation.getPath();
@@ -613,7 +613,7 @@ index 38a3dcec138d9233a46e5d523bcc6d64bc7fffd0..4f53747d6b90db92ae12f656c3525c45
}
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index afd2b1922f23148d25e0f2732d60f4da8ea3b063..56badde70e0833d1e4f0bc521fc67f3e90aa3e58 100644
index 819445535895fbf79b99222bc6bf33cbd9089813..80a7197835531fa8cd276d9d31860f2b5ad3089f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -66,6 +66,8 @@ import net.minecraft.world.level.pathfinder.Node;
@@ -625,7 +625,7 @@ index afd2b1922f23148d25e0f2732d60f4da8ea3b063..56badde70e0833d1e4f0bc521fc67f3e
public class Frog extends Animal implements VariantHolder<FrogVariant> {
public static final Ingredient TEMPTATION_ITEM = Ingredient.of(Items.SLIME_BALL);
@@ -439,6 +441,17 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -434,6 +436,17 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
super(frog, world);
}
@@ -643,7 +643,7 @@ index afd2b1922f23148d25e0f2732d60f4da8ea3b063..56badde70e0833d1e4f0bc521fc67f3e
@Override
public boolean canCutCorner(BlockPathTypes nodeType) {
return nodeType != BlockPathTypes.WATER_BORDER && super.canCutCorner(nodeType);
@@ -448,6 +461,11 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -443,6 +456,11 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
protected PathFinder createPathFinder(int range) {
this.nodeEvaluator = new Frog.FrogNodeEvaluator(true);
this.nodeEvaluator.setCanPassDoors(true);
@@ -656,7 +656,7 @@ index afd2b1922f23148d25e0f2732d60f4da8ea3b063..56badde70e0833d1e4f0bc521fc67f3e
}
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 63a1cf5604c14025171d7be7434e2d6b64c98107..5058e53325b61a37e7b6398e59248bc3b339b5b6 100644
index 034bb2d1292dde6276885c3ea71d886c3894311c..3556f9a37d6a4790f9311e1004d32156aff541e2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -282,7 +282,6 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -717,10 +717,10 @@ index 2f49b528601a1feb7246fe7a9b83ce828c2d78fc..a29f212f3b38f1d80d7d5023f86a7acf
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 9e2498f8cb4a1a309aa037c01aa3039924f5b29e..2df6e3772ffb79f17c1e4097cbf3ea1ebc2a82ae 100644
index 96f98389d8cdf588396bf6257a11236a577878a0..c23d192baf78890093b0e88d03735eef4569e75f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -622,6 +622,16 @@ public class Warden extends Monster implements VibrationSystem {
@@ -623,6 +623,16 @@ public class Warden extends Monster implements VibrationSystem {
protected PathFinder createPathFinder(int range) {
this.nodeEvaluator = new WalkNodeEvaluator();
this.nodeEvaluator.setCanPassDoors(true);
@@ -738,10 +738,10 @@ index 9e2498f8cb4a1a309aa037c01aa3039924f5b29e..2df6e3772ffb79f17c1e4097cbf3ea1e
@Override
protected float distance(Node a, Node b) {
diff --git a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
index 2b513fc2f6c33963e43093cb08594bff946d72fa..cc0c45b2042fe0add2ef4eab73b013bdf5ff3a54 100644
index 42407c5c0c09cd9d19bc7af92af8868bb038c686..204a17ab514d63294e72d609b0b3574958b877d3 100644
--- a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
@@ -238,8 +238,13 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@@ -254,8 +254,13 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@Override
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
@@ -935,7 +935,7 @@ index 0e2b14e7dfedf209d63279c81723fd7955122d78..079b278e2e262af433bb5bd0c12b3d8d
public SwimNodeEvaluator(boolean canJumpOutOfWater) {
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
index 318d41b0e1849a729fd32fe9c5842174d2b1d532..d23cab4c405fb91c77a7d41af630656809a303de 100644
index 5dcc4f3c3752ae48cb6728fa8cfc384466c24da0..78471417f9b57fb44de71357500ef4644d072945 100644
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
@@ -5,6 +5,7 @@ import net.minecraft.core.registries.BuiltInRegistries;

View File

@@ -1,20 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
Date: Tue, 24 Oct 2023 17:50:49 -0400
Subject: [PATCH] sync with Gale's
Skip-unnecessary-mob-spawning-computations.patch
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 25bbb4afdb616d827db4a511ebc503445bec27fa..448f3a5197901c9d861bfca92ab3105056726624 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -629,7 +629,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper end - optimise chunk tick iteration
if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) { // Paper - optimise chunk tick iteration
chunk1.incrementInhabitedTime(j);
- if (spawn && flag2 && (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning || _pufferfish_spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Pufferfish
+ if (spawn && flag2AndHasNaturalSpawn && (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning || _pufferfish_spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Gale - MultiPaper - skip unnecessary mob spawning computations // Pufferfish
NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); // Pufferfish
}

View File

@@ -27,19 +27,19 @@ index 6c3c4ec6cef581da45f6cdbb68cb74ea099a93a0..80badf34e9af7ef656f33e1bfe762083
public TrackedEntity(Entity entity, int i, int j, boolean flag) {
this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index ba0fe0786479fcfd81202a02fe8feb382986116e..e413ebfb34a10b1ca8a323a9511ed48721919cea 100644
index 76b64eb4a69e2d02c23d5375f1e80ab8ad19e403..7be009953587e3beb0e823ea722cbfe01cc37041 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -10,6 +10,7 @@ import java.util.Arrays;
import java.util.Collections;
@@ -9,6 +9,7 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.ArrayList; // Leaf
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
@@ -652,7 +653,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -684,7 +685,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper - optimise chunk tick iteration
// Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
- it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();

View File

@@ -9,7 +9,7 @@ Cache minecart vehicle collision results to prevent lag causing by massive stack
The known issue: entity can't enter the minecart after enabling this!
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
index faf449dfb4f95a300796db46833f3b6a51cb961b..3a5a13e1d921703a9f32ec5169ed8805a09fa84f 100644
index 0eca1c61991b0d344d0810239d9cab2873216f04..bb29b40fb7ce9d24be8f04af51add749652007ee 100644
--- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
+++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
@@ -5,6 +5,8 @@ import com.google.common.collect.ImmutableMap;
@@ -21,7 +21,7 @@ index faf449dfb4f95a300796db46833f3b6a51cb961b..3a5a13e1d921703a9f32ec5169ed8805
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -342,6 +344,21 @@ public abstract class AbstractMinecart extends Entity {
@@ -294,6 +296,21 @@ public abstract class AbstractMinecart extends VehicleEntity {
return this.flipped ? this.getDirection().getOpposite().getClockWise() : this.getDirection().getClockWise();
}
@@ -43,7 +43,7 @@ index faf449dfb4f95a300796db46833f3b6a51cb961b..3a5a13e1d921703a9f32ec5169ed8805
@Override
public void tick() {
// Purpur start
@@ -437,8 +454,9 @@ public abstract class AbstractMinecart extends Entity {
@@ -389,8 +406,9 @@ public abstract class AbstractMinecart extends VehicleEntity {
this.level().getCraftServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleMoveEvent(vehicle, from, to));
}
// CraftBukkit end
@@ -54,7 +54,7 @@ index faf449dfb4f95a300796db46833f3b6a51cb961b..3a5a13e1d921703a9f32ec5169ed8805
if (!list.isEmpty()) {
Iterator iterator = list.iterator();
@@ -472,7 +490,7 @@ public abstract class AbstractMinecart extends Entity {
@@ -424,7 +442,7 @@ public abstract class AbstractMinecart extends VehicleEntity {
}
}
} else {
@@ -64,7 +64,7 @@ index faf449dfb4f95a300796db46833f3b6a51cb961b..3a5a13e1d921703a9f32ec5169ed8805
while (iterator1.hasNext()) {
Entity entity1 = (Entity) iterator1.next();
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
index d23cab4c405fb91c77a7d41af630656809a303de..5c61144904bac178d40d8cb43253730c7d1e150f 100644
index 78471417f9b57fb44de71357500ef4644d072945..02df29518c43408c74a32ed1d90313da925ab377 100644
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
@@ -201,6 +201,7 @@ public class LeafConfig {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Reduce canSee work
Credit by: Martijn Muijsers <martijnmuijsers@live.nl>, MachineBreaker<machinebreaker>
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 192026f9edab53248dbd6db4fdb7d3955dff247e..bbfa6415fad20f3380c169c325d138e34b5e001b 100644
index afe0fa16ced3cae40737c8017875901e4809df24..3414b9f7d1908e264540306a2062d35462841033 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -383,11 +383,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -386,11 +386,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
for (int i = 0, len = entities.size(); i < len; ++i) {
Entity entity = entities.get(i);
@@ -22,7 +22,7 @@ index 192026f9edab53248dbd6db4fdb7d3955dff247e..bbfa6415fad20f3380c169c325d138e3
// !entity1.dead && entity1.i && (entity == null || !entity1.x(entity));
// elide the last check since vanilla calls with entity = null
// only we care about the source for the canSee check
@@ -395,6 +391,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -398,6 +394,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
continue;
}
@@ -35,10 +35,10 @@ index 192026f9edab53248dbd6db4fdb7d3955dff247e..bbfa6415fad20f3380c169c325d138e3
return false;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 84e75ba03da79bd761178fc22b746f1d38a9f44c..718d6341fb440b8139b6ee75a17b07ed07221627 100644
index e89ecf6d99c4ca2e387774eedcd94959d00f1d6f..09f18678bb015c2109e087da4f9c1f9fe1776e9c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -580,12 +580,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -588,12 +588,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@@ -53,7 +53,7 @@ index 84e75ba03da79bd761178fc22b746f1d38a9f44c..718d6341fb440b8139b6ee75a17b07ed
if ((this.getUniqueId() == null) || (other.getUniqueId() == null)) {
return false;
}
@@ -2108,6 +2110,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2116,6 +2118,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.canSee((org.bukkit.entity.Entity) player);
}

View File

@@ -22,10 +22,10 @@ index ff1ad1024419182f7f3de578442c1c033d4c9ebb..5e51a1c79811291a740ad4d5e79a7d67
@Deprecated
static RandomSource createThreadSafe() {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 1916e5f1d6bc4c2b14a138a46477adea939caf81..275557da9faa7f27dd2fbfbdfbda620d4add0f8a 100644
index 3414b9f7d1908e264540306a2062d35462841033..d39919b746f0824fecc62ba01c94c5fe0fad9616 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -125,6 +125,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -128,6 +128,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
protected float oThunderLevel;
public float thunderLevel;
public final RandomSource random = RandomSource.create();

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Faster Random for xaeroMapServerID generation
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
index 5c61144904bac178d40d8cb43253730c7d1e150f..ec64cbc95cbdff883c92bf3f2785780dc5e3e269 100644
index 02df29518c43408c74a32ed1d90313da925ab377..53bde816ca9bf8b704fb2e9794de260a9eba402f 100644
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
@@ -2,7 +2,7 @@ package org.dreeam.leaf;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix casting in Purpur world config
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bdbf6efd723d93866b2d24f869b9e964c09fa9ab..c434bf2bab763013d4377773a98b0dfae28be205 100644
index ff9efaa4455e1030e54aab46bc7bfd2f390793c6..22a61c89007e624586e7ed518f0aa18372bc4593 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -643,7 +643,7 @@ public class PurpurWorldConfig {
@@ -678,7 +678,7 @@ public class PurpurWorldConfig {
dropsMap.forEach((itemId, chance) -> {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemId.toString()));
if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.axe.strippables." + blockId + ".drops`: " + itemId); return; }
@@ -17,7 +17,7 @@ index bdbf6efd723d93866b2d24f869b9e964c09fa9ab..c434bf2bab763013d4377773a98b0dfa
});
axeStrippables.put(block, new Strippable(into, drops));
});
@@ -677,7 +677,7 @@ public class PurpurWorldConfig {
@@ -732,7 +732,7 @@ public class PurpurWorldConfig {
dropsMap.forEach((itemId, chance) -> {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemId.toString()));
if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.axe.waxables." + blockId + ".drops`: " + itemId); return; }
@@ -26,7 +26,7 @@ index bdbf6efd723d93866b2d24f869b9e964c09fa9ab..c434bf2bab763013d4377773a98b0dfa
});
axeWaxables.put(block, new Waxable(into, drops));
});
@@ -707,7 +707,7 @@ public class PurpurWorldConfig {
@@ -777,7 +777,7 @@ public class PurpurWorldConfig {
dropsMap.forEach((itemId, chance) -> {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemId.toString()));
if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.axe.weatherables." + blockId + ".drops`: " + itemId); return; }
@@ -35,7 +35,7 @@ index bdbf6efd723d93866b2d24f869b9e964c09fa9ab..c434bf2bab763013d4377773a98b0dfa
});
axeWeatherables.put(block, new Weatherable(into, drops));
});
@@ -733,7 +733,7 @@ public class PurpurWorldConfig {
@@ -803,7 +803,7 @@ public class PurpurWorldConfig {
dropsMap.forEach((itemId, chance) -> {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemId.toString()));
if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.hoe.tillables." + blockId + ".drops`: " + itemId); return; }
@@ -44,7 +44,7 @@ index bdbf6efd723d93866b2d24f869b9e964c09fa9ab..c434bf2bab763013d4377773a98b0dfa
});
hoeTillables.put(block, new Tillable(condition, into, drops));
});
@@ -757,7 +757,7 @@ public class PurpurWorldConfig {
@@ -827,7 +827,7 @@ public class PurpurWorldConfig {
dropsMap.forEach((itemId, chance) -> {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemId.toString()));
if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.shovel.flattenables." + blockId + ".drops`: " + itemId); return; }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix sprint glitch
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index d811a2456b7c2b8c4766f4b7943eeb438e88e3fd..1a9eb22266c83a6fb49f53f34190d661fa0be53a 100644
index 8047aeddf587e2387359291d6640eb4a005ef944..1ea62a6914e7368a1b618314121e6fdf617765c5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1430,7 +1430,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1429,7 +1429,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
player.setRealHealth(health);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix keepalive kicked name
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 1cb6c157331f6ab7f63e88a6d5fc1237fecde35d..0cea82dda72d16e059e159b039b9fd58e08dd5ca 100644
index 9eebc93178929cb3e7bad202e6ff308e39863da0..f0e4a0ce4021d254ead091885a5006a1704ee901 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -228,7 +228,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack