9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-06 15:51:31 +00:00

Updated Upstream (Gale/Purpur/Dependencies)

This commit is contained in:
Dreeam
2023-12-26 19:50:19 -05:00
parent 223fdf3952
commit 93e7010927
25 changed files with 206 additions and 246 deletions

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaf config files
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 0f15d0f049e3bd7461c5ebd22686e638f9bfe653..74317f10d7f7b31eac50b4fcff5b3cc96c12bce1 100644
index 1e1028b4ac54e82b9bb30e958f651a0ca2b0dc86..b39a5ca6f4fa32d76acafd1fdd5b5af8954e34a4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2243,6 +2243,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2251,6 +2251,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Paper end

View File

@@ -7,14 +7,14 @@ Original license: GPL v3
Original project: https://github.com/pufferfish-gg/Pufferfish
diff --git a/build.gradle.kts b/build.gradle.kts
index 2149d23d695e0dd8ebab9f049ee6c3a164b5918b..8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb 100644
index 3f11b99f87eb380daeb1f660f63a8347958e1e0f..3f01a142439616c88c3b5da4d6cab80bfdaa2a76 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -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
+ api("io.sentry:sentry:7.1.0") // Pufferfish
implementation("org.ow2.asm:asm:9.5")
implementation("org.ow2.asm:asm-commons:9.5")

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 9e1216de506439171c08773730faea0f0a617a83
Commit: 6f17a3da52ca57ed1647593b8b37e4306fff8b70
Patches below are removed in this patch:
Pufferfish-API-Changes.patch
@@ -57,10 +57,10 @@ index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48c
@Override
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 9575de9c03f4db2b118f8cbf3b5f59d80e2a84f3..024372985abb5c896c44df58b47e6aafa1c9a663 100644
index 097cecdf1a535539b660f2edf4776ba85458ce0a..85dd549064ddcdb51b6d26ba66985e15f23886f4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -2899,4 +2899,127 @@ public final class Bukkit {
@@ -2909,4 +2909,127 @@ public final class Bukkit {
public static Server.Spigot spigot() {
return server.spigot();
}
@@ -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 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..7a8a2387d8ae5aae44325da9277e8284b4caa8c0 100644
index f9af60356da4668cec8b24e73f5747ab82e35a91..b304ad1307cdd6785653b1eab9781e070fb14c5a 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -11500,4 +11500,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -11557,4 +11557,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public boolean isEnabledByFeature(@NotNull World world) {
return Bukkit.getDataPackManager().isEnabledByFeature(this, world);
}
@@ -443,10 +443,10 @@ index bce07d84cafca677bb6fad78c21b82097f06430c..4ef0fa4f1ef72bb784674671473c6a32
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index fe897734148e4505bdcf99d6291f5c7411400e6a..3d11ac5b66dc9799f1a04d2151ca9d9a7eaeff13 100644
index b39a5ca6f4fa32d76acafd1fdd5b5af8954e34a4..1e7e16d33a57d930276a07096a58be2f6178ccc7 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2243,6 +2243,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2251,6 +2251,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Paper end
@@ -465,7 +465,7 @@ index fe897734148e4505bdcf99d6291f5c7411400e6a..3d11ac5b66dc9799f1a04d2151ca9d9a
// Leaf start
@NotNull
public org.bukkit.configuration.file.YamlConfiguration getLeafConfig()
@@ -2560,4 +2572,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2568,4 +2580,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
long getLastTickOversleepTime();
// Gale end - YAPFA - last tick time - API
@@ -578,10 +578,10 @@ index fe897734148e4505bdcf99d6291f5c7411400e6a..3d11ac5b66dc9799f1a04d2151ca9d9a
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 567a36a4887da8994c9170e2885aa8cc357efa0c..405d60bd2c99ba741d2614b16f4bda5da48a0387 100644
index d3081d4445af73c2c7b23c5fc60861f184ac808e..e4f0d5ee85371374453b837947c7f84c7731128c 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -4235,6 +4235,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@@ -4174,6 +4174,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@Nullable
public DragonBattle getEnderDragonBattle();
@@ -956,10 +956,10 @@ index 58017fce436cdbda255f7172fbdadb726d4b113c..05600fc8bf2a61aca8094029bc4c208a
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index a599ed2795ba1baf2cbb465d1c7145580c27e1ea..298acbfb93663e40e627f6a47d51fd87a1551feb 100644
index e68c71047b2bc1b456c380db25b3ff376852b4a9..6b025794c34e1b4b47b4b5ae1375705bdedad078 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -1243,4 +1243,41 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -1270,4 +1270,41 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
*/
void setBodyYaw(float bodyYaw);
// Paper end
@@ -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 d323109ef01bcd31970a749854eeaf8805e8de6b..dd3726acb045b908053f1fdf3a06bf025823f8c3 100644
index 2238cbe3f7680e759baa8c91e4db6ad5202e3cab..32fc5a73c79858e31c3de45e16179714d3bea667 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3494,4 +3494,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3545,4 +3545,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts
index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f88592f46f 100644
index 3f01a142439616c88c3b5da4d6cab80bfdaa2a76..dee13c231683420cc5e1c5bbae280020b40c36ae 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,11 +9,11 @@ java {
@@ -15,7 +15,7 @@ index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f8
-val annotationsVersion = "24.0.1"
+val annotationsVersion = "24.1.0" // Leaf - Bump Dependencies
val bungeeCordChatVersion = "1.20-R0.1"
val adventureVersion = "4.14.0"
val adventureVersion = "4.15.0"
val slf4jVersion = "2.0.9"
-val log4jVersion = "2.17.1"
+val log4jVersion = "2.22.0" // Leaf - Bump Dependencies
@@ -27,7 +27,7 @@ index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f8
dependencies {
// api dependencies are listed transitively to API consumers
- api("com.google.guava:guava:32.1.2-jre")
+ api("com.google.guava:guava:32.1.3-jre") // Leaf - Bump Dependencies
+ api("com.google.guava:guava:33.0.0-jre") // Leaf - Bump Dependencies
api("com.google.code.gson:gson:2.10.1")
// Paper start - adventure
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.14") {
@@ -40,9 +40,9 @@ index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f8
apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion"))
apiAndDocs("net.kyori:adventure-api")
apiAndDocs("net.kyori:adventure-text-minimessage")
@@ -53,29 +53,31 @@ dependencies {
@@ -53,11 +53,12 @@ dependencies {
api("org.slf4j:slf4j-api:$slf4jVersion")
api("io.sentry:sentry:7.0.0") // Pufferfish
api("io.sentry:sentry:7.1.0") // Pufferfish
- implementation("org.ow2.asm:asm:9.5")
- implementation("org.ow2.asm:asm-commons:9.5")
@@ -51,20 +51,17 @@ index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f8
+ implementation("org.ow2.asm:asm-commons:9.6")
// Paper end
- 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")
- api("org.apache.maven:maven-resolver-provider:3.9.6") // Paper - make API dependency for Paper Plugins
+ 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("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
val annotations = "org.jetbrains:annotations:$annotationsVersion" // Paper - we don't want Java 5 annotations...
compileOnly(annotations)
@@ -66,16 +67,17 @@ dependencies {
testCompileOnly(annotations)
// Paper start - add checker
- val checkerQual = "org.checkerframework:checker-qual:3.33.0"
+ val checkerQual = "org.checkerframework:checker-qual:3.41.0" // Leaf - Bump Dependencies
+ val checkerQual = "org.checkerframework:checker-qual:3.42.0" // Leaf - Bump Dependencies
compileOnlyApi(checkerQual)
testCompileOnly(checkerQual)
// Paper end
@@ -87,7 +84,7 @@ index 8c1be45e89ca5ab6b59c2e9b4b0aad347464abfb..240567146f24ac007409ab0fa73546f8
options.isDocFilesSubDirs = true
options.links(
- "https://guava.dev/releases/32.1.2-jre/api/docs/",
+ "https://guava.dev/releases/32.1.3-jre/api/docs/", // Leaf - Bump Dependencies
+ "https://guava.dev/releases/33.0.0-jre/api/docs/", // Leaf - Bump Dependencies
"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

View File

@@ -7,7 +7,7 @@ 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 dd3726acb045b908053f1fdf3a06bf025823f8c3..e13e160aa2a404db7b84a1bed1e66f6f2f9232bc 100644
index 32fc5a73c79858e31c3de45e16179714d3bea667..a1584415383708b3e9693c91f21a7bf9daab1b25 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -9,6 +9,10 @@ import java.util.Date;
@@ -21,7 +21,7 @@ index dd3726acb045b908053f1fdf3a06bf025823f8c3..e13e160aa2a404db7b84a1bed1e66f6f
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
@@ -3613,4 +3617,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3664,4 +3668,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 e13e160aa2a404db7b84a1bed1e66f6f2f9232bc..3c5a76050deb45d15e3608d0a99350c09bd1e766 100644
index a1584415383708b3e9693c91f21a7bf9daab1b25..a262d8bf4b6f17141246ecaa0cee4c778629f424 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3361,6 +3361,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3412,6 +3412,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName();
// Paper end

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index e800e16e408d8a2f79c98bba229e878665b332db..40cd0233582c2f4e05c57853572eac7abc1f4015 100644
index dfd92a33497785f28c7ade16da900f7bb851cada..941105ef0413f058a9a212a141ef8be9f5cce50f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -29,7 +29,7 @@ dependencies {
extraRuntime(platform("net.kyori:adventure-bom:4.15.0-SNAPSHOT"))
@@ -15,7 +15,7 @@ val alsoShade: Configuration by configurations.creating
dependencies {
// Gale start - project setup
// Depend on own API
- implementation(project(":gale-api"))
@@ -17,7 +17,7 @@ index e800e16e408d8a2f79c98bba229e878665b332db..40cd0233582c2f4e05c57853572eac7a
// Depend on Paper MojangAPI
implementation("io.papermc.paper:paper-mojangapi:${project.version}") {
exclude("io.papermc.paper", "paper-api")
@@ -101,7 +101,7 @@ tasks.jar {
@@ -87,7 +87,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
@@ -86,10 +86,10 @@ index f1bf143d5a97a4afbba6b2e7c07a5f46678c3260..69d7ffeae56f4e9e8bd33b23c9322f1c
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 15f1bccace7f03ab5fe63dd9d23441018835e7be..cae462613284bea0029e1087f80d758e89090c12 100644
index 37ccd8632b4f78dedee322c12ed8aa580b817ae1..91bf517b233c4bfc10094db216d7dd2db2cbf958 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -273,7 +273,7 @@ import javax.annotation.Nullable; // Paper
@@ -267,7 +267,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Leaf Config
diff --git a/build.gradle.kts b/build.gradle.kts
index 40cd0233582c2f4e05c57853572eac7abc1f4015..2b6b85708f3464e3d65de298c6e120145868ad5a 100644
index 941105ef0413f058a9a212a141ef8be9f5cce50f..60929e246b9347eb17162bace30106683fc45363 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -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")
@@ -57,6 +57,13 @@ dependencies {
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+ // Pufferfish start
+ implementation("org.yaml:snakeyaml:2.2")

View File

@@ -45,10 +45,10 @@ index fc017f554147eaaee5c436ede2595bccd6b8fd7f..5f1d63343b1d7fbcf19b1ef189504e55
}
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 7fab09e8edf26bd841ab6e51ddf45ac316aa113b..f2070cc0c1a665520b7270b3d72d425535288f08 100644
index 322fca6749d6f7fe432e3510c22ab369ad2db93f..104cdc470e337c382d51988cb6d47e1903fea4ce 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -244,7 +244,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -243,7 +243,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper end
// Paper start - optimise chunk tick iteration
public final it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> needsChangeBroadcasting = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<>();
@@ -58,7 +58,7 @@ 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 b4b6f21556717900b7ac49f8bead34a95362d4de..c1a140b9d197c06451fe338c28adc5bdee1183a3 100644
index 6dce2cb25a5e8b7c979a3f515e4c6c9cfbacd305..58f3d1f957ec85e69b80c78e533cedc3a7ac1937 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -72,6 +72,9 @@ public class ServerChunkCache extends ChunkSource {
@@ -71,26 +71,24 @@ index b4b6f21556717900b7ac49f8bead34a95362d4de..c1a140b9d197c06451fe338c28adc5bd
private static int getChunkCacheKey(int x, int z) {
return x & 3 | ((z & 3) << 2);
@@ -550,6 +553,8 @@ public class ServerChunkCache extends ChunkSource {
@@ -518,6 +521,7 @@ 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) {
+ if (!org.dreeam.leaf.LeafConfig.enableAsyncMobSpawning) { // Pufferfish - moved down when async processing
// 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 {
@@ -532,17 +536,21 @@ public class ServerChunkCache extends ChunkSource {
}
// Paper end - per player mob spawning backoff
}
- 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
+ } // Pufferfish - (endif) moved down when async processing
} 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
+ // Pufferfish start - async mob spawning
+ 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
@@ -107,7 +105,7 @@ index b4b6f21556717900b7ac49f8bead34a95362d4de..c1a140b9d197c06451fe338c28adc5bd
}
// Gale end - MultiPaper - skip unnecessary mob spawning computations
@@ -663,8 +673,8 @@ public class ServerChunkCache extends ChunkSource {
@@ -632,8 +640,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);
@@ -118,7 +116,7 @@ index b4b6f21556717900b7ac49f8bead34a95362d4de..c1a140b9d197c06451fe338c28adc5bd
}
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
@@ -707,6 +717,40 @@ public class ServerChunkCache extends ChunkSource {
@@ -676,6 +684,40 @@ public class ServerChunkCache extends ChunkSource {
this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
// Paper - optimise chunk tick iteration
}

View File

@@ -42,10 +42,10 @@ index b19571f838469dcaba5ecee06fe43de23bcdc776..1c9ba5d25d521126a912522aed8d220c
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 53275a3aef1f4c03324a368a9fef34ffc6307a7f..e3839453a62eb6b6b1272289ccde6a49593aa2f0 100644
index a2d778cd804362e03ddc73d5e35569c3d5b8d187..e32c97853eb7e94c06a97ec1b1ac0e88dd4126f5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -441,6 +441,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -440,6 +440,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
// Paper end

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 e3839453a62eb6b6b1272289ccde6a49593aa2f0..b6efe398aa82e1095e6f14e5544e656ebd92ddad 100644
index e32c97853eb7e94c06a97ec1b1ac0e88dd4126f5..80f210c04d3ae3a36ff46273b5cb7b4a95408ce3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -810,6 +810,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -809,6 +809,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public void tick() {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 9e1216de506439171c08773730faea0f0a617a83
Commit: 6f17a3da52ca57ed1647593b8b37e4306fff8b70
Patches below are removed in this patch:
Metrics change in Purpur-config-files.patch
@@ -26,12 +26,13 @@ MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch
Remove-Timings.patch
Remove-Mojang-Profiler.patch
MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch
Fire-Immunity-API.patch
diff --git a/build.gradle.kts b/build.gradle.kts
index 2b6b85708f3464e3d65de298c6e120145868ad5a..ee26e30a654cf8238069ba40d271e18b49ea99a3 100644
index 60929e246b9347eb17162bace30106683fc45363..604ce3a289f33b051074aa0a5e2ff04b74986cb1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -78,6 +78,10 @@ dependencies {
@@ -64,6 +64,10 @@ dependencies {
}
// Pufferfish end
@@ -42,7 +43,7 @@ index 2b6b85708f3464e3d65de298c6e120145868ad5a..ee26e30a654cf8238069ba40d271e18b
testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -192,7 +196,7 @@ fun TaskContainer.registerRunTask(
@@ -178,7 +182,7 @@ fun TaskContainer.registerRunTask(
name: String,
block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) {
@@ -633,7 +634,7 @@ index e17090003988ad2c890d48666c2234b14d511345..433f1f11b8b92c7d48352416f79ab5a3
return true;
}
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index e344fe0f2192f20f5d6d1594f7844b539fadcc7a..b82f4bdd45be544ae6e19ff97dea86bd03a83d7d 100644
index 79ff5a76b382581c4125b859d9f00ee19d784100..ad203f259d8fbef6157d5580a1ee6950d0594f57 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -570,11 +570,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -885,7 +886,7 @@ index 5cb15e2209d7b315904a1fc6d650ce1e75584271..7e21db60f3ace2a19686d6ea04b994ec
for(ServerPlayer serverPlayer : targets) {
diff --git a/src/main/java/net/minecraft/server/commands/GiveCommand.java b/src/main/java/net/minecraft/server/commands/GiveCommand.java
index d601d287e94a59ff93b8a83a44dac02544d211df..0ff3b06a98b2f4514b2d861b92dd70fe678ae86c 100644
index 1b459a8ee8a6bc039e742d65796bc76660a1c765..599172b994d75484f7c7e0ce6d3d3d771c1c44d0 100644
--- a/src/main/java/net/minecraft/server/commands/GiveCommand.java
+++ b/src/main/java/net/minecraft/server/commands/GiveCommand.java
@@ -59,6 +59,7 @@ public class GiveCommand {
@@ -895,7 +896,7 @@ index d601d287e94a59ff93b8a83a44dac02544d211df..0ff3b06a98b2f4514b2d861b92dd70fe
+ if (org.purpurmc.purpur.PurpurConfig.disableGiveCommandDrops) continue; // Purpur - add config option for toggling give command dropping
if (flag && itemstack1.isEmpty()) {
itemstack1.setCount(1);
entityitem = entityplayer.drop(itemstack1, false, false, false); // SPIGOT-2942: Add boolean to call event
entityitem = entityplayer.drop(itemstack1, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 5f1d63343b1d7fbcf19b1ef189504e55170dce34..f690b0b56bdaf78ce1e64445f14018b705eb3c37 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -1312,7 +1313,7 @@ index 1c9ba5d25d521126a912522aed8d220cc1bb68b4..dd677f1981abd5aaaf9c1ec79dbde176
}
// Paper end
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index a9d6870abe34e929c476ae199549e26643ef3343..6096a1d08cb2018a178ed925e0a909ed8f5c3888 100644
index 861213485bb8f2751cfb59ddf15f99360fff34d8..96ed7cb2f34718b7b1cb5abdc386b7c6abcfa6bd 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -282,6 +282,10 @@ public class ServerPlayer extends Player {
@@ -1529,7 +1530,7 @@ index a9d6870abe34e929c476ae199549e26643ef3343..6096a1d08cb2018a178ed925e0a909ed
public ServerStatsCounter getStats() {
return this.stats;
}
@@ -2758,4 +2882,50 @@ public class ServerPlayer extends Player {
@@ -2759,4 +2883,50 @@ public class ServerPlayer extends Player {
return (CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end
@@ -1629,10 +1630,10 @@ index c0b368b8137ca6d90c4e6ec931e07b7ea69f8d9b..d02fec293868dd288e0fa0a9d214774f
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index cb453c4db347b320f19a79ede2d8898106605e25..3eac8b20e31948f98a522a5f7e5088a032e36bed 100644
index e716cbde9bbf3837b614ea1ddd4f881178d938d0..1ee6f597bbb8ba62b9fddde3fd7a91085dc0def2 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -63,6 +63,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -64,6 +64,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private static final long KEEPALIVE_LIMIT = KEEPALIVE_LIMIT_IN_SECONDS * 1000;
// Gale end - Purpur - send multiple keep-alive packets
protected static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support
@@ -1640,7 +1641,7 @@ index cb453c4db347b320f19a79ede2d8898106605e25..3eac8b20e31948f98a522a5f7e5088a0
public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit
this.server = minecraftserver;
@@ -156,6 +157,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -157,6 +158,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
this.disconnect("Invalid payload REGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
}
@@ -1912,7 +1913,7 @@ index 7b955100e39a935259887475278b24cf29905577..ca8db3c11a6a794b23f760b7aaee6929
boolean flag1 = packet.getSlotNum() >= 1 && packet.getSlotNum() <= 45;
boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty();
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index c4a681cdcd4d9e94fa7ef68562b9e41c2390852d..666239aaaec967fb6e1191a4cde58fd6afd44a0b 100644
index 1fe07210973790dd1a084d330dcad46bb86ac267..d75ea980ef2333f5125f5935f2a139933d7a85c2 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -278,7 +278,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -2359,7 +2360,7 @@ index 1f9e0c139988c4c44a26552881647d36965aa4fa..b8d612d22aca74a08b53393c0723a2ae
@Override
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f3173a8cdea 100644
index 80f210c04d3ae3a36ff46273b5cb7b4a95408ce3..50267637d752b8216ee81e09945d7b8f08743c53 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -157,7 +157,7 @@ import org.bukkit.plugin.PluginManager;
@@ -2389,7 +2390,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
@@ -499,6 +499,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -498,6 +498,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false;
}
@@ -2415,7 +2416,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
public final boolean hardCollides() {
return this.hardCollides;
}
@@ -581,7 +600,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -580,7 +599,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F;
@@ -2424,7 +2425,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
this.remainingFireTicks = -this.getFireImmuneTicks();
this.fluidHeight = new Object2DoubleArrayMap(2);
this.fluidOnEyes = new HashSet();
@@ -903,10 +922,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -902,10 +921,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void checkBelowWorld() {
// Paper start - Configurable nether ceiling damage
@@ -2437,7 +2438,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
this.onBelowWorld();
}
@@ -1883,7 +1903,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1878,7 +1898,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.isInWater() || flag;
}
@@ -2446,7 +2447,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
Entity entity = this.getVehicle();
if (entity instanceof Boat) {
@@ -3033,6 +3053,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3028,6 +3048,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.passengers = ImmutableList.copyOf(list);
}
@@ -2460,7 +2461,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
}
}
@@ -3073,6 +3100,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3068,6 +3095,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false;
}
// Spigot end
@@ -2475,7 +2476,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
@@ -3152,12 +3187,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3147,12 +3182,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return Vec3.directionFromRotation(this.getRotationVector());
}
@@ -2492,7 +2493,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
}
this.isInsidePortal = true;
@@ -3206,7 +3244,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3201,7 +3239,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
this.processPortalCooldown();
@@ -2501,7 +2502,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
}
}
@@ -3396,7 +3434,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3391,7 +3429,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public int getMaxAirSupply() {
@@ -2510,7 +2511,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
}
public int getAirSupply() {
@@ -3864,7 +3902,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3859,7 +3897,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public boolean canChangeDimensions() {
@@ -2519,7 +2520,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
}
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
@@ -4167,6 +4205,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4162,6 +4200,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return SlotAccess.NULL;
}
@@ -2540,7 +2541,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
@Override
public void sendSystemMessage(Component message) {}
@@ -4440,6 +4492,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4435,6 +4487,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.yRotO = this.getYRot();
}
@@ -2553,7 +2554,7 @@ index b6efe398aa82e1095e6f14e5544e656ebd92ddad..8d330441c3af704ef124599aaa237f31
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
if (false && this.touchingUnloadedChunk()) { // Gale - Airplane - reduce entity fluid lookups if no fluids - cost of a lookup here is the same cost as below, so skip
return false;
@@ -5015,4 +5073,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -5010,4 +5068,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
@@ -2756,7 +2757,7 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..b18cbe85330e26de6f6cbfcc3d51a741
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index dbf3f61227198a0ce5c0521fec933aafa3199154..8047aeddf587e2387359291d6640eb4a005ef944 100644
index d8b32b29a8fb3cbe1c75af4501fc2d92334b5f22..6ca39830ead96eb18e9b5e637d1ea33c93e30198 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2773,7 +2774,7 @@ index dbf3f61227198a0ce5c0521fec933aafa3199154..8047aeddf587e2387359291d6640eb4a
protected double lerpX;
protected double lerpY;
@@ -252,6 +252,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
private boolean skipDropExperience;
protected boolean skipDropExperience;
// CraftBukkit start
public int expToDrop;
+ public float safeFallDistance = 3.0F; // Purpur
@@ -7176,7 +7177,7 @@ index d1458cec0313f7317134e7eb8bdabc31cea5df68..819445535895fbf79b99222bc6bf33cb
super(entity);
}
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 c83dabddf93249a6477c10725622119c939db4d5..4492652085d579fc786fe16c1930c8cfe7be8bfa 100644
index c83dabddf93249a6477c10725622119c939db4d5..b2a92648490ac54cd6ecc3bbfb9740db684284ce 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
@@ -45,13 +45,50 @@ public class Tadpole extends AbstractFish {
@@ -7238,7 +7239,7 @@ index c83dabddf93249a6477c10725622119c939db4d5..4492652085d579fc786fe16c1930c8cf
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
- this.getBrain().tick((ServerLevel) this.level(), this);
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
+ this.getBrain().tick((ServerLevel) this.level(), this); // Dreeam TODO - should remove this?
+ //this.getBrain().tick((ServerLevel) this.level(), this); // Dreeam TODO - should remove this?
TadpoleAi.updateActivity(this);
super.customServerAiStep();
}
@@ -8923,7 +8924,7 @@ index 70d25bb45ad603095a1f5812cc396dfc5f16a1e1..c9bd400473166999479f5eef1edad529
public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(target)) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index fd1b5a1beea7594fa65decfdcccfa15781fc005b..304ea7fdcd410a7c88ec61143364e14de8db0b0c 100644
index 52eb3f6a73fa99d12d5fc75bab03e47a605c653a..64f6b5f44db4fd90e789032e3833da60cfcfbef1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -59,21 +59,99 @@ public class Creeper extends Monster implements PowerableMob {
@@ -10706,7 +10707,7 @@ index 0c11d9bef8f0129c541e30ad057612e881703b24..c9c21c87e3bd1c404fbef6768761bcb5
if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
continue;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index 06ab07fb5d8d0e2f97325890218a11fef551a0ba..22669a188c1961783341b22551325e19aaeb8088 100644
index b73dac8f68041f8a2e0752d70cc9d08b5cfd1cde..8a52c1ad5e2872e4b484eebc834fa42fd1930481 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -22,6 +22,8 @@ import net.minecraft.tags.DamageTypeTags;
@@ -11215,7 +11216,7 @@ index cd964e5cded6a74cb9dcf27b4134f944764062cd..8b6f8fca8402c177c399824c6bf0bdef
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index 6f12e342adf1a008709fd9a4fbbbe1da8ec31b83..43ce5ffc6fc1853875f446b543d5b57502a21dc7 100644
index 9063f66b0497a3eb3893e307e685be692cc5c128..241a6851179cfa566417a655bff7b06bdb7f9f4b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -53,14 +53,48 @@ public class Spider extends Monster {
@@ -13199,12 +13200,12 @@ index 31831811ce16265e9828fa34d9e67d8ac195d723..a1f74718240da3dfb0fc53f337ec3bf1
if (!this.raidMap.containsKey(raid.getId())) {
this.raidMap.put(raid.getId(), raid);
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 48b1cddfca671ac8bcb93a1b60518a4ee9e977e2..0eca1c61991b0d344d0810239d9cab2873216f04 100644
index c906ca07509939a06b9aaf2da0dafb172830a638..c809e370ab61811c7e2fa3d6f207ae04fcb6749b 100644
--- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
+++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
@@ -105,12 +105,14 @@ public abstract class AbstractMinecart extends VehicleEntity {
private double flyingY = 0.949999988079071D; // Paper - restore vanilla precision
private double flyingZ = 0.949999988079071D; // Paper - restore vanilla precision
private double flyingY = 0.95;
private double flyingZ = 0.95;
public double maxSpeed = 0.4D;
+ public double storedMaxSpeed; // Purpur
// CraftBukkit end
@@ -14797,7 +14798,7 @@ index ee76770b4f0cfadd2f7953c1328a2b6144379742..7bd894f302df5d900b15f2573305ae50
Set<BlockPos> set = Sets.newHashSet();
boolean flag = true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index d2a4e3326939c3c6dde7aba091d92ee84731d394..e79dbebe298289dcd63f03ebcc15dd409bfbf220 100644
index 1bb82901903570ad8beb059110661d28b45dbacd..41c59c0828e0b6919e029f831ed22b305b2be470 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -14867,7 +14868,7 @@ index d2a4e3326939c3c6dde7aba091d92ee84731d394..e79dbebe298289dcd63f03ebcc15dd40
this.generator = gen;
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
@@ -1909,4 +1955,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1903,4 +1949,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
}
// Paper end - notify observers even if grow failed
@@ -16795,7 +16796,7 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e
+ // Purpur
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
index bc01970c5ef9cde4a75394d6977837e924a38463..642e81d7ce763e3f983c83c967f7204164d260be 100644
index a3ec2f522be2d02b9e37810799cecc2ba14f58f3..b0f3095a8eacf1c903c6190db440b21ca0d9acb1 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
@@ -200,16 +200,31 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
@@ -16862,7 +16863,7 @@ index bc01970c5ef9cde4a75394d6977837e924a38463..642e81d7ce763e3f983c83c967f72041
public CompoundTag getUpdateTag() {
return this.saveWithoutMetadata();
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index c7ebc50201a96b58dd3828a30eff1292a48a532e..df1a45f8cc21534dd4f7b54e47158564baa80655 100644
index ff92b93dbffa6f3463c62d55cec535a3871ed7d8..5d9f25da1bd502b0047abc64ef7602968ee3cb20 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -178,6 +178,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
@@ -17359,11 +17360,11 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b61671758b7e9 100644
index 91bf517b233c4bfc10094db216d7dd2db2cbf958..7c11bd348d00a1eb2c1c5cb25922aa51e8004e7a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -406,6 +406,20 @@ public final class CraftServer implements Server {
this.dataPackManager = new CraftDataPackManager(this.getServer().getPackRepository());
@@ -402,6 +402,20 @@ public final class CraftServer implements Server {
this.serverTickManager = new CraftServerTickManager(console.tickRateManager());
Bukkit.setServer(this);
+ // Purpur start
@@ -17383,7 +17384,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
CraftRegistry.setMinecraftRegistry(console.registryAccess());
@@ -1041,6 +1055,7 @@ public final class CraftServer implements Server {
@@ -1042,6 +1056,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console);
this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration
@@ -17391,7 +17392,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -1056,6 +1071,7 @@ public final class CraftServer implements Server {
@@ -1057,6 +1072,7 @@ public final class CraftServer implements Server {
}
}
world.spigotConfig.init(); // Spigot
@@ -17399,7 +17400,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1071,6 +1087,7 @@ public final class CraftServer implements Server {
@@ -1072,6 +1088,7 @@ public final class CraftServer implements Server {
this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
@@ -17407,7 +17408,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1573,6 +1590,55 @@ public final class CraftServer implements Server {
@@ -1574,6 +1591,55 @@ public final class CraftServer implements Server {
return true;
}
@@ -17463,7 +17464,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
@Override
public List<Recipe> getRecipesFor(ItemStack result) {
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
@@ -2973,6 +3039,7 @@ public final class CraftServer implements Server {
@@ -2974,6 +3040,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {
@@ -17471,7 +17472,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(),
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
@@ -3065,6 +3132,18 @@ public final class CraftServer implements Server {
@@ -3066,6 +3133,18 @@ public final class CraftServer implements Server {
}
// Gale end - Gale configuration - API
@@ -17490,7 +17491,7 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
@Override
public void restart() {
org.spigotmc.RestartCommand.restart();
@@ -3301,4 +3380,15 @@ public final class CraftServer implements Server {
@@ -3306,4 +3385,15 @@ public final class CraftServer implements Server {
}
// Gale end - YAPFA - last tick time - API
@@ -17507,10 +17508,10 @@ index cae462613284bea0029e1087f80d758e89090c12..9ef1d6bf3b8ec431a7747c4edb4b6167
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 5c3d07151ff26377b4d0dbeff793fe7e27176ad8..cd342de8266237d49c143a4cdb803d09b8579986 100644
index 8b1b8d0b653fd361358ace0d6ddcc509659cedb9..dad55726e798448b4e0e599bd5f8913c55059812 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2360,6 +2360,48 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2415,6 +2415,48 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
}
@@ -17560,7 +17561,7 @@ index 5c3d07151ff26377b4d0dbeff793fe7e27176ad8..cd342de8266237d49c143a4cdb803d09
public PersistentDataContainer getPersistentDataContainer() {
return this.persistentDataContainer;
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 231ea6f9a149868163a124a0056c197dd9b3a48c..802f30f6bacac22e581fef0ff6a3e668d656607f 100644
index 11b9aa315d6eecb6bfb2db3302f348270344ff6b..c90ec17f71bb1c9b2ee3ee45d36bc0909bc2945f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -195,6 +195,14 @@ public class Main {
@@ -17732,10 +17733,10 @@ index d657fd2c507a5b215aeab0a5f3e9c2ee892a27c8..985e9ec21c60a1f47973bd5fc53b96a6
// Paper start
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..03b38dd69cd6932c17b9b2d832e67c14628a4918 100644
index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..ea5ac1f53309fdd30aad40fd4a092f297d76fd61 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -228,6 +228,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -83,6 +83,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
}
@@ -17744,10 +17745,10 @@ index aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..03b38dd69cd6932c17b9b2d832e67c14
+ return getHandle().isSunBurnTick();
+ }
+
public static CraftEntity getEntity(CraftServer server, Entity entity) {
/*
* Order is *EXTREMELY* important -- keep it right! =D
@@ -607,6 +612,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public static <T extends Entity> CraftEntity getEntity(CraftServer server, T entity) {
Preconditions.checkArgument(entity != null, "Unknown entity");
@@ -252,6 +257,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
// Paper end
if ((!ignorePassengers && this.entity.isVehicle()) || this.entity.isRemoved()) { // Paper - Teleport passenger API
@@ -17758,7 +17759,7 @@ index aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..03b38dd69cd6932c17b9b2d832e67c14
return false;
}
@@ -1582,4 +1591,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1227,4 +1236,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.getHandle().getScoreboardName();
}
// Paper end - entity scoreboard name
@@ -17787,10 +17788,10 @@ index aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..03b38dd69cd6932c17b9b2d832e67c14
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index 8a1e765363aeb61078fd23980d3856dc680cb05e..aac60c61fc631c8ecac161eae513a305610a3dfb 100644
index c3dbcb317b7d366feb31f707ad1199c60169f07f..0a14e5d9922836d42a03b496023e76c98fccd824 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -267,6 +267,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public void recalculatePermissions() {
this.perm.recalculatePermissions();
@@ -17872,10 +17873,10 @@ index 81498941748d646ebe6495f4a7ce6953532144c6..df1f7bd8d2e1ef29cc65443bc8f929ac
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index ba2cd9c4cdbd5ddab1300320d7e0ede4d4b7a31a..f346ef373a1eeaa063a90302e20ee90821d63e40 100644
index 1f1ef68a9a449a4a90c284f34a397ab4b6d905f6..d46fbc76fd6934e3c19a9ef237f759c0488da040 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -454,7 +454,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -452,7 +452,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
net.minecraft.server.level.ServerPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle();
getHandle().lastHurtByPlayer = entityPlayer;
getHandle().lastHurtByMob = entityPlayer;
@@ -17884,34 +17885,7 @@ index ba2cd9c4cdbd5ddab1300320d7e0ede4d4b7a31a..f346ef373a1eeaa063a90302e20ee908
}
// Paper end
@@ -466,7 +466,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
org.spigotmc.AsyncCatcher.catchOp("effect add"); // Paper
- this.getHandle().addEffect(CraftPotionUtil.fromBukkit(effect), EntityPotionEffectEvent.Cause.PLUGIN); // Paper - Don't ignore icon
+ this.getHandle().addEffect(new MobEffectInstance(CraftPotionEffectType.bukkitToMinecraft(effect.getType()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon(), effect.getKey()), EntityPotionEffectEvent.Cause.PLUGIN); // Purpur - add key // Paper - Don't ignore icon
return true;
}
@@ -487,7 +487,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public PotionEffect getPotionEffect(PotionEffectType type) {
MobEffectInstance handle = this.getHandle().getEffect(CraftPotionEffectType.bukkitToMinecraft(type));
- return (handle == null) ? null : CraftPotionUtil.toBukkit(handle); // Paper
+ return (handle == null) ? null : new PotionEffect(CraftPotionEffectType.minecraftToBukkit(handle.getEffect()), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isVisible());
}
@Override
@@ -499,7 +499,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public Collection<PotionEffect> getActivePotionEffects() {
List<PotionEffect> effects = new ArrayList<PotionEffect>();
for (MobEffectInstance handle : this.getHandle().activeEffects.values()) {
- effects.add(CraftPotionUtil.toBukkit(handle)); // Paper
+ effects.add(new PotionEffect(CraftPotionEffectType.minecraftToBukkit(handle.getEffect()), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isVisible()));
}
return effects;
}
@@ -1120,4 +1120,32 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -1118,4 +1118,32 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
getHandle().knockback(strength, directionX, directionZ);
};
// Paper end
@@ -17966,10 +17940,10 @@ index 0ad16ee7b33582d214dab41eeee378d52c8e38ed..16bd1294c219f15ada653ef810bc2d74
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index fd84786f3e72875e79df46416f47f3403876cef3..dd3af429e9949a8dea09abf29bac226cc1f82e8c 100644
index c54df6e4aed9b7b46a41af4108a8e90d96c1fe1f..df4f39d38f1ff4a5e499e227d93d98f531a01419 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -527,10 +527,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -524,10 +524,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setPlayerListName(String name) {
@@ -17986,7 +17960,7 @@ index fd84786f3e72875e79df46416f47f3403876cef3..dd3af429e9949a8dea09abf29bac226c
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -1366,6 +1371,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1363,6 +1368,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
@@ -17997,7 +17971,7 @@ index fd84786f3e72875e79df46416f47f3403876cef3..dd3af429e9949a8dea09abf29bac226c
return false;
}
@@ -2556,6 +2565,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2590,6 +2599,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f;
}
@@ -18026,7 +18000,7 @@ index fd84786f3e72875e79df46416f47f3403876cef3..dd3af429e9949a8dea09abf29bac226c
private void validateSpeed(float value) {
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
}
@@ -3293,4 +3324,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3326,4 +3357,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end
@@ -18179,10 +18153,10 @@ index 38b6d2c377800134de592a780b737b45c8096a11..449acd9dc983be1cd51208bc8f8d843d
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index f5a5ae30dfba21d5cf3990c046cfe41547e8a87a..7feace95794a2e1e4b0b14b5d0bc236db352ff65 100644
index f67ec3f5f4b7e2f678609f2387cc8afa2adce161..51ed919b56ded23309be1093280a92331c090780 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -594,6 +594,15 @@ public class CraftEventFactory {
@@ -591,6 +591,15 @@ public class CraftEventFactory {
// Paper end
craftServer.getPluginManager().callEvent(event);
@@ -18198,7 +18172,7 @@ index f5a5ae30dfba21d5cf3990c046cfe41547e8a87a..7feace95794a2e1e4b0b14b5d0bc236d
return event;
}
@@ -1073,6 +1082,7 @@ public class CraftEventFactory {
@@ -1070,6 +1079,7 @@ public class CraftEventFactory {
damageCause = DamageCause.ENTITY_EXPLOSION;
}
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API
@@ -18206,7 +18180,7 @@ index f5a5ae30dfba21d5cf3990c046cfe41547e8a87a..7feace95794a2e1e4b0b14b5d0bc236d
}
event.setCancelled(cancelled);
@@ -1187,6 +1197,7 @@ public class CraftEventFactory {
@@ -1184,6 +1194,7 @@ public class CraftEventFactory {
} else {
entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled
}
@@ -18214,7 +18188,7 @@ index f5a5ae30dfba21d5cf3990c046cfe41547e8a87a..7feace95794a2e1e4b0b14b5d0bc236d
return event;
}
@@ -1250,6 +1261,7 @@ public class CraftEventFactory {
@@ -1247,6 +1258,7 @@ public class CraftEventFactory {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API

View File

@@ -1166,7 +1166,7 @@ index f690b0b56bdaf78ce1e64445f14018b705eb3c37..3db403505f2829680648e9ff2bc2c128
// Paper start
if (waitableArray[0] != null) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index f2070cc0c1a665520b7270b3d72d425535288f08..6c3c4ec6cef581da45f6cdbb68cb74ea099a93a0 100644
index 104cdc470e337c382d51988cb6d47e1903fea4ce..016cd710902ab2d328a9358f8fd7da9f0ef2bcde 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,6 +1,5 @@
@@ -1176,7 +1176,7 @@ index f2070cc0c1a665520b7270b3d72d425535288f08..6c3c4ec6cef581da45f6cdbb68cb74ea
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder;
import com.google.common.collect.Iterables;
@@ -546,13 +545,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -545,13 +544,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
protected void tick(BooleanSupplier shouldKeepTicking) {
@@ -1190,7 +1190,7 @@ index f2070cc0c1a665520b7270b3d72d425535288f08..6c3c4ec6cef581da45f6cdbb68cb74ea
}
}
@@ -1150,25 +1145,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1149,25 +1144,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - optimised tracker
private final void processTrackQueue() {
@@ -1216,7 +1216,7 @@ index f2070cc0c1a665520b7270b3d72d425535288f08..6c3c4ec6cef581da45f6cdbb68cb74ea
}
// Paper end - optimised tracker
@@ -1182,7 +1166,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1181,7 +1165,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
List<ServerPlayer> list = Lists.newArrayList();
List<ServerPlayer> list1 = this.level.players();
ObjectIterator objectiterator = this.entityMap.values().iterator();
@@ -1224,7 +1224,7 @@ index f2070cc0c1a665520b7270b3d72d425535288f08..6c3c4ec6cef581da45f6cdbb68cb74ea
ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1207,17 +1190,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1206,17 +1189,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges();
}
}
@@ -1243,7 +1243,7 @@ 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 c1a140b9d197c06451fe338c28adc5bdee1183a3..76b64eb4a69e2d02c23d5375f1e80ab8ad19e403 100644
index 58f3d1f957ec85e69b80c78e533cedc3a7ac1937..e04ab410b88f681032de4406dceac5ef51476ce1 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -291,10 +291,8 @@ public class ServerChunkCache extends ChunkSource {
@@ -1297,15 +1297,16 @@ index c1a140b9d197c06451fe338c28adc5bdee1183a3..76b64eb4a69e2d02c23d5375f1e80ab8
this.clearCache();
}
@@ -503,7 +491,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -503,8 +491,6 @@ public class ServerChunkCache extends ChunkSource {
this.lastInhabitedUpdate = i;
if (!this.level.isDebug()) {
- // Paper - optimise chunk tick iteration
- if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
// Paper start - optimise chunk tick iteration
ChunkMap playerChunkMap = this.chunkMap;
@@ -548,7 +535,6 @@ public class ServerChunkCache extends ChunkSource {
// Paper - optimise chunk tick iteration
@@ -516,7 +502,6 @@ public class ServerChunkCache extends ChunkSource {
boolean flagAndHasNaturalSpawn = flag && this.anySpawnCategoryIsSpawnedThisTick();
if (flagAndHasNaturalSpawn) {
// Gale end - MultiPaper - skip unnecessary mob spawning computations
@@ -1313,7 +1314,7 @@ index c1a140b9d197c06451fe338c28adc5bdee1183a3..76b64eb4a69e2d02c23d5375f1e80ab8
int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
int naturalSpawnChunkCount = k;
@@ -579,7 +565,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -545,7 +530,6 @@ public class ServerChunkCache extends ChunkSource {
// Pufferfish end
}
// Paper end
@@ -1321,7 +1322,7 @@ index c1a140b9d197c06451fe338c28adc5bdee1183a3..76b64eb4a69e2d02c23d5375f1e80ab8
//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 {
@@ -657,17 +641,13 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
@@ -1339,7 +1340,7 @@ index c1a140b9d197c06451fe338c28adc5bdee1183a3..76b64eb4a69e2d02c23d5375f1e80ab8
// Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -714,7 +695,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -681,7 +661,6 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
@@ -1725,7 +1726,7 @@ 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 e79dbebe298289dcd63f03ebcc15dd409bfbf220..afe0fa16ced3cae40737c8017875901e4809df24 100644
index 41c59c0828e0b6919e029f831ed22b305b2be470..0b10bf781dc70c0ea3d5031ac2b5fe5395cb5269 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -179,7 +179,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1760,7 +1761,7 @@ index e79dbebe298289dcd63f03ebcc15dd409bfbf220..afe0fa16ced3cae40737c8017875901e
// Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally();
@@ -1368,9 +1363,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1362,9 +1357,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
this.blockEntityTickers.removeAll(toRemove);
@@ -1872,10 +1873,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 9ef1d6bf3b8ec431a7747c4edb4b61671758b7e9..7ae5e99e6cc8e88009688468f6d19b5af09da9e0 100644
index 7c11bd348d00a1eb2c1c5cb25922aa51e8004e7a..1ae62fd0f67d6de02ffa196a634a3b8a868ff70d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -472,7 +472,6 @@ public final class CraftServer implements Server {
@@ -468,7 +468,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");
@@ -1884,7 +1885,7 @@ index 9ef1d6bf3b8ec431a7747c4edb4b61671758b7e9..7ae5e99e6cc8e88009688468f6d19b5a
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 802f30f6bacac22e581fef0ff6a3e668d656607f..a37998f9bec941287f51589fff33231046f05258 100644
index c90ec17f71bb1c9b2ee3ee45d36bc0909bc2945f..6143f8ac8ebe7e4ad67c3386d220863a6acc3b27 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 {

View File

@@ -5,19 +5,22 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts
index ee26e30a654cf8238069ba40d271e18b49ea99a3..3d2439e90e1cb97b9b2c26c03f1dd03d5fd37552 100644
index 604ce3a289f33b051074aa0a5e2ff04b74986cb1..eb622ea1c419bc0d514b77af0860ab08e0aa2822 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -36,7 +36,7 @@ dependencies {
@@ -22,9 +22,9 @@ dependencies {
}
// Gale end - project setup
// Paper start
- implementation("org.jline:jline-terminal-jansi:3.21.0")
+ implementation("org.jline:jline-terminal-jansi:3.24.1") // Leaf - Bump Dependencies
+ implementation("org.jline:jline-terminal-jansi:3.25.0") // Leaf - Bump Dependencies
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:adventure-text-serializer-ansi:4.14.0") // Keep in sync with adventureVersion from Paper-API build file
+ implementation("net.kyori:adventure-text-serializer-ansi:4.15.0") // Keep in sync with adventureVersion from Paper-API build file // Leaf - Bump Dependencies
implementation("net.kyori:ansi:1.0.3") // Manually bump beyond above transitive dep
@@ -46,30 +46,34 @@ dependencies {
/*
Required to add the missing Log4j2Plugins.dat file from log4j-core
@@ -32,23 +32,25 @@ dependencies {
all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/
@@ -29,7 +32,7 @@ index ee26e30a654cf8238069ba40d271e18b49ea99a3..3d2439e90e1cb97b9b2c26c03f1dd03d
runtimeOnly(log4jPlugins.output)
alsoShade(log4jPlugins.output)
- implementation("io.netty:netty-codec-haproxy:4.1.97.Final") // Paper - Add support for proxy protocol
+ implementation("io.netty:netty-codec-haproxy:4.1.101.Final") // Paper - Add support for proxy protocol
+ implementation("io.netty:netty-codec-haproxy:4.1.104.Final") // Paper - Add support for proxy protocol
// Paper end
- implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.5")
@@ -41,32 +44,19 @@ index ee26e30a654cf8238069ba40d271e18b49ea99a3..3d2439e90e1cb97b9b2c26c03f1dd03d
implementation("commons-lang:commons-lang:2.6")
- implementation("net.fabricmc:mapping-io:0.5.0") // Paper - needed to read mappings for stacktrace deobfuscation
- runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1")
- runtimeOnly("com.mysql:mysql-connector-j:8.1.0")
- runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
+ // Leaf end
+ implementation("net.fabricmc:mapping-io:0.5.1") // Paper - needed to read mappings for stacktrace deobfuscation
+ runtimeOnly("org.xerial:sqlite-jdbc:3.44.1.0")
+ runtimeOnly("com.mysql:mysql-connector-j:8.2.0")
runtimeOnly("com.mysql:mysql-connector-j:8.2.0")
- runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
+ runtimeOnly("com.lmax:disruptor:3.4.4") // Paper // Leaf - Bump Dependencies - Waiting Log4j 3.x that supported disruptor 4.0.0
+ // Leaf end
// Paper start - Use Velocity cipher
- implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") {
+ implementation("com.velocitypowered:velocity-native:3.3.0-SNAPSHOT") { // Leaf - Bump Dependencies
isTransitive = false
}
// Paper end
- runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5")
- runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
- runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+ // Leaf start - Bump Dependencies
+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+ // Leaf end
// Pufferfish start
implementation("org.yaml:snakeyaml:2.2")
@@ -82,10 +86,14 @@ dependencies {
@@ -68,10 +70,14 @@ dependencies {
implementation("org.mozilla:rhino-engine:1.7.14") // Purpur
implementation("dev.omega24:upnp4j:1.0") // Purpur
@@ -79,12 +69,12 @@ index ee26e30a654cf8238069ba40d271e18b49ea99a3..3d2439e90e1cb97b9b2c26c03f1dd03d
- testImplementation("org.mockito:mockito-core:5.5.0")
+ testImplementation("org.mockito:mockito-core:5.8.0")
+
+ implementation("io.netty:netty-all:4.1.101.Final")
+ implementation("io.netty:netty-all:4.1.104.Final")
+ // Leaf end
}
val craftbukkitPackageVersion = "1_20_R3" // Paper
@@ -277,3 +285,7 @@ sourceSets {
@@ -263,3 +269,7 @@ sourceSets {
}
}
// Gale end - package license into jar

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove Spigot Check for Broken BungeeCord Configurations
diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
index 8e7488277bc30f83fa39f7435ca9f1724452e92e..db3cee1f3d5d3ca090f5f4b1fd6ab01bf19f85d9 100644
index 115877acb37da061a834ce8a7f9919383bb41abd..9b924907162e2bb11861539ef3fae03424819673 100644
--- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
@@ -145,7 +145,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
@@ -147,7 +147,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
{
this.connection.spoofedProfile = ServerHandshakePacketListenerImpl.gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class);
}

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 dd3af429e9949a8dea09abf29bac226cc1f82e8c..c33661468d4f1e0cc668f5854b3df472c8646897 100644
index df4f39d38f1ff4a5e499e227d93d98f531a01419..c9dd86c2d71d7281902ed5f4cfd8d4320ecd0563 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -30,6 +30,11 @@ import java.util.Optional;
@@ -29,6 +29,11 @@ import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.WeakHashMap;
@@ -22,7 +22,7 @@ index dd3af429e9949a8dea09abf29bac226cc1f82e8c..c33661468d4f1e0cc668f5854b3df472
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Nullable;
@@ -166,6 +171,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent;
@@ -163,6 +168,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 dd3af429e9949a8dea09abf29bac226cc1f82e8c..c33661468d4f1e0cc668f5854b3df472
import org.bukkit.map.MapCursor;
import org.bukkit.map.MapView;
import org.bukkit.metadata.MetadataValue;
@@ -3390,4 +3396,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3423,4 +3429,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,7 +7,7 @@ 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 6096a1d08cb2018a178ed925e0a909ed8f5c3888..e3d27b570719839b461a99f6682c02722a3a18d7 100644
index 96ed7cb2f34718b7b1cb5abdc386b7c6abcfa6bd..ca380b7dc4600264651d49b89cc398097f59ab8c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -286,6 +286,7 @@ public class ServerPlayer extends Player {
@@ -36,10 +36,10 @@ index 4158800ce4f86d20213dfd9ccba38d4baf10aa02..9e66c884c9a00263cb8f723f0a94cebe
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 c33661468d4f1e0cc668f5854b3df472c8646897..e89ecf6d99c4ca2e387774eedcd94959d00f1d6f 100644
index c9dd86c2d71d7281902ed5f4cfd8d4320ecd0563..d45a8bed2a65f7efb93cfd6d714fe399c615bb1d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1281,6 +1281,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1278,6 +1278,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
}

View File

@@ -7,18 +7,18 @@ 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 8d330441c3af704ef124599aaa237f3173a8cdea..510eb88b3d43da5f5e976a7affbdc79de9241130 100644
index 50267637d752b8216ee81e09945d7b8f08743c53..0afe218612f16b04798fa5697ac40db95a6629ed 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
private UUID originWorld;
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
public boolean collidingWithWorldBorder; // Paper
public boolean fixedPose = false; // Paper
+ private CompoundTag leavesData = new CompoundTag(); // Leaves - Leaves ex data
public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector();
@@ -2530,6 +2531,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2525,6 +2526,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
nbttagcompound.putBoolean("Paper.FreezeLock", true);
}
// Paper end
@@ -26,7 +26,7 @@ index 8d330441c3af704ef124599aaa237f3173a8cdea..510eb88b3d43da5f5e976a7affbdc79d
return nbttagcompound;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2677,6 +2679,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2672,6 +2674,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
}
// Paper end
@@ -38,7 +38,7 @@ index 8d330441c3af704ef124599aaa237f3173a8cdea..510eb88b3d43da5f5e976a7affbdc79d
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
@@ -5114,4 +5121,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -5109,4 +5116,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false;
}
// Purpur end

View File

@@ -38,10 +38,10 @@ index 138935ffe2f7852e8aa30a5fdea2d4ca340c4cdf..625822b060683bfdf3b79f82ed5eea68
((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 3eac8b20e31948f98a522a5f7e5088a032e36bed..9eebc93178929cb3e7bad202e6ff308e39863da0 100644
index 1ee6f597bbb8ba62b9fddde3fd7a91085dc0def2..66255eeab8cae6ce150ca888b9db3c2f88c4b00b 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
@@ -136,6 +136,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -49,7 +49,7 @@ index 3eac8b20e31948f98a522a5f7e5088a032e36bed..9eebc93178929cb3e7bad202e6ff308e
// Paper start - handle brand payload packet
if (packet.payload() instanceof net.minecraft.network.protocol.common.custom.BrandPayload brandPayload) {
this.player.clientBrandName = brandPayload.brand();
@@ -152,6 +153,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -153,6 +154,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
for (String channel : channels.split("\0")) {
this.getCraftPlayer().addChannel(channel);
@@ -78,10 +78,10 @@ index 9e66c884c9a00263cb8f723f0a94cebed7d788c9..7b184f16a7759ddfbdf430b2f79f1055
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 7ae5e99e6cc8e88009688468f6d19b5af09da9e0..65df49ab8b9407bbdd884d7122022284ca39501a 100644
index 1ae62fd0f67d6de02ffa196a634a3b8a868ff70d..7419bc9ae4f254c4c758b6955f3ef4ba7da89a81 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -484,6 +484,7 @@ public final class CraftServer implements Server {
@@ -480,6 +480,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 7ae5e99e6cc8e88009688468f6d19b5af09da9e0..65df49ab8b9407bbdd884d7122022284
}
public boolean getCommandBlockOverride(String command) {
@@ -1089,6 +1090,7 @@ public final class CraftServer implements Server {
@@ -1090,6 +1091,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

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix tracker NPE
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 6c3c4ec6cef581da45f6cdbb68cb74ea099a93a0..80badf34e9af7ef656f33e1bfe76208362778c3b 100644
index 016cd710902ab2d328a9358f8fd7da9f0ef2bcde..cfe179378963d1f37e95ccd86bc65638def20189 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -242,7 +242,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -241,7 +241,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
public final io.papermc.paper.util.player.NearbyPlayers nearbyPlayers;
// Paper end
// Paper start - optimise chunk tick iteration
@@ -17,7 +17,7 @@ index 6c3c4ec6cef581da45f6cdbb68cb74ea099a93a0..80badf34e9af7ef656f33e1bfe762083
public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerMobSpawnMap = new gg.pufferfish.pufferfish.util.AsyncPlayerAreaMap(this.pooledLinkedPlayerHashSets); // Pufferfish
// Paper end - optimise chunk tick iteration
@@ -1299,7 +1299,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1298,7 +1298,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
final Entity entity;
private final int range;
SectionPos lastSectionPos;
@@ -27,7 +27,7 @@ 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 76b64eb4a69e2d02c23d5375f1e80ab8ad19e403..7be009953587e3beb0e823ea722cbfe01cc37041 100644
index e04ab410b88f681032de4406dceac5ef51476ce1..02b517288ef0794ccfd46802bf76fa56af21c524 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -9,6 +9,7 @@ import java.io.IOException;
@@ -38,7 +38,7 @@ index 76b64eb4a69e2d02c23d5375f1e80ab8ad19e403..7be009953587e3beb0e823ea722cbfe0
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
@@ -684,7 +685,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -650,7 +651,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper - optimise chunk tick iteration
// Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {

View File

@@ -6,7 +6,7 @@ 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 afe0fa16ced3cae40737c8017875901e4809df24..3414b9f7d1908e264540306a2062d35462841033 100644
index 0b10bf781dc70c0ea3d5031ac2b5fe5395cb5269..ddbc6340297d4d3e502d00bc3ab4f2b66438472e 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -386,11 +386,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -35,10 +35,10 @@ index afe0fa16ced3cae40737c8017875901e4809df24..3414b9f7d1908e264540306a2062d354
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 e89ecf6d99c4ca2e387774eedcd94959d00f1d6f..09f18678bb015c2109e087da4f9c1f9fe1776e9c 100644
index d45a8bed2a65f7efb93cfd6d714fe399c615bb1d..c887f6c6f60acee37ff72568f95e5a34d4db53a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -588,12 +588,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -585,12 +585,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@@ -53,7 +53,7 @@ index e89ecf6d99c4ca2e387774eedcd94959d00f1d6f..09f18678bb015c2109e087da4f9c1f9f
if ((this.getUniqueId() == null) || (other.getUniqueId() == null)) {
return false;
}
@@ -2116,6 +2118,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2113,6 +2115,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.canSee((org.bukkit.entity.Entity) player);
}

View File

@@ -5,10 +5,10 @@ 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 9eebc93178929cb3e7bad202e6ff308e39863da0..f0e4a0ce4021d254ead091885a5006a1704ee901 100644
index 66255eeab8cae6ce150ca888b9db3c2f88c4b00b..16d8b36c19a7209b8b6348622de351e51cb75470 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
@@ -241,7 +241,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
if (GaleGlobalConfiguration.get().misc.keepalive.sendMultiple) {
if (elapsedTime >= 1000L) { // 1 second
if (!this.processedDisconnect && this.keepAlives.size() >= KEEPALIVE_LIMIT_IN_SECONDS) {

View File

@@ -5,16 +5,16 @@ Subject: [PATCH] Fix TerminalConsoleAppender NPE error on server closed
diff --git a/build.gradle.kts b/build.gradle.kts
index 3d2439e90e1cb97b9b2c26c03f1dd03d5fd37552..3eaf0bb6022f5891e643060be47a86c6240dc07a 100644
index eb622ea1c419bc0d514b77af0860ab08e0aa2822..8f5648aa89f3a2a66d67cc8810dd9ace5436996f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -37,7 +37,7 @@ dependencies {
@@ -23,7 +23,7 @@ dependencies {
// Gale end - project setup
// Paper start
implementation("org.jline:jline-terminal-jansi:3.24.1") // Leaf - Bump Dependencies
implementation("org.jline:jline-terminal-jansi:3.25.0") // Leaf - Bump Dependencies
- implementation("net.minecrell:terminalconsoleappender:1.3.0")
+ implementation("com.github.Dreeam-qwq:TerminalConsoleAppender:af5a442f") // Leaf - Fix TerminalConsoleAppender NPE error on server closed
implementation("net.kyori:adventure-text-serializer-ansi:4.14.0") // Keep in sync with adventureVersion from Paper-API build file
implementation("net.kyori:adventure-text-serializer-ansi:4.15.0") // Keep in sync with adventureVersion from Paper-API build file // Leaf - Bump Dependencies
implementation("net.kyori:ansi:1.0.3") // Manually bump beyond above transitive dep
/*
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java