9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00

Updated Upstream (Gale/Purpur)

This commit is contained in:
Dreeam
2024-05-19 09:03:01 -04:00
parent 6291db4cf1
commit f557681355
29 changed files with 435 additions and 342 deletions

View File

@@ -1,7 +1,7 @@
plugins { plugins {
java java
`maven-publish` `maven-publish`
id("io.papermc.paperweight.patcher") version "1.6.4-SNAPSHOT" id("io.papermc.paperweight.patcher") version "1.7.2-SNAPSHOT"
} }
val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/" val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/"
@@ -15,7 +15,7 @@ repositories {
} }
dependencies { dependencies {
remapper("net.fabricmc:tiny-remapper:0.10.2:fat") remapper("net.fabricmc:tiny-remapper:0.10.3:fat")
decompiler("org.vineflower:vineflower:1.10.1") decompiler("org.vineflower:vineflower:1.10.1")
paperclip("cn.dreeam:quantumleaper:1.0.0-SNAPSHOT") paperclip("cn.dreeam:quantumleaper:1.0.0-SNAPSHOT")
} }
@@ -86,7 +86,6 @@ paperweight {
tasks.generateDevelopmentBundle { tasks.generateDevelopmentBundle {
apiCoordinates = "cn.dreeam.leaf:leaf-api" apiCoordinates = "cn.dreeam.leaf:leaf-api"
mojangApiCoordinates = "io.papermc.paper:paper-mojangapi"
libraryRepositories.set( libraryRepositories.set(
listOf( listOf(
"https://repo.maven.apache.org/maven2/", "https://repo.maven.apache.org/maven2/",

View File

@@ -1,7 +1,7 @@
group = cn.dreeam.leaf group = cn.dreeam.leaf
version = 1.20.6-R0.1-SNAPSHOT version = 1.20.6-R0.1-SNAPSHOT
galeCommit = 06d5d34300bafadf7b2a6211171ba9b53bb47ab0 galeCommit = c3d6cff782c0b3eba6311873327bac76669003e3
org.gradle.caching = true org.gradle.caching = true
org.gradle.parallel = true org.gradle.parallel = true

View File

@@ -7,10 +7,10 @@ Original license: GPL v3
Original project: https://github.com/pufferfish-gg/Pufferfish Original project: https://github.com/pufferfish-gg/Pufferfish
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 05180de5beea923d9f96bbe70fae84fb48320643..a085f6fa2cfb3721752b38096a2c35fcdd114d02 100644 index 64a5d2f43e6fb459ff30306467a4be1e2831c0b2..eccc64e2baa4c8d511b968f49ff23261f1c78f16 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -51,6 +51,7 @@ dependencies { @@ -52,6 +52,7 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-logger-slf4j") apiAndDocs("net.kyori:adventure-text-logger-slf4j")
api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.apache.logging.log4j:log4j-api:$log4jVersion")
api("org.slf4j:slf4j-api:$slf4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion")

View File

@@ -6,11 +6,12 @@ Subject: [PATCH] Purpur API Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 479a7d8583d27167f96d4a418fdb05797d364453 Commit: 9dcfdf13c206866ec56b4044f4a7905886a669ea
Patches below are removed in this patch: Patches below are removed in this patch:
Pufferfish-API-Changes.patch Pufferfish-API-Changes.patch
Fix-pufferfish-issues.patch Fix-pufferfish-issues.patch
Rebrand.patch
Build-System-Changes.patch Build-System-Changes.patch
Remove-Timings.patch Remove-Timings.patch
Add-log-suppression-for-LibraryLoader.patch Add-log-suppression-for-LibraryLoader.patch
@@ -33,10 +34,10 @@ index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48c
@Override @Override
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 8dfb22c3cf06c8037ca709ebd486a37c71a5a352..76dbc19ab0b87a3b081dbc38e8185268a50f4e3e 100644 index 445b422c14af83cb5c88d36590ab2eca895515ac..60615e802a134adae9108210e4c669eeab304753 100644
--- a/src/main/java/org/bukkit/Bukkit.java --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java
@@ -2977,4 +2977,127 @@ public final class Bukkit { @@ -2974,4 +2974,127 @@ public final class Bukkit {
public static Server.Spigot spigot() { public static Server.Spigot spigot() {
return server.spigot(); return server.spigot();
} }
@@ -255,12 +256,12 @@ index 918a045165cdcde264bc24082b7afebb407271de..687d11619379aead7f665d4a5f8f8bcc
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 7a337fe908915f8ea487a0b9236c511cb07d5e66..1dd02e2782364bf25521088cf8858d3443643447 100644 index 81f9ad99699a78b97e4accaaf1a98eacf29493ce..e3e996d932db689ba62a43f7f01d6f003f8337d3 100644
--- a/src/main/java/org/bukkit/Material.java --- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java
@@ -11657,4 +11657,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla @@ -5701,4 +5701,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public boolean isEnabledByFeature(@NotNull World world) { }
return Bukkit.getDataPackManager().isEnabledByFeature(this, world); return Registry.BLOCK.get(material.key);
} }
+ +
+ // Purpur start + // Purpur start
@@ -659,10 +660,10 @@ index 739911cda33b373f99df627a3a378b37d7d461aa..51e78c22cd021722b963fe31d1d9175d
* Add an entity to the block. * Add an entity to the block.
* *
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
index ac9a28922f8a556944a4c3649d74c32c622f0cb0..e842d13febca67ffa1c89fb2c1324d2609fb81fd 100644 index c3a9cf65db73ed534bf20996c7f05b5eb0aaebe1..83f84a76cbfdf5138ecccf3a886d38151a500bf2 100644
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
@@ -143,6 +143,19 @@ public class SimpleCommandMap implements CommandMap { @@ -152,6 +152,19 @@ public class SimpleCommandMap implements CommandMap {
return false; return false;
} }
@@ -682,7 +683,7 @@ index ac9a28922f8a556944a4c3649d74c32c622f0cb0..e842d13febca67ffa1c89fb2c1324d26
// Paper start - Plugins do weird things to workaround normal registration // Paper start - Plugins do weird things to workaround normal registration
if (target.timings == null) { if (target.timings == null) {
target.timings = co.aikar.timings.TimingsManager.getCommandTiming(null, target); target.timings = co.aikar.timings.TimingsManager.getCommandTiming(null, target);
@@ -152,7 +165,7 @@ public class SimpleCommandMap implements CommandMap { @@ -161,7 +174,7 @@ public class SimpleCommandMap implements CommandMap {
try { try {
try (co.aikar.timings.Timing ignored = target.timings.startTiming()) { // Paper - use try with resources try (co.aikar.timings.Timing ignored = target.timings.startTiming()) { // Paper - use try with resources
// Note: we don't return the result of target.execute as thats success / failure, we return handled (true) or not handled (false) // Note: we don't return the result of target.execute as thats success / failure, we return handled (true) or not handled (false)
@@ -1281,10 +1282,10 @@ index c60be4fd24c7fdf65251dd6169e5e1ac3b588d95..569deccd2f1cf21da9b5906433ac493c
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 84a7bf0936d35bf42b5ed038d295d5c31740f472..6e9b4cbc81878616b1c48add5db534286d267b05 100644 index c64413a6740b604282984dea2a8430a6e7478d68..5c609d916e2d2f08ba90ebd23f13c5c9a14bc73c 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java --- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -17,6 +17,17 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -19,6 +19,17 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.material.MaterialData; import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -1302,7 +1303,7 @@ index 84a7bf0936d35bf42b5ed038d295d5c31740f472..6e9b4cbc81878616b1c48add5db53428
/** /**
* Represents a stack of items. * Represents a stack of items.
@@ -1073,4 +1084,565 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -1079,4 +1090,565 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return Bukkit.getUnsafe().computeTooltipLines(this, tooltipContext, player); return Bukkit.getUnsafe().computeTooltipLines(this, tooltipContext, player);
} }
// Paper end - expose itemstack tooltip lines // Paper end - expose itemstack tooltip lines
@@ -1869,7 +1870,7 @@ index 84a7bf0936d35bf42b5ed038d295d5c31740f472..6e9b4cbc81878616b1c48add5db53428
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..feda3ddfaaf37b6ee218a0e0b1fbc199899bd364 100644 index c143b0d8b97d514566bac8413d0346cf50822aeb..032a21766ce91471cb7d91b663d70e0d9fa66a26 100644
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java --- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java +++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
@@ -10,6 +10,7 @@ import java.util.function.Predicate; @@ -10,6 +10,7 @@ import java.util.function.Predicate;
@@ -1880,7 +1881,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..feda3ddfaaf37b6ee218a0e0b1fbc199
/** /**
* Represents a potential item match within a recipe. All choices within a * Represents a potential item match within a recipe. All choices within a
@@ -150,6 +151,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable { @@ -157,6 +158,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
public static class ExactChoice implements RecipeChoice { public static class ExactChoice implements RecipeChoice {
private List<ItemStack> choices; private List<ItemStack> choices;
@@ -1888,7 +1889,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..feda3ddfaaf37b6ee218a0e0b1fbc199
public ExactChoice(@NotNull ItemStack stack) { public ExactChoice(@NotNull ItemStack stack) {
this(Arrays.asList(stack)); this(Arrays.asList(stack));
@@ -194,6 +196,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable { @@ -206,6 +208,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
@Override @Override
public boolean test(@NotNull ItemStack t) { public boolean test(@NotNull ItemStack t) {
@@ -1896,7 +1897,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..feda3ddfaaf37b6ee218a0e0b1fbc199
for (ItemStack match : choices) { for (ItemStack match : choices) {
if (t.isSimilar(match)) { if (t.isSimilar(match)) {
return true; return true;
@@ -203,6 +206,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable { @@ -215,6 +218,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
return false; return false;
} }

View File

@@ -2830,10 +2830,10 @@ index 3e61a926620a67daec3af54b72a1b911eaef2ed4..00000000000000000000000000000000
- } - }
-} -}
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index a3ba9249e636d1fb8dad98fab413436009fe04df..0a4d7e3b8eda50ec10a7cdb4110628b51b771ef8 100644 index 0857a65ecbc36e0e4b8a7d0cda52be35f238f660..eabc229dd6c2cdfcc7d533e0eae44e97070922ba 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java --- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -142,7 +142,8 @@ public interface UnsafeValues { @@ -151,7 +151,8 @@ public interface UnsafeValues {
// Paper start // Paper start
/** /**
@@ -2871,7 +2871,7 @@ index f9a00aecca5ec41b460bf41dfe1c69694768cf98..00000000000000000000000000000000
- } - }
-} -}
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
index b3a2c274f05156fd603bcc7a68ab41265f2eaf44..7c94976e6bac4a0adbe4bbdb25764040aa5c447d 100644 index c7cdc2ad8a2c43e8c0fcaa1761d3b81726c5ebcb..3b73c0e59788f5f49ca2423032550f11855d52ae 100644
--- a/src/main/java/org/bukkit/command/Command.java --- a/src/main/java/org/bukkit/command/Command.java
+++ b/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java
@@ -33,8 +33,6 @@ public abstract class Command { @@ -33,8 +33,6 @@ public abstract class Command {
@@ -2884,7 +2884,7 @@ index b3a2c274f05156fd603bcc7a68ab41265f2eaf44..7c94976e6bac4a0adbe4bbdb25764040
protected Command(@NotNull String name) { protected Command(@NotNull String name) {
this(name, "", "/" + name, new ArrayList<String>()); this(name, "", "/" + name, new ArrayList<String>());
diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
index 9d4f553c04784cca63901a56a7aea62a5cae1d72..0f96873eff87ea267f9c1875b3893f357fab03f3 100644 index abe256e1e45ce28036da4aa1586715bc8a1a3414..9eab8024e0675865f17669847759a26d28f74f3a 100644
--- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java --- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java
+++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java +++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
@@ -12,7 +12,6 @@ public class FormattedCommandAlias extends Command { @@ -12,7 +12,6 @@ public class FormattedCommandAlias extends Command {
@@ -2896,7 +2896,7 @@ index 9d4f553c04784cca63901a56a7aea62a5cae1d72..0f96873eff87ea267f9c1875b3893f35
} }
@@ -120,10 +119,6 @@ public class FormattedCommandAlias extends Command { @@ -120,10 +119,6 @@ public class FormattedCommandAlias extends Command {
return formatString; return formatString.trim(); // Paper - Causes an extra space at the end, breaks with brig commands
} }
- @NotNull - @NotNull
@@ -2907,10 +2907,10 @@ index 9d4f553c04784cca63901a56a7aea62a5cae1d72..0f96873eff87ea267f9c1875b3893f35
return i >= j && i <= k; return i >= j && i <= k;
} }
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
index e842d13febca67ffa1c89fb2c1324d2609fb81fd..3a146a9c2fc99ea8f9f6a8c2c1d053bf68aeb853 100644 index 83f84a76cbfdf5138ecccf3a886d38151a500bf2..4ba2d258114259691a453c03751b5b7fa3d6b525 100644
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
@@ -34,7 +34,6 @@ public class SimpleCommandMap implements CommandMap { @@ -38,7 +38,6 @@ public class SimpleCommandMap implements CommandMap {
register("bukkit", new VersionCommand("version")); register("bukkit", new VersionCommand("version"));
register("bukkit", new ReloadCommand("reload")); register("bukkit", new ReloadCommand("reload"));
//register("bukkit", new PluginsCommand("plugins")); // Paper //register("bukkit", new PluginsCommand("plugins")); // Paper
@@ -2918,7 +2918,7 @@ index e842d13febca67ffa1c89fb2c1324d2609fb81fd..3a146a9c2fc99ea8f9f6a8c2c1d053bf
} }
public void setFallbackCommands() { public void setFallbackCommands() {
@@ -66,7 +65,6 @@ public class SimpleCommandMap implements CommandMap { @@ -70,7 +69,6 @@ public class SimpleCommandMap implements CommandMap {
*/ */
@Override @Override
public boolean register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command) { public boolean register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command) {
@@ -2926,7 +2926,7 @@ index e842d13febca67ffa1c89fb2c1324d2609fb81fd..3a146a9c2fc99ea8f9f6a8c2c1d053bf
label = label.toLowerCase(java.util.Locale.ENGLISH).trim(); label = label.toLowerCase(java.util.Locale.ENGLISH).trim();
fallbackPrefix = fallbackPrefix.toLowerCase(java.util.Locale.ENGLISH).trim(); fallbackPrefix = fallbackPrefix.toLowerCase(java.util.Locale.ENGLISH).trim();
boolean registered = register(label, command, false, fallbackPrefix); boolean registered = register(label, command, false, fallbackPrefix);
@@ -156,23 +154,13 @@ public class SimpleCommandMap implements CommandMap { @@ -165,23 +163,13 @@ public class SimpleCommandMap implements CommandMap {
parsedArgs = event.getArgs(); parsedArgs = event.getArgs();
// Purpur end // Purpur end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 03ea85ce7d8724518ae0e07dcc6495e99f38f67c..01fd7ac998aef82923efc54c3341e46b2f19235c 100644 index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0fe9dbb107 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -12,8 +12,10 @@ java { @@ -12,8 +12,10 @@ java {
@@ -21,16 +21,16 @@ index 03ea85ce7d8724518ae0e07dcc6495e99f38f67c..01fd7ac998aef82923efc54c3341e46b
val apiAndDocs: Configuration by configurations.creating { val apiAndDocs: Configuration by configurations.creating {
attributes { attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
@@ -28,7 +30,7 @@ configurations.api { @@ -29,7 +31,7 @@ configurations.api {
dependencies { dependencies {
api("com.mojang:brigadier:1.2.9") // Paper - Brigadier command api
// api dependencies are listed transitively to API consumers // api dependencies are listed transitively to API consumers
- api("com.google.guava:guava:32.1.2-jre") - api("com.google.guava:guava:32.1.2-jre")
+ api("com.google.guava:guava:33.1.0-jre") // Leaf - Bump Dependencies + api("com.google.guava:guava:33.1.0-jre") // Leaf - Bump Dependencies
api("com.google.code.gson:gson:2.10.1") api("com.google.code.gson:gson:2.10.1")
// Paper start - adventure // Paper start - adventure
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.18") { api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.18") {
@@ -41,7 +43,7 @@ dependencies { @@ -42,7 +44,7 @@ dependencies {
api("com.googlecode.json-simple:json-simple:1.1.1") { api("com.googlecode.json-simple:json-simple:1.1.1") {
isTransitive = false // includes junit isTransitive = false // includes junit
} }
@@ -39,7 +39,7 @@ index 03ea85ce7d8724518ae0e07dcc6495e99f38f67c..01fd7ac998aef82923efc54c3341e46b
apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion")) apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion"))
apiAndDocs("net.kyori:adventure-api") apiAndDocs("net.kyori:adventure-api")
apiAndDocs("net.kyori:adventure-text-minimessage") apiAndDocs("net.kyori:adventure-text-minimessage")
@@ -51,28 +53,32 @@ dependencies { @@ -52,28 +54,32 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-logger-slf4j") apiAndDocs("net.kyori:adventure-text-logger-slf4j")
api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.apache.logging.log4j:log4j-api:$log4jVersion")
api("org.slf4j:slf4j-api:$slf4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion")
@@ -78,7 +78,7 @@ index 03ea85ce7d8724518ae0e07dcc6495e99f38f67c..01fd7ac998aef82923efc54c3341e46b
testImplementation("org.hamcrest:hamcrest:2.2") testImplementation("org.hamcrest:hamcrest:2.2")
testImplementation("org.mockito:mockito-core:5.11.0") testImplementation("org.mockito:mockito-core:5.11.0")
testImplementation("org.ow2.asm:asm-tree:9.7") testImplementation("org.ow2.asm:asm-tree:9.7")
@@ -143,12 +149,12 @@ tasks.withType<Javadoc> { @@ -164,12 +170,12 @@ tasks.withType<Javadoc> {
options.use() options.use()
options.isDocFilesSubDirs = true options.isDocFilesSubDirs = true
options.links( options.links(
@@ -93,7 +93,7 @@ index 03ea85ce7d8724518ae0e07dcc6495e99f38f67c..01fd7ac998aef82923efc54c3341e46b
"https://www.javadoc.io/doc/com.google.code.gson/gson/2.10.1", "https://www.javadoc.io/doc/com.google.code.gson/gson/2.10.1",
// Paper end // Paper end
// Paper start // Paper start
@@ -159,9 +165,9 @@ tasks.withType<Javadoc> { @@ -180,9 +186,9 @@ tasks.withType<Javadoc> {
"https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/",
"https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/",
"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
@@ -105,7 +105,7 @@ index 03ea85ce7d8724518ae0e07dcc6495e99f38f67c..01fd7ac998aef82923efc54c3341e46b
) )
options.tags("apiNote:a:API Note:") options.tags("apiNote:a:API Note:")
@@ -204,6 +210,11 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks. @@ -225,6 +231,11 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.
jarToScan.set(tasks.jar.flatMap { it.archiveFile }) jarToScan.set(tasks.jar.flatMap { it.archiveFile })
classpath.from(configurations.compileClasspath) classpath.from(configurations.compileClasspath)
} }

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur generated-api Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 479a7d8583d27167f96d4a418fdb05797d364453 Commit: 9dcfdf13c206866ec56b4044f4a7905886a669ea
diff --git a/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/com/destroystokyo/paper/entity/ai/VanillaGoal.java diff --git a/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index 43f4deacef349502cbb207aafc4f9cb7a75177c5..6b692c24a62e2172116a6b9c371b1c0e2411c27e 100644 index 43f4deacef349502cbb207aafc4f9cb7a75177c5..6b692c24a62e2172116a6b9c371b1c0e2411c27e 100644

View File

@@ -5,27 +5,38 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index e9b050f744391444714c8803835d78d0415f96ce..344b87ffcf53f21f8e1a25d1e35fa5246d37f99d 100644 index e2cc87a762c88a6360c265e66ed3bb0592eab2e3..4ee48737f52e24f6e7148709068c568b36a736da 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -14,7 +14,7 @@ val alsoShade: Configuration by configurations.creating @@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
val alsoShade: Configuration by configurations.creating
dependencies { dependencies {
// Gale start - project setup - implementation(project(":gale-api")) // Gale start - project setup - Depend on own API
// Depend on own API + implementation(project(":leaf-api")) // Gale start - project setup - Depend on own API // Leaf
- implementation(project(":gale-api")) // Paper start
+ implementation(project(":leaf-api")) // Leaf implementation("org.jline:jline-terminal-jansi:3.21.0")
// Depend on Paper MojangAPI implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("io.papermc.paper:paper-mojangapi:${project.version}") { @@ -90,14 +90,14 @@ tasks.jar {
exclude("io.papermc.paper", "paper-api") val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
@@ -95,7 +95,7 @@ tasks.jar {
attributes( attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main", "Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit", - "Implementation-Title" to "Gale", // Gale - branding changes
- "Implementation-Version" to "git-Gale-$implementationVersion", // Gale - branding changes + "Implementation-Title" to "Leaf", // Gale - branding changes // Leaf
+ "Implementation-Version" to "git-Leaf-$implementationVersion", // Gale - branding changes // Leaf "Implementation-Version" to implementationVersion,
"Implementation-Vendor" to date, // Paper "Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit", - "Specification-Title" to "Gale", // Gale - branding changes
+ "Specification-Title" to "Leaf", // Gale - branding changes // Leaf
"Specification-Version" to project.version, "Specification-Version" to project.version,
- "Specification-Vendor" to "GaleMC Team", // Gale - branding changes
- "Brand-Id" to "galemc:gale", // Gale - branding changes
- "Brand-Name" to "Gale", // Gale - branding changes
+ "Specification-Vendor" to "Winds Studio", // Gale - branding changes // Leaf
+ "Brand-Id" to "winds-studio:leaf", // Gale - branding changes // Leaf
+ "Brand-Name" to "Leaf", // Gale - branding changes // Leaf
"Build-Number" to (build ?: ""),
"Build-Time" to Instant.now().toString(),
"Git-Branch" to gitBranch, // Paper
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
index 88102f6ba8352a080125512d0bbfacdf779f4f38..fe50cc484ebfe4d3ab8795c222b2abd45fe64310 100644 index 88102f6ba8352a080125512d0bbfacdf779f4f38..fe50cc484ebfe4d3ab8795c222b2abd45fe64310 100644
--- a/src/main/java/com/destroystokyo/paper/Metrics.java --- a/src/main/java/com/destroystokyo/paper/Metrics.java
@@ -72,6 +83,22 @@ index e45e6b44b2a8f2cdae6e0048a812b92126aa17ca..b5f3f213da8a40d5184098af017c8e26
.variable(LineReader.HISTORY_FILE, java.nio.file.Paths.get(".console_history")) .variable(LineReader.HISTORY_FILE, java.nio.file.Paths.get(".console_history"))
.completer(new ConsoleCommandCompleter(this.server)) .completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true); .option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index 7823cf3cdb11062491deaa0eae5aa5e9f5a3e3ba..5f54035bbb7567f595d2e1a96e56d57d3f1b976a 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
@@ -42,9 +42,9 @@ public record ServerBuildInfoImpl(
this(
getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID)
.map(Key::key)
- .orElse(Key.key("galemc", "gale")), // Gale - branding changes
+ .orElse(Key.key("winds-studio", "leaf")), // Gale - branding changes // Leaf
getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME)
- .orElse("Gale"), // Gale - branding changes
+ .orElse("Leaf"), // Gale - branding changes // Leaf
SharedConstants.getCurrentVersion().getId(),
SharedConstants.getCurrentVersion().getName(),
getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER)
diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java
index 4f3cc14d48690bb183d09bb7a5ba1e23e8a0c08a..d8ebcd1c94ce0f78e9d16c603a79a492263990fd 100644 index 4f3cc14d48690bb183d09bb7a5ba1e23e8a0c08a..d8ebcd1c94ce0f78e9d16c603a79a492263990fd 100644
--- a/src/main/java/net/minecraft/CrashReport.java --- a/src/main/java/net/minecraft/CrashReport.java
@@ -88,10 +115,10 @@ index 4f3cc14d48690bb183d09bb7a5ba1e23e8a0c08a..d8ebcd1c94ce0f78e9d16c603a79a492
stringbuilder.append(CrashReport.getErrorComment()); stringbuilder.append(CrashReport.getErrorComment());
stringbuilder.append("\n\n"); stringbuilder.append("\n\n");
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index a77d650fd3b58cc883f284e1d2e41459ae0a77cd..ff4603d4749afdd3ff388c4b5d02ae6620140d63 100644 index 33f06c2cdc8727529b2547e1cb3cb15266be2602..17af0e5be9245573bfcd2ead2be3b6434cd8f576 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -950,7 +950,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -949,7 +949,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
We do not want people to report thread issues to Paper, We do not want people to report thread issues to Paper,
but we do want people to report thread issues to Gale. but we do want people to report thread issues to Gale.
*/ */
@@ -100,19 +127,6 @@ index a77d650fd3b58cc883f284e1d2e41459ae0a77cd..ff4603d4749afdd3ff388c4b5d02ae66
// Gale end - branding changes // Gale end - branding changes
while (this.getRunningThread().isAlive()) { while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop(); this.getRunningThread().stop();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 4a9e867bb2589fd48940dee89c5ddc9abb58be55..5f9cc88fbb05e587e022160b392e58a88b7d6fea 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -271,7 +271,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {
- private final String serverName = "Gale"; // Paper // Gale - branding changes
+ private final String serverName = "Leaf"; // Paper // Gale - branding changes // Leaf
private final String serverVersion;
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 diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 79192e3a0f27d48f35c0378b58e587212ed2c305..006adb2adb27c497ede69f87e78bc3e34499cbf8 100644 index 79192e3a0f27d48f35c0378b58e587212ed2c305..006adb2adb27c497ede69f87e78bc3e34499cbf8 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java

View File

@@ -8,13 +8,13 @@ TODO - Dreeam: Add header comment, world config
Co-authored-by: MrHua269 <wangxyper@163.com> Co-authored-by: MrHua269 <wangxyper@163.com>
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 344b87ffcf53f21f8e1a25d1e35fa5246d37f99d..34335e3c6aeee7c29ce968170ce4d7b6c9872149 100644 index 4ee48737f52e24f6e7148709068c568b36a736da..2200d656214d5db35d15a6fe145982c3fe8573cc 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -20,6 +20,9 @@ dependencies { @@ -14,6 +14,9 @@ val alsoShade: Configuration by configurations.creating
exclude("io.papermc.paper", "paper-api")
} dependencies {
// Gale end - project setup implementation(project(":leaf-api")) // Gale start - project setup - Depend on own API // Leaf
+ +
+ implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config + implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config
+ +

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaf Config legacy converter
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 34335e3c6aeee7c29ce968170ce4d7b6c9872149..663d5bfd7c541a193a1636e6f6f8ae5b656b080b 100644 index 2200d656214d5db35d15a6fe145982c3fe8573cc..909b46295cf87fbc000cd7328c8d1322c8969ecf 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -23,6 +23,13 @@ dependencies { @@ -17,6 +17,13 @@ dependencies {
implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config

View File

@@ -20,10 +20,10 @@ and, in my opinion, worth the low risk of minor mob-spawning-related
inconsistencies. inconsistencies.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ff4603d4749afdd3ff388c4b5d02ae6620140d63..fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528 100644 index 17af0e5be9245573bfcd2ead2be3b6434cd8f576..a976002437a5d9c761835691213e11b14d9a7d45 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -306,6 +306,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -303,6 +303,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
@@ -33,10 +33,10 @@ index ff4603d4749afdd3ff388c4b5d02ae6620140d63..fffe9e1c307e83b0dcb6c40bf0820f9f
AtomicReference<S> atomicreference = new AtomicReference(); AtomicReference<S> atomicreference = new AtomicReference();
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system 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 diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index c58b52acafdc43f41bcc786de56d3d75eb220678..01ebdd21c29651e53d8f649926564a4815be0a9d 100644 index 8c74652ffa2c1263c835381bc27ffdc6d272dbf7..05e214ca14240ba635927c9f2a71d19ba1e9aa45 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -365,6 +365,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -364,6 +364,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.info("JMX monitoring enabled"); DedicatedServer.LOGGER.info("JMX monitoring enabled");
} }
@@ -45,7 +45,7 @@ index c58b52acafdc43f41bcc786de56d3d75eb220678..01ebdd21c29651e53d8f649926564a48
} }
} }
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index a2c5b824a3126f0c7970550f509db9407c66ee28..c8b898e8482f846641505531e8286d9d113c92f9 100644 index 7bac7112b520286ebe9e8d36dc0932900e76eb52..54c3e32c7ae869d55408d77ea2aa1635f980a39b 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -246,7 +246,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -246,7 +246,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider

View File

@@ -9,7 +9,7 @@ Fix-pufferfish-issues.patch
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 479a7d8583d27167f96d4a418fdb05797d364453 Commit: 9dcfdf13c206866ec56b4044f4a7905886a669ea
Patches below are removed in this patch: Patches below are removed in this patch:
Metrics changes in Purpur-config-files.patch Metrics changes in Purpur-config-files.patch
@@ -32,10 +32,10 @@ Remove-Mojang-Profiler.patch
MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index f9dc6deb2e5e94bfd4aff747699a90423c4391a1..aa9098d9a86ccac64777aeba875d724a6691c588 100644 index 909b46295cf87fbc000cd7328c8d1322c8969ecf..431ac399769057642fdf4694b68d84b4423a7103 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -63,6 +63,12 @@ dependencies { @@ -57,6 +57,12 @@ dependencies {
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
@@ -149,30 +149,39 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a
+ } + }
+} +}
diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
index 03f5ec3c4f8eac9cecfef0f257b90090aece5017..77ee490b58f60cfea946cca4e335882dd324bd47 100644 index 6fca13221ef3e0bbcad2ebbe74d6aadf8ed2c539..5ff732297a8697277ada5f25a20db6ad7775b143 100644
--- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
+++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
@@ -4,6 +4,7 @@ import com.google.common.base.Charsets; @@ -3,15 +3,12 @@ package com.destroystokyo.paper;
import com.google.common.base.Charsets;
import com.google.common.io.Resources; import com.google.common.io.Resources;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonArray; -import com.google.gson.JsonArray;
+import com.google.gson.JsonElement; -import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException; import com.google.gson.JsonSyntaxException;
import io.papermc.paper.ServerBuildInfo;
import java.io.BufferedReader;
import java.io.IOException;
import java.net.URI;
-import java.util.stream.StreamSupport;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.framework.qual.DefaultQualifier;
import org.galemc.gale.version.AbstractPaperVersionFetcher; import org.galemc.gale.version.AbstractPaperVersionFetcher;
@@ -44,11 +45,7 @@ public class PaperVersionFetcher extends AbstractPaperVersionFetcher { @@ -46,11 +43,8 @@ public class PaperVersionFetcher extends AbstractPaperVersionFetcher {
Charsets.UTF_8 Charsets.UTF_8
).openBufferedStream()) { ).openBufferedStream()) {
JsonObject json = new Gson().fromJson(reader, JsonObject.class); final JsonObject json = new Gson().fromJson(reader, JsonObject.class);
- JsonArray builds = json.getAsJsonArray("builds"); - final JsonArray builds = json.getAsJsonArray("builds");
- int latest = StreamSupport.stream(builds.spliterator(), false) - final int latest = StreamSupport.stream(builds.spliterator(), false)
- .mapToInt(e -> e.getAsInt()) - .mapToInt(JsonElement::getAsInt)
- .max() - .max()
- .getAsInt(); - .orElseThrow();
+ int latest = json.getAsJsonObject("builds").getAsJsonPrimitive("latest").getAsInt(); // Purpur + //final JsonArray builds = json.getAsJsonArray("builds"); // Purpur
+ final int latest = json.getAsJsonObject("builds").getAsJsonPrimitive("latest").getAsInt(); // Purpur
return latest - jenkinsBuild; return latest - jenkinsBuild;
} catch (JsonSyntaxException ex) { } catch (final JsonSyntaxException ex) {
ex.printStackTrace(); LOGGER.error("Error parsing json from Paper's downloads API", ex);
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
index c72d6bccf7d72d08d388c65936a89c92261c7860..ee746753515c9cea8dd246f4f56e6781956726c1 100644 index c72d6bccf7d72d08d388c65936a89c92261c7860..ee746753515c9cea8dd246f4f56e6781956726c1 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java --- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
@@ -461,10 +470,10 @@ index 0000000000000000000000000000000000000000..cb78dac8e072b5cb3c6e52e17c9ecdf7
+ } + }
+} +}
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
index e6c7f62ed379a78645933670299e4fcda8540ed1..7475aaac2673729091eabc741c8ebb561aeec8f1 100644 index 59d7e8a3d83d3ab7aa28606401bb129ccaeff240..684536f600cca94ea346129a139ec4aac4d9f979 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -230,6 +230,19 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS @@ -209,6 +209,19 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
} }
// CraftBukkit end // CraftBukkit end
@@ -484,7 +493,7 @@ index e6c7f62ed379a78645933670299e4fcda8540ed1..7475aaac2673729091eabc741c8ebb56
public Vec3 getPosition() { public Vec3 getPosition() {
return this.worldPosition; return this.worldPosition;
} }
@@ -331,6 +344,30 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS @@ -310,6 +323,30 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
} }
} }
@@ -516,7 +525,7 @@ index e6c7f62ed379a78645933670299e4fcda8540ed1..7475aaac2673729091eabc741c8ebb56
boolean flag1 = this.source.acceptsSuccess() && !this.silent; boolean flag1 = this.source.acceptsSuccess() && !this.silent;
boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent; boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent;
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 58e0de81eea9626a177e2ccdf1a4542cf9f4552e..6ad5245aebba43abf10fe980e63a8872e3e15484 100644 index fe33a834f8684b175165c87a910ab39f6ec4356f..c0bd91b1cab7066f9582d2c734f61ee50e76098d 100644
--- a/src/main/java/net/minecraft/commands/Commands.java --- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -220,8 +220,8 @@ public class Commands { @@ -220,8 +220,8 @@ public class Commands {
@@ -712,18 +721,18 @@ index bbeb88843f210abdf1cafed11394380cfcab0e09..e68ecaf8d60517fe6398338702a7a796
Bootstrap.bootStrap(); Bootstrap.bootStrap();
Bootstrap.validate(); Bootstrap.validate();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da3e62c1b7 100644 index a976002437a5d9c761835691213e11b14d9a7d45..1f4b3412396b1c5d142c0ad9123cacc2f225494b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -285,6 +285,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -282,6 +282,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public OptionSet options; public OptionSet options;
public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.ConsoleCommandSender console;
public static int currentTick; // Paper - improve tick loop public static int currentTick; // Paper - improve tick loop
+ public static final long startTimeMillis = System.currentTimeMillis(); + public static final long startTimeMillis = System.currentTimeMillis();
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>(); public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
public int autosavePeriod; public int autosavePeriod;
public Commands vanillaCommandDispatcher; // Paper - don't store the vanilla dispatcher
@@ -301,6 +302,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -298,6 +299,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public final GaleConfigurations galeConfigurations; // Gale - Gale configuration public final GaleConfigurations galeConfigurations; // Gale - Gale configuration
public static long currentTickLong = 0L; // Paper - track current tick as a long public static long currentTickLong = 0L; // Paper - track current tick as a long
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
@@ -732,7 +741,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
public volatile Thread shutdownThread; // Paper public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
@@ -967,6 +970,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -966,6 +969,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server"); MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
MinecraftTimings.stopServer(); // Paper MinecraftTimings.stopServer(); // Paper
@@ -747,7 +756,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
// CraftBukkit start // CraftBukkit start
if (this.server != null) { if (this.server != null) {
this.server.disablePlugins(); this.server.disablePlugins();
@@ -1049,6 +1060,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1048,6 +1059,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(waitForShutdown, false); this.safeShutdown(waitForShutdown, false);
} }
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) { public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
@@ -756,7 +765,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
this.isRestarting = isRestarting; this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper - Debugging this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
@@ -1170,6 +1183,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1169,6 +1182,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
// Paper end - Add onboarding message for initial server start // Paper end - Add onboarding message for initial server start
@@ -773,7 +782,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
while (this.running) { while (this.running) {
// Paper start - rewrite chunk system // Paper start - rewrite chunk system
// guarantee that nothing can stop the server from halting if it can at least still tick // guarantee that nothing can stop the server from halting if it can at least still tick
@@ -1212,6 +1235,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1211,6 +1234,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.recentTps[0] = tps1.getAverage(); this.recentTps[0] = tps1.getAverage();
this.recentTps[1] = tps5.getAverage(); this.recentTps[1] = tps5.getAverage();
this.recentTps[2] = tps15.getAverage(); this.recentTps[2] = tps15.getAverage();
@@ -781,7 +790,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
tickSection = currentTime; tickSection = currentTime;
} }
// Paper end - further improve server tick loop // Paper end - further improve server tick loop
@@ -1229,6 +1253,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1228,6 +1252,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
lastTickProperTime = (System.nanoTime() - tickProperStart) / 1000000L; // Gale - YAPFA - last tick time lastTickProperTime = (System.nanoTime() - tickProperStart) / 1000000L; // Gale - YAPFA - last tick time
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
@@ -794,7 +803,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
this.startMeasuringTaskExecutionTime(); this.startMeasuringTaskExecutionTime();
this.waitUntilNextTick(); this.waitUntilNextTick();
this.finishMeasuringTaskExecutionTime(); this.finishMeasuringTaskExecutionTime();
@@ -1725,7 +1755,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1724,7 +1754,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = level.getGameTime(); long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight); final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) { for (Player entityhuman : level.players()) {
@@ -803,7 +812,7 @@ index fffe9e1c307e83b0dcb6c40bf0820f9f9f5c4528..05725e2aed4ad03685bdadbf3bb898da
continue; continue;
} }
ServerPlayer entityplayer = (ServerPlayer) entityhuman; ServerPlayer entityplayer = (ServerPlayer) entityhuman;
@@ -1746,6 +1776,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1745,6 +1775,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
worldserver.updateLagCompensationTick(); // Paper - lag compensation worldserver.updateLagCompensationTick(); // Paper - lag compensation
@@ -881,7 +890,7 @@ index 47355158e5e762540a10dc67b23092a0fc53bce3..9f1c8a62bda242781a0966fa2fc01534
entityitem = entityplayer.drop(itemstack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event entityitem = entityplayer.drop(itemstack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
if (entityitem != null) { if (entityitem != null) {
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 01ebdd21c29651e53d8f649926564a4815be0a9d..615a9dfe30d51bf0aeaec301e2c5a2c7fd98c5d2 100644 index 05e214ca14240ba635927c9f2a71d19ba1e9aa45..0bba378572f01b8998fd4cad544e93b3da248f08 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -109,6 +109,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -109,6 +109,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -906,9 +915,9 @@ index 01ebdd21c29651e53d8f649926564a4815be0a9d..615a9dfe30d51bf0aeaec301e2c5a2c7
+ org.purpurmc.purpur.PurpurConfig.registerCommands(); + org.purpurmc.purpur.PurpurConfig.registerCommands();
+ // Purpur end + // Purpur end
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider
@@ -292,6 +302,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface // Gale start - Pufferfish - SIMD support
@@ -291,6 +301,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (true) throw new IllegalStateException("Failed to bind to port", ioexception); // Paper - Propagate failed to bind to port error if (true) throw new IllegalStateException("Failed to bind to port", ioexception); // Paper - Propagate failed to bind to port error
return false; return false;
} }
@@ -939,7 +948,7 @@ index 01ebdd21c29651e53d8f649926564a4815be0a9d..615a9dfe30d51bf0aeaec301e2c5a2c7
// CraftBukkit start // CraftBukkit start
// this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage)); // Spigot - moved up // this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage)); // Spigot - moved up
@@ -366,6 +400,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -365,6 +399,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
} }
if (org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) mobSpawnExecutor.start(); // Pufferfish if (org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) mobSpawnExecutor.start(); // Pufferfish
@@ -1296,7 +1305,7 @@ index e3fdd0677b3029be0ddc5f59489f66e28f5c2853..b9d9ef327753272a537bebccc54d9fbc
} }
// Paper end - Fix merchant inventory not closing on entity removal // Paper end - Fix merchant inventory not closing on entity removal
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index f4829e31111bb640901e8143ed3afa4de3e28b7d..2707bc1dc8b45a239ffe0b0aeffe96a1359b9a5c 100644 index 54eabdbe28ef05a9f29d692c0e0bb998859825cb..89200d0e0ff60514d22c1cde4b5222917f066323 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -299,6 +299,10 @@ public class ServerPlayer extends Player { @@ -299,6 +299,10 @@ public class ServerPlayer extends Player {
@@ -1492,7 +1501,7 @@ index f4829e31111bb640901e8143ed3afa4de3e28b7d..2707bc1dc8b45a239ffe0b0aeffe96a1
+ if (afk) { + if (afk) {
+ getBukkitEntity().setPlayerListName(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix + prefix + scoreboardName + suffix + org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, true); + getBukkitEntity().setPlayerListName(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix + prefix + scoreboardName + suffix + org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, true);
+ } else { + } else {
+ getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix); + getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
+ } + }
+ } + }
+ +
@@ -1513,7 +1522,7 @@ index f4829e31111bb640901e8143ed3afa4de3e28b7d..2707bc1dc8b45a239ffe0b0aeffe96a1
public ServerStatsCounter getStats() { public ServerStatsCounter getStats() {
return this.stats; return this.stats;
} }
@@ -2868,4 +2992,50 @@ public class ServerPlayer extends Player { @@ -2874,4 +2998,50 @@ public class ServerPlayer extends Player {
return (CraftPlayer) super.getBukkitEntity(); return (CraftPlayer) super.getBukkitEntity();
} }
// CraftBukkit end // CraftBukkit end
@@ -1639,7 +1648,7 @@ index c3a1969e7d3e42b2f0fd0dd0a3d6a5f1dc9b1a1e..bc14f7ae7c5d3dab3a3fc1ce56c975c3
try { try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8); String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 79894b08d778a73336b3d265759baeb837d14ada..8432a36a7b047cf2d930735feb426233769e1931 100644 index 5c1e1ffcd63ab01ddea88acfc2744411f882dc24..c53e01260b4ca6f637b3d55798cda4cab822b5fe 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -336,6 +336,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -336,6 +336,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1879,7 +1888,7 @@ index 79894b08d778a73336b3d265759baeb837d14ada..8432a36a7b047cf2d930735feb426233
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemstack, enumhand); org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemstack, enumhand);
cancelled = event.useItemInHand() == Event.Result.DENY; cancelled = event.useItemInHand() == Event.Result.DENY;
} else { } else {
@@ -2785,6 +2865,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2768,6 +2848,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = entity.getBoundingBox(); AABB axisalignedbb = entity.getBoundingBox();
if (this.player.canInteractWithEntity(axisalignedbb, 1.0D)) { if (this.player.canInteractWithEntity(axisalignedbb, 1.0D)) {
@@ -1887,7 +1896,7 @@ index 79894b08d778a73336b3d265759baeb837d14ada..8432a36a7b047cf2d930735feb426233
packet.dispatch(new ServerboundInteractPacket.Handler() { packet.dispatch(new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
@@ -2798,6 +2879,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2781,6 +2862,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -2079,11 +2088,11 @@ index 99a7e9eb75231c15bd8bb24fbb4e296bc9fdedff..4fb025a63628eb60509d90b680922a02
} }
} }
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
index 359a2f0492a9b938a4f015c546e100e0092ae1d4..25e614be19b2b29b36af136b823f27f85e1650fa 100644 index dd9638bdb228a53e72820e0e7cf6fe6fcc08fe4b..1ce1235cbbf23fe975c85a0f713280b433459951 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
@@ -29,6 +29,8 @@ public class DamageSource { @@ -29,6 +29,8 @@ public class DamageSource {
private boolean withSweep = false; private boolean sweep = false;
private boolean melting = false; private boolean melting = false;
private boolean poison = false; private boolean poison = false;
+ private boolean scissors = false; // Purpur + private boolean scissors = false; // Purpur
@@ -2116,10 +2125,10 @@ index 359a2f0492a9b938a4f015c546e100e0092ae1d4..25e614be19b2b29b36af136b823f27f8
+ // Purpur end + // Purpur end
+ +
// Paper start - fix DamageSource API // Paper start - fix DamageSource API
public @Nullable Entity getCustomEventDamager() { @Nullable
return (this.customEventDamager != null) ? this.customEventDamager : this.directEntity; public Entity getCustomEventDamager() {
@@ -101,6 +123,8 @@ public class DamageSource { @@ -117,6 +139,8 @@ public class DamageSource {
damageSource.withSweep = this.isSweep(); damageSource.sweep = this.isSweep();
damageSource.poison = this.isPoison(); damageSource.poison = this.isPoison();
damageSource.melting = this.isMelting(); damageSource.melting = this.isMelting();
+ damageSource.scissors = this.isScissors(); // Purpur + damageSource.scissors = this.isScissors(); // Purpur
@@ -2127,7 +2136,7 @@ index 359a2f0492a9b938a4f015c546e100e0092ae1d4..25e614be19b2b29b36af136b823f27f8
return damageSource; return damageSource;
} }
// CraftBukkit end // CraftBukkit end
@@ -173,10 +197,19 @@ public class DamageSource { @@ -189,10 +213,19 @@ public class DamageSource {
ItemStack itemstack1 = itemstack; ItemStack itemstack1 = itemstack;
@@ -2149,7 +2158,7 @@ index 359a2f0492a9b938a4f015c546e100e0092ae1d4..25e614be19b2b29b36af136b823f27f8
return this.type().msgId(); return this.type().msgId();
} }
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
index a1c53f04c2dd505e6af72e512e111d7994786035..5ffe772e29dfd422b664e8123e7f5cf396158674 100644 index 5ec8cbd07a1830876f58e1fd33de6df4466d7e95..b1fb94380b7d6bd2a3be31a4e8fe95367e948fe2 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java --- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
@@ -44,11 +44,15 @@ public class DamageSources { @@ -44,11 +44,15 @@ public class DamageSources {
@@ -2252,7 +2261,7 @@ index f43bf280999ff3860cc702def50cc62b131eb1bd..66d9e99a351f5fc6cf58be3bee4397d9
} }
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7afab90526 100644 index 66857a4f55c2505228f015764930e3309db3c20a..a1fae61c8d238b06915037eacec2cb0943e8d996 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -163,7 +163,7 @@ import org.bukkit.plugin.PluginManager; @@ -163,7 +163,7 @@ import org.bukkit.plugin.PluginManager;
@@ -2379,7 +2388,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
@@ -3109,6 +3141,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3115,6 +3147,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -2393,7 +2402,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3148,6 +3187,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3154,6 +3193,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -2408,7 +2417,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -3226,12 +3273,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3232,12 +3279,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }
@@ -2425,7 +2434,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
} }
this.isInsidePortal = true; this.isInsidePortal = true;
@@ -3456,7 +3506,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3462,7 +3512,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -2434,7 +2443,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
} }
public int getAirSupply() { public int getAirSupply() {
@@ -3923,7 +3973,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3929,7 +3979,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public boolean canChangeDimensions() { public boolean canChangeDimensions() {
@@ -2443,7 +2452,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
} }
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
@@ -4224,6 +4274,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4230,6 +4280,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return SlotAccess.NULL; return SlotAccess.NULL;
} }
@@ -2464,7 +2473,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
@Override @Override
public void sendSystemMessage(Component message) {} public void sendSystemMessage(Component message) {}
@@ -4511,6 +4575,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4517,6 +4581,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
} }
@@ -2477,7 +2486,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) { 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 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; return false;
@@ -4919,7 +4989,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4925,7 +4995,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public float maxUpStep() { public float maxUpStep() {
@@ -2486,7 +2495,7 @@ index 9c20cead889a736aab17ef8ef1f3c932b0dd37f1..88ef23e08df880d90fbf879f901c8c7a
} }
public void onExplosionHit(@Nullable Entity entity) {} public void onExplosionHit(@Nullable Entity entity) {}
@@ -5091,4 +5161,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5097,4 +5167,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -2689,7 +2698,7 @@ index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..3e2ea26c23e88c395856b65001f2895d
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; 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 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index d688c41ccfec36ab1715f4ae70fbd1adde3525a8..8fdcb4d25f7398aad76f907be60c146413667353 100644 index 7c7e9f40b1d46b1780f55e1cfbf89b6dbd82f2ae..d06c5d16d312187b6a53c8995d524c0ec2d9f921 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -228,9 +228,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -228,9 +228,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2884,7 +2893,7 @@ index d688c41ccfec36ab1715f4ae70fbd1adde3525a8..8fdcb4d25f7398aad76f907be60c1464
+ } // Purpur + } // Purpur
} }
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops, () -> { org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, source, this.drops, () -> {
@@ -2407,6 +2453,21 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2407,6 +2453,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
} }
} }
@@ -7806,7 +7815,7 @@ index d8e440e14b72dc48ae97244f1bed2c06abd997ab..15ca426701f1fc821da94a4dee577fdb
this.remove(Entity.RemovalReason.KILLED, EntityRemoveEvent.Cause.DEATH); // CraftBukkit - add Bukkit remove cause this.remove(Entity.RemovalReason.KILLED, EntityRemoveEvent.Cause.DEATH); // CraftBukkit - add Bukkit remove cause
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 6f14607a88761171a72e274b3c9b476b20a272f1..3da1f7a6e443954e4976dd59391ea19b9c903cf7 100644 index 0e797e2714a2fd103cbd51548764577fd9b6412d..52e1dd6e064dc03312e18ca515a24e7d3e9be957 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -106,6 +106,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -106,6 +106,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -8270,7 +8279,7 @@ index 7ddca52f7fe3f289b4b867e134326b1ead1a2aee..4a98027a12c2535d1df3a9f6390eb851
} }
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index c2bd2e303f956d390319f6bbbe9a6492ebec5154..6697cd8a632becd72ee132007a61d1221e817abf 100644 index a02ca704e98ef42f32c3c50b111ee3537f60bf7b..92521cbedcf89a855f10a3401933acaf84bc3f98 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -103,10 +103,12 @@ public class ArmorStand extends LivingEntity { @@ -103,10 +103,12 @@ public class ArmorStand extends LivingEntity {
@@ -8310,7 +8319,7 @@ index c2bd2e303f956d390319f6bbbe9a6492ebec5154..6697cd8a632becd72ee132007a61d122
// Paper start - Allow ArmorStands not to tick // Paper start - Allow ArmorStands not to tick
if (!this.canTick) { if (!this.canTick) {
if (this.noTickPoseDirty) { if (this.noTickPoseDirty) {
@@ -1003,4 +1008,18 @@ public class ArmorStand extends LivingEntity { @@ -1008,4 +1013,18 @@ public class ArmorStand extends LivingEntity {
} }
} }
// Paper end // Paper end
@@ -8695,7 +8704,7 @@ index 87e4b300ac248f6c13d9b4a8f24fd78b24b565b4..43b5a0e7993ae9daef1c1ea67722347f
public boolean doHurtTarget(Entity target) { public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(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 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 cbcb2bfa8f91099e5c374f590f48885390bdf7a7..1829bedfa8084c4932a0e67c36f48f19993e22b6 100644 index 0ae4ba060b2ce2c79e1235c939f3c1926eb6e33e..76a0bc9bd6033f1c66e940392f5bed360e7db43c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -61,21 +61,99 @@ public class Creeper extends Monster implements PowerableMob { @@ -61,21 +61,99 @@ public class Creeper extends Monster implements PowerableMob {
@@ -8851,8 +8860,8 @@ index cbcb2bfa8f91099e5c374f590f48885390bdf7a7..1829bedfa8084c4932a0e67c36f48f19
if (!event.isCancelled()) { if (!event.isCancelled()) {
// CraftBukkit end // CraftBukkit end
this.dead = true; this.dead = true;
- this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), Level.ExplosionInteraction.MOB); // CraftBukkit // Paper - fix DamageSource API - this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), Level.ExplosionInteraction.MOB); // CraftBukkit // Paper - fix DamageSource API (revert to vanilla, no, just no, don't change this)
+ this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), this.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) && level().purpurConfig.creeperAllowGriefing ? Level.ExplosionInteraction.MOB : Level.ExplosionInteraction.NONE); // CraftBukkit // Paper - fix DamageSource API // Purpur + this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), this.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) && level().purpurConfig.creeperAllowGriefing ? Level.ExplosionInteraction.MOB : Level.ExplosionInteraction.NONE); // CraftBukkit // Paper - fix DamageSource API (revert to vanilla, no, just no, don't change this) // Purpur
this.discard(EntityRemoveEvent.Cause.EXPLODE); // CraftBukkit - add Bukkit remove cause this.discard(EntityRemoveEvent.Cause.EXPLODE); // CraftBukkit - add Bukkit remove cause
this.spawnLingeringCloud(); this.spawnLingeringCloud();
// CraftBukkit start // CraftBukkit start
@@ -10478,7 +10487,7 @@ index 2d7b7c949faaaaae94c0043132a4a822f55df104..dbfcca8adb7afa7a3101f22c2bc48aff
if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
continue; 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 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 5215fa54666979ef4da074ddfdb082e7274f2957..1afa6dc4f2a6437cd4cc3e49694e79641fcc13ad 100644 index e03119f88719c8d6d44793a6b3706ae97b2da307..5e2a47d910f4bd2cd28008fcf5063cb3dd41da90 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -23,6 +23,8 @@ import net.minecraft.tags.DamageTypeTags; @@ -23,6 +23,8 @@ import net.minecraft.tags.DamageTypeTags;
@@ -10559,7 +10568,7 @@ index 5215fa54666979ef4da074ddfdb082e7274f2957..1afa6dc4f2a6437cd4cc3e49694e7964
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[]{this.getClass()})).setAlertOthers()); this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[]{this.getClass()})).setAlertOthers());
this.targetSelector.addGoal(2, new Shulker.ShulkerNearestAttackGoal(this)); this.targetSelector.addGoal(2, new Shulker.ShulkerNearestAttackGoal(this));
this.targetSelector.addGoal(3, new Shulker.ShulkerDefenseAttackGoal(this)); this.targetSelector.addGoal(3, new Shulker.ShulkerDefenseAttackGoal(this));
@@ -475,12 +526,21 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye @@ -481,12 +532,21 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
Vec3 vec3d = this.position(); Vec3 vec3d = this.position();
AABB axisalignedbb = this.getBoundingBox(); AABB axisalignedbb = this.getBoundingBox();
@@ -10586,7 +10595,7 @@ index 5215fa54666979ef4da074ddfdb082e7274f2957..1afa6dc4f2a6437cd4cc3e49694e7964
if (entityshulker != null) { if (entityshulker != null) {
entityshulker.setVariant(this.getVariant()); entityshulker.setVariant(this.getVariant());
@@ -592,7 +652,7 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye @@ -598,7 +658,7 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
@Override @Override
public Optional<DyeColor> getVariant() { public Optional<DyeColor> getVariant() {
@@ -10595,7 +10604,7 @@ index 5215fa54666979ef4da074ddfdb082e7274f2957..1afa6dc4f2a6437cd4cc3e49694e7964
} }
@Nullable @Nullable
@@ -602,7 +662,7 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye @@ -608,7 +668,7 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
return b0 != 16 && b0 <= 15 ? DyeColor.byId(b0) : null; return b0 != 16 && b0 <= 15 ? DyeColor.byId(b0) : null;
} }
@@ -12515,7 +12524,7 @@ index c72b6ea5530e54fc373c701028e1c147cea34b59..96e9fce5f9084737d2fcf4deb8330573
if (spawnplacementtype.isSpawnPositionOk(world, blockposition2, EntityType.WANDERING_TRADER)) { if (spawnplacementtype.isSpawnPositionOk(world, blockposition2, EntityType.WANDERING_TRADER)) {
blockposition1 = blockposition2; blockposition1 = blockposition2;
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 70b9d7c9f938009274143ea2fb728492f394531e..852acdd290f2c8d7c3de470140e54a150da4dbb6 100644 index e404d83b313cd5607dac353e6973af95dd9ddd6f..061c7ee4705265dfb8337280252562ca5d35d9a5 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -198,11 +198,20 @@ public abstract class Player extends LivingEntity { @@ -198,11 +198,20 @@ public abstract class Player extends LivingEntity {
@@ -12653,6 +12662,15 @@ index 70b9d7c9f938009274143ea2fb728492f394531e..852acdd290f2c8d7c3de470140e54a15
public boolean setEntityOnShoulder(CompoundTag entityNbt) { public boolean setEntityOnShoulder(CompoundTag entityNbt) {
if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) { if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) {
if (this.getShoulderEntityLeft().isEmpty()) { if (this.getShoulderEntityLeft().isEmpty()) {
@@ -2327,7 +2382,7 @@ public abstract class Player extends LivingEntity {
}
}
- return this.abilities.instabuild ? new ItemStack(Items.ARROW) : ItemStack.EMPTY;
+ return this.abilities.instabuild || (level().purpurConfig.infinityWorksWithoutArrows && net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.INFINITY, stack) > 0) ? new ItemStack(Items.ARROW) : ItemStack.EMPTY; // Purpur
}
}
}
@@ -2336,7 +2391,7 @@ public abstract class Player extends LivingEntity { @@ -2336,7 +2391,7 @@ public abstract class Player extends LivingEntity {
public ItemStack eat(Level world, ItemStack stack) { public ItemStack eat(Level world, ItemStack stack) {
this.getFoodData().eat(stack); this.getFoodData().eat(stack);
@@ -12806,10 +12824,10 @@ index 2b4d206c0d31ba38d7b2af654bd420e85145d441..1b9d0e28e518c501b4b93ae385ddd64a
protected void onHit(HitResult hitResult) { protected void onHit(HitResult hitResult) {
super.onHit(hitResult); super.onHit(hitResult);
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index 1fb1e729d6879568d8b4943071fa940325b2e5b0..d9761d8fe746e925a7a32dfc15eb8045c6150fe5 100644 index 519755b7f8bc7e8bb9fab135fc5bf7de3a9419f9..61bd2459f2b9164dce90134103abaddce42b0621 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -71,10 +71,11 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { @@ -70,10 +70,11 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
Bukkit.getPluginManager().callEvent(teleEvent); Bukkit.getPluginManager().callEvent(teleEvent);
if (!teleEvent.isCancelled() && entityplayer.connection.isAcceptingMessages()) { if (!teleEvent.isCancelled() && entityplayer.connection.isAcceptingMessages()) {
@@ -12822,7 +12840,7 @@ index 1fb1e729d6879568d8b4943071fa940325b2e5b0..d9761d8fe746e925a7a32dfc15eb8045
entityendermite.moveTo(entity.getX(), entity.getY(), entity.getZ(), entity.getYRot(), entity.getXRot()); entityendermite.moveTo(entity.getX(), entity.getY(), entity.getZ(), entity.getYRot(), entity.getXRot());
this.level().addFreshEntity(entityendermite, CreatureSpawnEvent.SpawnReason.ENDER_PEARL); this.level().addFreshEntity(entityendermite, CreatureSpawnEvent.SpawnReason.ENDER_PEARL);
} }
@@ -86,7 +87,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { @@ -85,7 +86,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
entityplayer.connection.teleport(teleEvent.getTo()); entityplayer.connection.teleport(teleEvent.getTo());
entity.resetFallDistance(); entity.resetFallDistance();
@@ -13345,10 +13363,10 @@ index 0dbfd23bbfc6ad203f048142f8c90ef741849fe1..9a80427d2bb470b6b1638e59aba57216
return new ChestMenu(MenuType.GENERIC_9x6, syncId, playerInventory, inventory, 6); return new ChestMenu(MenuType.GENERIC_9x6, syncId, playerInventory, inventory, 6);
} }
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
index 5b3e33807e0e13480e3359c0cf067719e5749237..c3a644b0f8c7c5622acc9e1a496f95d432718806 100644 index 480d093105073edfd3acdd7b079b4ca5aa5fdc6d..6d28f1097caa3e37c2917eb401018ebf48c13a39 100644
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
@@ -38,6 +38,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent; @@ -39,6 +39,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
// CraftBukkit end // CraftBukkit end
@@ -13361,7 +13379,7 @@ index 5b3e33807e0e13480e3359c0cf067719e5749237..c3a644b0f8c7c5622acc9e1a496f95d4
public class EnchantmentMenu extends AbstractContainerMenu { public class EnchantmentMenu extends AbstractContainerMenu {
static final ResourceLocation EMPTY_SLOT_LAPIS_LAZULI = new ResourceLocation("item/empty_slot_lapis_lazuli"); static final ResourceLocation EMPTY_SLOT_LAPIS_LAZULI = new ResourceLocation("item/empty_slot_lapis_lazuli");
@@ -72,6 +78,22 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -73,6 +79,22 @@ public class EnchantmentMenu extends AbstractContainerMenu {
return context.getLocation(); return context.getLocation();
} }
// CraftBukkit end // CraftBukkit end
@@ -13384,7 +13402,7 @@ index 5b3e33807e0e13480e3359c0cf067719e5749237..c3a644b0f8c7c5622acc9e1a496f95d4
}; };
this.random = RandomSource.create(); this.random = RandomSource.create();
this.enchantmentSeed = DataSlot.standalone(); this.enchantmentSeed = DataSlot.standalone();
@@ -97,6 +119,17 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -98,6 +120,17 @@ public class EnchantmentMenu extends AbstractContainerMenu {
} }
}); });
@@ -13402,7 +13420,7 @@ index 5b3e33807e0e13480e3359c0cf067719e5749237..c3a644b0f8c7c5622acc9e1a496f95d4
int j; int j;
for (j = 0; j < 3; ++j) { for (j = 0; j < 3; ++j) {
@@ -332,6 +365,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -333,6 +366,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
public void removed(net.minecraft.world.entity.player.Player player) { public void removed(net.minecraft.world.entity.player.Player player) {
super.removed(player); super.removed(player);
this.access.execute((world, blockposition) -> { this.access.execute((world, blockposition) -> {
@@ -13617,7 +13635,7 @@ index 786e4a8700cb84b16dd9b8892a0d1d5803924d81..b108ca4c7900ccf6a14ebea01c21c103
// CraftBukkit start // CraftBukkit start
Level world = pointer.level(); Level world = pointer.level();
diff --git a/src/main/java/net/minecraft/world/item/ArmorStandItem.java b/src/main/java/net/minecraft/world/item/ArmorStandItem.java diff --git a/src/main/java/net/minecraft/world/item/ArmorStandItem.java b/src/main/java/net/minecraft/world/item/ArmorStandItem.java
index 1634a7d5ff06583408cf2f02f2b5f90931b1e02a..dfe8473a880cbddfc3ac6a9c97f1a500624eeb38 100644 index 1634a7d5ff06583408cf2f02f2b5f90931b1e02a..fd83261f64c6469aebde8ab13a6777b9b269cea2 100644
--- a/src/main/java/net/minecraft/world/item/ArmorStandItem.java --- a/src/main/java/net/minecraft/world/item/ArmorStandItem.java
+++ b/src/main/java/net/minecraft/world/item/ArmorStandItem.java +++ b/src/main/java/net/minecraft/world/item/ArmorStandItem.java
@@ -58,6 +58,14 @@ public class ArmorStandItem extends Item { @@ -58,6 +58,14 @@ public class ArmorStandItem extends Item {
@@ -13628,7 +13646,7 @@ index 1634a7d5ff06583408cf2f02f2b5f90931b1e02a..dfe8473a880cbddfc3ac6a9c97f1a500
+ if (!world.purpurConfig.persistentDroppableEntityDisplayNames) { + if (!world.purpurConfig.persistentDroppableEntityDisplayNames) {
+ entityarmorstand.setCustomName(null); + entityarmorstand.setCustomName(null);
+ } + }
+ if (world.purpurConfig.armorstandSetNameVisible) { + if (world.purpurConfig.armorstandSetNameVisible && entityarmorstand.getCustomName() != null) {
+ entityarmorstand.setCustomNameVisible(true); + entityarmorstand.setCustomNameVisible(true);
+ } + }
+ // Purpur end + // Purpur end
@@ -13765,7 +13783,7 @@ index eb74d45ad458b80cf8455297c3bc550186adaea3..ef01856c487e4ab982996e0153761823
return InteractionResultHolder.fail(itemstack); return InteractionResultHolder.fail(itemstack);
} else { } else {
diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java
index 5ca843df5b4caa668953e5e36a9b20fabeb35046..8bca38ec152f9612298bf6b3e10e7e0566ec3b78 100644 index 5ca843df5b4caa668953e5e36a9b20fabeb35046..ec21d3d00deac4ad51f0a4beec2894675a461618 100644
--- a/src/main/java/net/minecraft/world/item/BowItem.java --- a/src/main/java/net/minecraft/world/item/BowItem.java
+++ b/src/main/java/net/minecraft/world/item/BowItem.java +++ b/src/main/java/net/minecraft/world/item/BowItem.java
@@ -31,7 +31,7 @@ public class BowItem extends ProjectileWeaponItem { @@ -31,7 +31,7 @@ public class BowItem extends ProjectileWeaponItem {
@@ -13777,15 +13795,6 @@ index 5ca843df5b4caa668953e5e36a9b20fabeb35046..8bca38ec152f9612298bf6b3e10e7e05
} }
world.playSound( world.playSound(
@@ -81,7 +81,7 @@ public class BowItem extends ProjectileWeaponItem {
public InteractionResultHolder<ItemStack> use(Level world, Player user, InteractionHand hand) {
ItemStack itemStack = user.getItemInHand(hand);
boolean bl = !user.getProjectile(itemStack).isEmpty();
- if (!user.hasInfiniteMaterials() && !bl) {
+ if (!(world.purpurConfig.infinityWorksWithoutArrows && net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.INFINITY, itemStack) > 0) && !user.hasInfiniteMaterials() && !bl) { // Purpur
return InteractionResultHolder.fail(itemStack);
} else {
user.startUsingItem(hand);
diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java
index 49557d6f22c5725c663a231deab019d4f6fe95fa..046652e8f9c5dcdf7c90acb9391214cac46bd7d8 100644 index 49557d6f22c5725c663a231deab019d4f6fe95fa..046652e8f9c5dcdf7c90acb9391214cac46bd7d8 100644
--- a/src/main/java/net/minecraft/world/item/BucketItem.java --- a/src/main/java/net/minecraft/world/item/BucketItem.java
@@ -14441,7 +14450,7 @@ index ea0aee88c7d901034427db201c1b2430f8a1d522..1f28bfb435c1e4d97da713f96c452aba
if (range < 0.0 || d < range * range) { if (range < 0.0 || d < range * range) {
return true; return true;
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index b9eea5996b7190b656a9c37bf96706a6b41a19f1..1dbb4a5ca3e9b9197ccc040d1d660e4c3bd58227 100644 index eb152f9ab41fc7b7219f9be26b574d61506c55d5..e9e0c91299b2669e0ff452176bf9758ca6c53bc3 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -98,7 +98,7 @@ public class Explosion { @@ -98,7 +98,7 @@ public class Explosion {
@@ -14473,7 +14482,7 @@ index b9eea5996b7190b656a9c37bf96706a6b41a19f1..1dbb4a5ca3e9b9197ccc040d1d660e4c
+ }else { + }else {
+ Location location = new Location(this.level.getWorld(), this.x, this.y, this.z); + Location location = new Location(this.level.getWorld(), this.x, this.y, this.z);
+ org.bukkit.block.Block block = location.getBlock(); + org.bukkit.block.Block block = location.getBlock();
+ org.bukkit.block.BlockState blockState = (this.damageSource.blockState != null) ? this.damageSource.blockState : block.getState(); + org.bukkit.block.BlockState blockState = (this.damageSource.getDirectBlockState() != null) ? this.damageSource.getDirectBlockState() : block.getState();
+ if (!new org.purpurmc.purpur.event.PreBlockExplodeEvent(location.getBlock(), this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F, blockState).callEvent()) { + if (!new org.purpurmc.purpur.event.PreBlockExplodeEvent(location.getBlock(), this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F, blockState).callEvent()) {
+ this.wasCanceled = true; + this.wasCanceled = true;
+ return; + return;
@@ -14678,7 +14687,7 @@ index ce9f189bdafec26360bfadd0f36a8bc2726e132b..d5465b48531fd4b4094874c135274abf
return true; return true;
} else { } else {
diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java
index 4459685d1fb655f93a523ae50b62d6b97785ed90..a4a988ab1399702b943019e9c4e2cde3652b4e85 100644 index 85d598c3354ee62f0fd1b26e485e0084967c0380..17c994a39a1b99cc7727e328ce7493d534247a21 100644
--- a/src/main/java/net/minecraft/world/level/block/BedBlock.java --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java
@@ -104,7 +104,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock @@ -104,7 +104,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock
@@ -14694,8 +14703,8 @@ index 4459685d1fb655f93a523ae50b62d6b97785ed90..a4a988ab1399702b943019e9c4e2cde3
Vec3 vec3d = blockposition.getCenter(); Vec3 vec3d = blockposition.getCenter();
- world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, world, iblockdata, blockposition, blockEntity), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // CraftBukkit - add state // Paper - add BlockEntity - world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, blockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // CraftBukkit - add state
+ if (world.purpurConfig.bedExplode) world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, world, iblockdata, blockposition, blockEntity), (ExplosionDamageCalculator) null, vec3d, (float) world.purpurConfig.bedExplosionPower, world.purpurConfig.bedExplosionFire, world.purpurConfig.bedExplosionEffect); // CraftBukkit - add state // Paper - add BlockEntity // Purpur + if (world.purpurConfig.bedExplode) world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, blockState), (ExplosionDamageCalculator) null, vec3d, (float) world.purpurConfig.bedExplosionPower, world.purpurConfig.bedExplosionFire, world.purpurConfig.bedExplosionEffect); // CraftBukkit - add state // Purpur
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;
} }
} }
@@ -15633,15 +15642,15 @@ index 9603d8c84ff483030dc08e82d3579b89e5c1f6e9..8fc65c32a3c6e6842a76b36f45e1b1c2
} else { } else {
int j = pos.getX(); int j = pos.getX();
diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java
index 0699211428f182d8d56a2ba019d89ce05c920430..351fb74d2cccd7f63c2efee197a2968f822eda42 100644 index 94d067e9eeee73183de25165d8c97043fe256103..00b6941951e1af9993f8f6da5425d31b8eaa85e4 100644
--- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java
@@ -149,7 +149,7 @@ public class RespawnAnchorBlock extends Block { @@ -150,7 +150,7 @@ public class RespawnAnchorBlock extends Block {
}; };
Vec3 vec3d = explodedPos.getCenter(); Vec3 vec3d = explodedPos.getCenter();
- world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, world, state, explodedPos, null), explosiondamagecalculator, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // CraftBukkit - add state // Paper - world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, blockState), explosiondamagecalculator, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // CraftBukkit - add state
+ if (world.purpurConfig.respawnAnchorExplode) world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, world, state, explodedPos, null), explosiondamagecalculator, vec3d, (float) world.purpurConfig.respawnAnchorExplosionPower, world.purpurConfig.respawnAnchorExplosionFire, world.purpurConfig.respawnAnchorExplosionEffect); // CraftBukkit - add state // Paper // Purpur + if (world.purpurConfig.respawnAnchorExplode) world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, blockState), explosiondamagecalculator, vec3d, (float) world.purpurConfig.respawnAnchorExplosionPower, world.purpurConfig.respawnAnchorExplosionFire, world.purpurConfig.respawnAnchorExplosionEffect); // CraftBukkit - add state // Purpur
} }
public static boolean canSetSpawn(Level world) { public static boolean canSetSpawn(Level world) {
@@ -16952,13 +16961,13 @@ index 9d93130f23addb18b97d7f5ec013faef17a74529..29d2fb87a65778926aea2cfc7a5b486c
+ // Purpur end - OfflinePlayer API + // Purpur end - OfflinePlayer API
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8a41f97d0 100644 index c79dfb84412e9718d19415ac0d6d1cd82f0318d7..2a2f979fad5710ed35991671e54d1c2d52b95bbe 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -407,6 +407,20 @@ public final class CraftServer implements Server { @@ -409,6 +409,20 @@ public final class CraftServer implements Server {
this.serverTickManager = new CraftServerTickManager(console.tickRateManager()); this.paperPluginManager = new io.papermc.paper.plugin.manager.PaperPluginManagerImpl(this, this.commandMap, pluginManager);
this.pluginManager.paperPluginManager = this.paperPluginManager;
Bukkit.setServer(this); // Paper end
+ // Purpur start + // Purpur start
+ org.purpurmc.purpur.language.Language.setLanguage(new org.purpurmc.purpur.language.Language() { + org.purpurmc.purpur.language.Language.setLanguage(new org.purpurmc.purpur.language.Language() {
+ private net.minecraft.locale.Language language = net.minecraft.locale.Language.getInstance(); + private net.minecraft.locale.Language language = net.minecraft.locale.Language.getInstance();
@@ -16976,7 +16985,7 @@ index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8
CraftRegistry.setMinecraftRegistry(console.registryAccess()); CraftRegistry.setMinecraftRegistry(console.registryAccess());
@@ -1059,6 +1073,7 @@ public final class CraftServer implements Server { @@ -1038,6 +1052,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console); this.console.paperConfigurations.reloadConfigs(this.console);
this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration
@@ -16984,7 +16993,7 @@ index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8
for (ServerLevel world : this.console.getAllLevels()) { for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty // 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)) world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -1074,6 +1089,7 @@ public final class CraftServer implements Server { @@ -1053,6 +1068,7 @@ public final class CraftServer implements Server {
} }
} }
world.spigotConfig.init(); // Spigot world.spigotConfig.init(); // Spigot
@@ -16992,7 +17001,7 @@ index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8
} }
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1089,6 +1105,7 @@ public final class CraftServer implements Server { @@ -1069,6 +1085,7 @@ public final class CraftServer implements Server {
this.reloadData(); this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
@@ -17000,7 +17009,7 @@ index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1595,6 +1612,55 @@ public final class CraftServer implements Server { @@ -1581,6 +1598,55 @@ public final class CraftServer implements Server {
return true; return true;
} }
@@ -17056,7 +17065,7 @@ index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8
@Override @Override
public List<Recipe> getRecipesFor(ItemStack result) { public List<Recipe> getRecipesFor(ItemStack result) {
Preconditions.checkArgument(result != null, "ItemStack cannot be null"); Preconditions.checkArgument(result != null, "ItemStack cannot be null");
@@ -3065,6 +3131,18 @@ public final class CraftServer implements Server { @@ -3051,6 +3117,18 @@ public final class CraftServer implements Server {
} }
// Gale end - Gale configuration - API // Gale end - Gale configuration - API
@@ -17075,7 +17084,7 @@ index 5f9cc88fbb05e587e022160b392e58a88b7d6fea..483e16f27cd07cc9a0276db9cb9d84d8
@Override @Override
public void restart() { public void restart() {
org.spigotmc.RestartCommand.restart(); org.spigotmc.RestartCommand.restart();
@@ -3350,4 +3428,15 @@ public final class CraftServer implements Server { @@ -3336,4 +3414,15 @@ public final class CraftServer implements Server {
} }
// Gale end - YAPFA - last tick time - API // Gale end - YAPFA - last tick time - API
@@ -17145,10 +17154,10 @@ index 2abe6131cc04ed397446c2aa08f77f9da00ce8c5..f27cf4efa3675cee8e6dd45c6f366cda
public Collection<GeneratedStructure> getStructures(int x, int z) { public Collection<GeneratedStructure> getStructures(int x, int z) {
return this.getStructures(x, z, struct -> true); return this.getStructures(x, z, struct -> true);
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 87a82481476e2011ed33bded68e3a5c2e9e0fd9f..49aa5493f65e6e53553290ab82f91632e9dd6d20 100644 index 6224bb20a2e3919b5fb33e5cfb8babc1929460c2..1b85f74a74b41d1f715abc55bf49613abbc3c97a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -196,6 +196,14 @@ public class Main { @@ -197,6 +197,14 @@ public class Main {
.describedAs("Jar file"); .describedAs("Jar file");
// Paper end // Paper end
@@ -17163,7 +17172,7 @@ index 87a82481476e2011ed33bded68e3a5c2e9e0fd9f..49aa5493f65e6e53553290ab82f91632
// Paper start // Paper start
acceptsAll(asList("server-name"), "Name of the server") acceptsAll(asList("server-name"), "Name of the server")
.withRequiredArg() .withRequiredArg()
@@ -315,7 +323,7 @@ public class Main { @@ -316,7 +324,7 @@ public class Main {
System.setProperty(net.minecrell.terminalconsole.TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper System.setProperty(net.minecrell.terminalconsole.TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper
} }
@@ -17508,7 +17517,7 @@ index aa351df679f300018367244c7ccb3e5a59e9276f..b452ebbe11145987fb5e66b399938984
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
index 0ad16ee7b33582d214dab41eeee378d52c8e38ed..16bd1294c219f15ada653ef810bc2d748222d0da 100644 index 351f42842b780d053cd2e5bad9ae299449141b10..4860574e7fad7a9527dda599703c573c5b4b234b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
@@ -90,4 +90,16 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys @@ -90,4 +90,16 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys
@@ -17529,7 +17538,7 @@ index 0ad16ee7b33582d214dab41eeee378d52c8e38ed..16bd1294c219f15ada653ef810bc2d74
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 5f896948d158651cd9837364759dbfbcce6b7d21..88948526f9acf4bb2157484b80891902fd843b02 100644 index 7e6116963d835d4606ef3d93b69d3e44b61288e1..241340a6d66f17f2a31fb03ff0dfab121b856368 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -574,10 +574,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -574,10 +574,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -17560,7 +17569,7 @@ index 5f896948d158651cd9837364759dbfbcce6b7d21..88948526f9acf4bb2157484b80891902
return false; return false;
} }
@@ -2736,6 +2745,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2733,6 +2742,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f; return this.getHandle().getAbilities().walkingSpeed * 2f;
} }
@@ -17589,7 +17598,7 @@ index 5f896948d158651cd9837364759dbfbcce6b7d21..88948526f9acf4bb2157484b80891902
private void validateSpeed(float value) { private void validateSpeed(float value) {
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value); Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
} }
@@ -3522,4 +3553,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3519,4 +3550,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSendViewDistance(final int viewDistance) { public void setSendViewDistance(final int viewDistance) {
this.getHandle().setSendViewDistance(viewDistance); this.getHandle().setSendViewDistance(viewDistance);
} }
@@ -17742,7 +17751,7 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 547ab158cd0cbf51da06ea97740cfce34bca651b..6fed586c9a778f7a57e1b4ca2e6f2dbc15c8769d 100644 index 34b91eff3190848bae38b20e1d956ece497b1473..e650b85464ac886b4adb1a8924026d34f805aba6 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -592,6 +592,15 @@ public class CraftEventFactory { @@ -592,6 +592,15 @@ public class CraftEventFactory {
@@ -17761,8 +17770,8 @@ index 547ab158cd0cbf51da06ea97740cfce34bca651b..6fed586c9a778f7a57e1b4ca2e6f2dbc
return event; return event;
} }
@@ -1121,7 +1130,7 @@ public class CraftEventFactory { @@ -1123,7 +1132,7 @@ public class CraftEventFactory {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled); return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
} else if (source.getDirectBlock() != null) { } else if (source.getDirectBlock() != null) {
DamageCause cause; DamageCause cause;
- if (source.is(DamageTypes.CACTUS) || source.is(DamageTypes.SWEET_BERRY_BUSH) || source.is(DamageTypes.STALAGMITE) || source.is(DamageTypes.FALLING_STALACTITE) || source.is(DamageTypes.FALLING_ANVIL)) { - if (source.is(DamageTypes.CACTUS) || source.is(DamageTypes.SWEET_BERRY_BUSH) || source.is(DamageTypes.STALAGMITE) || source.is(DamageTypes.FALLING_STALACTITE) || source.is(DamageTypes.FALLING_ANVIL)) {
@@ -17770,7 +17779,7 @@ index 547ab158cd0cbf51da06ea97740cfce34bca651b..6fed586c9a778f7a57e1b4ca2e6f2dbc
cause = DamageCause.CONTACT; cause = DamageCause.CONTACT;
} else if (source.is(DamageTypes.HOT_FLOOR)) { } else if (source.is(DamageTypes.HOT_FLOOR)) {
cause = DamageCause.HOT_FLOOR; cause = DamageCause.HOT_FLOOR;
@@ -1179,6 +1188,7 @@ public class CraftEventFactory { @@ -1181,6 +1190,7 @@ public class CraftEventFactory {
EntityDamageEvent event; EntityDamageEvent event;
if (damager != null) { if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical); event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
@@ -18494,7 +18503,7 @@ index 0000000000000000000000000000000000000000..eaa8b63b0fb1f0ebefba9014cfec7f10
+} +}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..4a385c42da7ab3be46d5e47d00daee5e0b6da88f index 0000000000000000000000000000000000000000..2c5d79dfddcab0410a6d1556658992f027a9a401
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -0,0 +1,3291 @@ @@ -0,0 +1,3291 @@
@@ -18597,7 +18606,7 @@ index 0000000000000000000000000000000000000000..4a385c42da7ab3be46d5e47d00daee5e
+ } + }
+ +
+ public float armorstandStepHeight = 0.0F; + public float armorstandStepHeight = 0.0F;
+ public boolean armorstandSetNameVisible = true; + public boolean armorstandSetNameVisible = false;
+ public boolean armorstandFixNametags = false; + public boolean armorstandFixNametags = false;
+ public boolean armorstandMovement = true; + public boolean armorstandMovement = true;
+ public boolean armorstandWaterMovement = true; + public boolean armorstandWaterMovement = true;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 05725e2aed4ad03685bdadbf3bb898da3e62c1b7..367180dee333b071cfed805356b1def5201efaa9 100644 index 1f4b3412396b1c5d142c0ad9123cacc2f225494b..561426280dff2af8015fec3108a8b8514d994679 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -296,7 +296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -293,7 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS; public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
private static final int SAMPLE_INTERVAL = 20; // Paper - improve server tick loop private static final int SAMPLE_INTERVAL = 20; // Paper - improve server tick loop
@Deprecated(forRemoval = true) // Paper @Deprecated(forRemoval = true) // Paper
@@ -17,7 +17,7 @@ index 05725e2aed4ad03685bdadbf3bb898da3e62c1b7..367180dee333b071cfed805356b1def5
// Spigot end // Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
public final GaleConfigurations galeConfigurations; // Gale - Gale configuration public final GaleConfigurations galeConfigurations; // Gale - Gale configuration
@@ -309,7 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -306,7 +306,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
@@ -26,7 +26,7 @@ index 05725e2aed4ad03685bdadbf3bb898da3e62c1b7..367180dee333b071cfed805356b1def5
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) { public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference(); AtomicReference<S> atomicreference = new AtomicReference();
@@ -978,6 +978,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -977,6 +977,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.error("[UPnP] Failed to close port {}", this.getPort()); LOGGER.error("[UPnP] Failed to close port {}", this.getPort());
} }
} }
@@ -34,7 +34,7 @@ index 05725e2aed4ad03685bdadbf3bb898da3e62c1b7..367180dee333b071cfed805356b1def5
// CraftBukkit start // CraftBukkit start
if (this.server != null) { if (this.server != null) {
this.server.disablePlugins(); this.server.disablePlugins();
@@ -1232,9 +1233,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1231,9 +1232,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tps15.add(currentTps, diff); tps15.add(currentTps, diff);
// Backwards compat with bad plugins // Backwards compat with bad plugins
@@ -77,7 +77,7 @@ index af4fe64e190e73dcc5f2495d0b533547d8f57f1d..1af3a2c078dc802aca2297d188c5ac06
// Gale end - MultiPaper - skip unnecessary mob spawning computations // Gale end - MultiPaper - skip unnecessary mob spawning computations
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index bda8c6af98945d3e5fa671b9b3bc016d7b384dc3..8099bcb9e66ddd0ae4518e8a0129d72823cdcff1 100644 index b9d9ef327753272a537bebccc54d9fbc16ed3bdc..f8d11853af6bfc08d1bd8a0f537fd5760bfc04be 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -843,7 +843,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -843,7 +843,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -90,7 +90,7 @@ index bda8c6af98945d3e5fa671b9b3bc016d7b384dc3..8099bcb9e66ddd0ae4518e8a0129d728
j = this.levelData.getDayTime() + 24000L; j = this.levelData.getDayTime() + 24000L;
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime());
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 88ef23e08df880d90fbf879f901c8c7afab90526..7c347b26e9d65acbdc901a7197eee1a1cbb0be40 100644 index a1fae61c8d238b06915037eacec2cb0943e8d996..47928af7b85543fe74ad7272286df4e8b1921426 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -568,13 +568,29 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -568,13 +568,29 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -136,7 +136,7 @@ index 88ef23e08df880d90fbf879f901c8c7afab90526..7c347b26e9d65acbdc901a7197eee1a1
} }
// Pufferfish end - entity TTL // Pufferfish end - entity TTL
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 8fdcb4d25f7398aad76f907be60c146413667353..c0eab84d85bdcd01058d3fa4871eb09e10b6171a 100644 index d06c5d16d312187b6a53c8995d524c0ec2d9f921..d55d869f0a389d58d001e59e26b1b5912b5c94a8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1068,17 +1068,19 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1068,17 +1068,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -238,7 +238,7 @@ index 9419f230910d0338fc4ac6e2e7b749ee7d5ee362..2fe25397526c77c3b6b5e96d71d3681c
ResourceKey<Level> resourceKey = world.dimension(); ResourceKey<Level> resourceKey = world.dimension();
BlockPos blockPos = entity.blockPosition(); BlockPos blockPos = entity.blockPosition();
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 6697cd8a632becd72ee132007a61d1221e817abf..b6920eada151e1d282bf4ef70a64558eb592f879 100644 index 92521cbedcf89a855f10a3401933acaf84bc3f98..0bd72f76a65b6248f4e700877b2bda702f9590df 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -680,7 +680,7 @@ public class ArmorStand extends LivingEntity { @@ -680,7 +680,7 @@ public class ArmorStand extends LivingEntity {
@@ -297,33 +297,21 @@ index 330d6badfbd096e4aec873dcb419df7975cb60a3..abb950417bf5db30f37e50605e897150
this.setDeltaMovement(0, this.getDeltaMovement().y, 0); this.setDeltaMovement(0, this.getDeltaMovement().y, 0);
} }
diff --git a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java diff --git a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
index 7fee1c2779ab390586b2d3f75f56890846323500..ba8912e1a16ba77db6e194923d797a383041a147 100644 index 75af21644eaf78abdebd722b671f3c47aa083a25..21d71db5ef632ae685c0a852fda54b8d6be183ee 100644
--- a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java --- a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
+++ b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java +++ b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
@@ -68,7 +68,7 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher { @@ -101,10 +101,10 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
// Gale end - branding changes - version fetcher // Gale end - branding changes - version fetcher
final Component history = getHistory();
- return history != null ? TextComponent.ofChildren(updateMessage, Component.newline(), history) : updateMessage; return switch (distance) {
+ return history != null ? Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()), history, updateMessage) : updateMessage; // Purpur - case DISTANCE_ERROR -> text("Error obtaining version information", NamedTextColor.YELLOW);
} - case 0 -> text("You are running the latest version", NamedTextColor.GREEN);
- case DISTANCE_UNKNOWN -> text("Unknown version", NamedTextColor.YELLOW);
protected @Nullable String getMinecraftVersion() { // Gale - branding changes - version fetcher - default -> text("You are " + distance + " version(s) behind", NamedTextColor.YELLOW)
@@ -120,13 +120,13 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher { + case DISTANCE_ERROR -> text("* Error obtaining version information", NamedTextColor.RED); // Purpur
+ case 0 -> text("* You are running the latest version", NamedTextColor.GREEN); // Purpur
switch (distance) { + case DISTANCE_UNKNOWN -> text("* Unknown version", NamedTextColor.YELLOW); // Purpur
case -1: + default -> text("* You are " + distance + " version(s) behind", NamedTextColor.YELLOW) // Purpur
- return Component.text("Error obtaining version information", NamedTextColor.YELLOW); .append(Component.newline())
+ return Component.text("* Error obtaining version information", NamedTextColor.RED); // Purpur .append(text("Download the new version at: ")
case 0: .append(text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher
- return Component.text("You are running the latest version", NamedTextColor.GREEN);
+ return Component.text("* You are running the latest version", NamedTextColor.GREEN); // Purpur
case -2:
- return Component.text("Unknown version", NamedTextColor.YELLOW);
+ return Component.text("* Unknown version", NamedTextColor.YELLOW); // Purpur
default:
- return Component.text("You are " + distance + " version(s) behind", NamedTextColor.YELLOW)
+ return Component.text("* You are " + distance + " version(s) behind", NamedTextColor.YELLOW) // Purpur
.append(Component.newline())
.append(Component.text("Download the new version at: ")
.append(Component.text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher

View File

@@ -7,21 +7,21 @@ Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 367180dee333b071cfed805356b1def5201efaa9..9b6e36894f545670c4581a8c8452c183336adf93 100644 index 561426280dff2af8015fec3108a8b8514d994679..68d560a5fc5b6d2f058625d4210b9a75c09e1da3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1923,7 +1923,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1922,7 +1922,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {
- return "Gale"; // Paper // Gale - branding changes - return io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper
+ return org.dreeam.leaf.config.modules.misc.ServerBrand.serverModName; // Paper // Gale - branding changes // Leaf - Configurable server mod name + return org.dreeam.leaf.config.modules.misc.ServerBrand.serverModName; // Paper // Leaf - Configurable server mod name
} }
public SystemReport fillSystemReport(SystemReport details) { public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..eb7b7b7d2d51173ce1297d618a586d4d686f8041 index 0000000000000000000000000000000000000000..7f7fe2930b2e26dd9ef4ceb0a22b005a8cc477b6
--- /dev/null --- /dev/null
+++ b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java +++ b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@@ -44,5 +44,5 @@ index 0000000000000000000000000000000000000000..eb7b7b7d2d51173ce1297d618a586d4d
+ } + }
+ +
+ @ConfigInfo(baseName = "server-mod-name") + @ConfigInfo(baseName = "server-mod-name")
+ public static String serverModName = "Leaf"; + public static String serverModName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName();
+} +}

View File

@@ -36,13 +36,13 @@ index 8f74c2ec5252b6265549589310d742337c91cb2c..8f951e3b6241d040b28d3c8b8e7d7f96
servergui.runFinalizers(); servergui.runFinalizers();
} }
diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java
index eb7b7b7d2d51173ce1297d618a586d4d686f8041..1e2afef02409dbcb26171b2cbbe905b7e6e80698 100644 index 7f7fe2930b2e26dd9ef4ceb0a22b005a8cc477b6..5c608079850c5483943669a98e2ba7e0d5a03b23 100644
--- a/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java --- a/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java
+++ b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java +++ b/src/main/java/org/dreeam/leaf/config/modules/misc/ServerBrand.java
@@ -18,4 +18,7 @@ public class ServerBrand implements IConfigModule { @@ -18,4 +18,7 @@ public class ServerBrand implements IConfigModule {
@ConfigInfo(baseName = "server-mod-name") @ConfigInfo(baseName = "server-mod-name")
public static String serverModName = "Leaf"; public static String serverModName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName();
+ +
+ @ConfigInfo(baseName = "server-gui-name") + @ConfigInfo(baseName = "server-gui-name")
+ public static String serverGUIName = "Leaf Console"; + public static String serverGUIName = "Leaf Console";

View File

@@ -935,10 +935,10 @@ index 57e76b53e5e314c3e6b8856010f7a84188121582..d6daa27a8d7aca00b181e90d789f4249
} catch (Exception exception) { } catch (Exception exception) {
if (exception instanceof ReportedException) { if (exception instanceof ReportedException) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35b823e031 100644 index 68d560a5fc5b6d2f058625d4210b9a75c09e1da3..50a275352bdd3a1deef925930b57acf176ddb2ed 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -184,8 +184,6 @@ import org.bukkit.craftbukkit.Main; @@ -181,8 +181,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
import org.bukkit.event.server.ServerLoadEvent; import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end // CraftBukkit end
@@ -947,7 +947,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable { 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 public static final int SERVER_THREAD_PRIORITY = Integer.getInteger("gale.thread.priority.server", -1); // Gale - server thread priority environment variable
@@ -969,7 +967,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -968,7 +966,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server"); MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -955,7 +955,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
// Purpur start // Purpur start
if (upnp) { if (upnp) {
if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) { if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
@@ -1400,7 +1397,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1399,7 +1396,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
protected void waitUntilNextTick() { protected void waitUntilNextTick() {
@@ -963,7 +963,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
long tickOversleepStart = System.nanoTime(); // Gale - YAPFA - last tick time long tickOversleepStart = System.nanoTime(); // Gale - YAPFA - last tick time
this.managedBlock(() -> { this.managedBlock(() -> {
return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick
@@ -1481,8 +1477,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1480,8 +1476,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return; return;
} }
@@ -972,7 +972,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
for (;;) { for (;;) {
boolean moreTasks = this.tickMidTickTasks(); boolean moreTasks = this.tickMidTickTasks();
long currTime = System.nanoTime(); long currTime = System.nanoTime();
@@ -1507,9 +1501,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1506,9 +1500,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return; return;
} }
} }
@@ -982,7 +982,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
} }
// Paper end - execute chunk tasks mid tick // Paper end - execute chunk tasks mid tick
@@ -1582,15 +1573,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1581,15 +1572,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void tickServer(BooleanSupplier shouldKeepTicking) { public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -1000,7 +1000,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
// Paper end // Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1624,11 +1614,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1623,11 +1613,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
// Paper end - Incremental chunk and player saving // Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper io.papermc.paper.util.CachedLists.reset(); // Paper
@@ -1013,7 +1013,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
// Paper start - Server Tick Events // Paper start - Server Tick Events
long endTime = System.nanoTime(); long endTime = System.nanoTime();
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime; long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
@@ -1648,7 +1634,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1647,7 +1633,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Add tick times API and /mspt command // Paper end - Add tick times API and /mspt command
this.logTickMethodTime(i); this.logTickMethodTime(i);
org.spigotmc.WatchdogThread.tick(); // Spigot org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -1021,7 +1021,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
} }
private void logTickMethodTime(long tickStartTime) { private void logTickMethodTime(long tickStartTime) {
@@ -1719,9 +1704,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1718,9 +1703,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> { this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing(); entityplayer.connection.suspendFlushing();
}); });
@@ -1031,7 +1031,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
// Paper start - Folia scheduler API // Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> { getAllLevels().forEach(level -> {
@@ -1737,20 +1720,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1736,20 +1719,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}); });
// Paper end - Folia scheduler API // Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
@@ -1052,7 +1052,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
// Send time updates to everyone, it will get the right time from the world the player is in. // Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - Perf: Optimize time updates // Paper start - Perf: Optimize time updates
for (final ServerLevel level : this.getAllLevels()) { for (final ServerLevel level : this.getAllLevels()) {
@@ -1770,7 +1748,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1769,7 +1747,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
// Paper end - Perf: Optimize time updates // Paper end - Perf: Optimize time updates
@@ -1060,7 +1060,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
@@ -1789,14 +1766,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1788,14 +1765,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end */ // CraftBukkit end */
try { try {
@@ -1075,7 +1075,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1808,21 +1783,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1807,21 +1782,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
@@ -1098,7 +1098,7 @@ index 9b6e36894f545670c4581a8c8452c183336adf93..76837c0bd930980519faf8a49e639f35
iterator = this.playerList.getPlayers().iterator(); iterator = this.playerList.getPlayers().iterator();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 615a9dfe30d51bf0aeaec301e2c5a2c7fd98c5d2..a216177a2d02d19e0277085c851d72c878910ca2 100644 index 0bba378572f01b8998fd4cad544e93b3da248f08..ee99b0e74abc6447937b1af627c10ffbeeb9e0c0 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -62,7 +62,6 @@ import org.apache.logging.log4j.Level; @@ -62,7 +62,6 @@ import org.apache.logging.log4j.Level;
@@ -1109,7 +1109,7 @@ index 615a9dfe30d51bf0aeaec301e2c5a2c7fd98c5d2..a216177a2d02d19e0277085c851d72c8
import org.bukkit.craftbukkit.util.TerminalCompletionHandler; import org.bukkit.craftbukkit.util.TerminalCompletionHandler;
import org.bukkit.craftbukkit.util.TerminalConsoleWriterThread; import org.bukkit.craftbukkit.util.TerminalConsoleWriterThread;
import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.event.server.ServerCommandEvent;
@@ -554,7 +553,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -553,7 +552,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
} }
public void handleConsoleInputs() { public void handleConsoleInputs() {
@@ -1117,7 +1117,7 @@ index 615a9dfe30d51bf0aeaec301e2c5a2c7fd98c5d2..a216177a2d02d19e0277085c851d72c8
// Paper start - Perf: use proper queue // Paper start - Perf: use proper queue
ConsoleInput servercommand; ConsoleInput servercommand;
while ((servercommand = this.serverCommandQueue.poll()) != null) { while ((servercommand = this.serverCommandQueue.poll()) != null) {
@@ -570,8 +568,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -569,8 +567,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
this.server.dispatchServerCommand(this.console, servercommand); this.server.dispatchServerCommand(this.console, servercommand);
// CraftBukkit end // CraftBukkit end
} }
@@ -1126,7 +1126,7 @@ index 615a9dfe30d51bf0aeaec301e2c5a2c7fd98c5d2..a216177a2d02d19e0277085c851d72c8
} }
@Override @Override
@@ -843,23 +839,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -842,23 +838,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (event.isCancelled()) { if (event.isCancelled()) {
return; return;
} }
@@ -1151,7 +1151,7 @@ index 615a9dfe30d51bf0aeaec301e2c5a2c7fd98c5d2..a216177a2d02d19e0277085c851d72c8
// Paper start // Paper start
if (waitableArray[0] != null) { 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 diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index c8b898e8482f846641505531e8286d9d113c92f9..c700bb52cd7cfc264c0353d3b832547f7e336e32 100644 index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8b5f9a3a0 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -1337,7 +1337,7 @@ index 1af3a2c078dc802aca2297d188c5ac068e073d26..e769e8d8e853b2731d85b75d273b029f
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 8099bcb9e66ddd0ae4518e8a0129d72823cdcff1..2d649d98985203005f3e423d61e88a8ec7dbc380 100644 index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a412daea5 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
@@ -1518,35 +1518,6 @@ index 8099bcb9e66ddd0ae4518e8a0129d72823cdcff1..2d649d98985203005f3e423d61e88a8e
// Paper - rewrite chunk system - entity saving moved into ChunkHolder // Paper - rewrite chunk system - entity saving moved into ChunkHolder
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system } 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 8432a36a7b047cf2d930735feb426233769e1931..a42431f9788fbb75eb3daae4b7be7f8261056dcc 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2555,7 +2555,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
- co.aikar.timings.MinecraftTimings.playerCommandTimer.startTiming(); // Paper
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2565,7 +2564,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
- co.aikar.timings.MinecraftTimings.playerCommandTimer.stopTiming(); // Paper
return;
}
@@ -2577,8 +2575,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;
- } finally {
- co.aikar.timings.MinecraftTimings.playerCommandTimer.stopTiming(); // Paper
}
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 743e1487048f70ed577452c27c7919d74d26ab19..c9673051ce9f4096b981087eefe8b72bbe34819a 100644 index 743e1487048f70ed577452c27c7919d74d26ab19..c9673051ce9f4096b981087eefe8b72bbe34819a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1862,10 +1833,10 @@ index 35147d7a6649708c2b068065eb44831f40c3ab8e..1a2ef85cd8a62824b23f4212a5e2a70c
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 483e16f27cd07cc9a0276db9cb9d84d8a41f97d0..141056d003eaaee8b2a436554733e52d7d74689d 100644 index 2a2f979fad5710ed35991671e54d1c2d52b95bbe..aa588fe83d508e1888ce9fb1c9fa9c1fe54d4cef 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -470,7 +470,6 @@ public final class CraftServer implements Server { @@ -472,7 +472,6 @@ public final class CraftServer implements Server {
this.saveCommandsConfig(); this.saveCommandsConfig();
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1874,10 +1845,10 @@ index 483e16f27cd07cc9a0276db9cb9d84d8a41f97d0..141056d003eaaee8b2a436554733e52d
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave"); console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); 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 diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 49aa5493f65e6e53553290ab82f91632e9dd6d20..27edd8f2dec9426fb2b51641305a1c13c307a970 100644 index 1b85f74a74b41d1f715abc55bf49613abbc3c97a..fa843d5b5ac9e0fe8886a95246a999ac02aacd6f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -374,8 +374,6 @@ public class Main { @@ -375,8 +375,6 @@ public class Main {
tryPreloadClass("org.jline.terminal.impl.MouseSupport"); tryPreloadClass("org.jline.terminal.impl.MouseSupport");
tryPreloadClass("org.jline.terminal.impl.MouseSupport$1"); tryPreloadClass("org.jline.terminal.impl.MouseSupport$1");
tryPreloadClass("org.jline.terminal.Terminal$MouseTracking"); tryPreloadClass("org.jline.terminal.Terminal$MouseTracking");
@@ -2027,10 +1998,10 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab3
} }
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index d67089b621f3ba07f3cf4cd64ee6ccb99ed23445..44153969844ac521cc082c9bdb3bd02e100f2b7e 100644 index fbb137b8e9bdf0376d346894b7939936647b3856..1a60d80553d9f242cb56fa044db241611d973de1 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -214,9 +214,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -218,9 +218,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
// ======================================================================== // ========================================================================
// Paper start // Paper start
@Override @Override
@@ -2041,7 +2012,7 @@ index d67089b621f3ba07f3cf4cd64ee6ccb99ed23445..44153969844ac521cc082c9bdb3bd02e
// Paper end // Paper end
public static byte toLegacyData(BlockState data) { public static byte toLegacyData(BlockState data) {
@@ -502,7 +500,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -506,7 +504,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
// Paper start // Paper start
@Override @Override
public String getTimingsServerName() { public String getTimingsServerName() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index aa9098d9a86ccac64777aeba875d724a6691c588..2def87c5f8db38e0736f4fea641aeca54ec91d07 100644 index 431ac399769057642fdf4694b68d84b4423a7103..fa5b046a865672cfa9e9eabcb54236455e2193f5 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -31,7 +31,7 @@ dependencies { @@ -25,7 +25,7 @@ dependencies {
// Leaf end - Legacy config // Leaf end - Legacy config
// Paper start // Paper start
@@ -17,7 +17,7 @@ index aa9098d9a86ccac64777aeba875d724a6691c588..2def87c5f8db38e0736f4fea641aeca5
implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file
/* /*
@@ -40,28 +40,32 @@ dependencies { @@ -34,28 +34,32 @@ dependencies {
all its classes to check if they are plugins. all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start. Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/ */
@@ -58,7 +58,7 @@ index aa9098d9a86ccac64777aeba875d724a6691c588..2def87c5f8db38e0736f4fea641aeca5
// Purpur start // Purpur start
implementation("org.mozilla:rhino-runtime:1.7.14") implementation("org.mozilla:rhino-runtime:1.7.14")
@@ -69,7 +73,7 @@ dependencies { @@ -63,7 +67,7 @@ dependencies {
implementation("dev.omega24:upnp4j:1.0") implementation("dev.omega24:upnp4j:1.0")
// Purpur end // Purpur end
@@ -67,7 +67,7 @@ index aa9098d9a86ccac64777aeba875d724a6691c588..2def87c5f8db38e0736f4fea641aeca5
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testImplementation("org.hamcrest:hamcrest:2.2") testImplementation("org.hamcrest:hamcrest:2.2")
testImplementation("org.mockito:mockito-core:5.11.0") testImplementation("org.mockito:mockito-core:5.11.0")
@@ -83,6 +87,8 @@ dependencies { @@ -77,6 +81,8 @@ dependencies {
implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion") implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion")
implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion") implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion")
// Paper end - Remap reflection // Paper end - Remap reflection

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi 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 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 88948526f9acf4bb2157484b80891902fd843b02..1e5fb608ff04d2e9ae8db30896eb88fde914b8af 100644 index 241340a6d66f17f2a31fb03ff0dfab121b856368..f2f6184589c72b82d041abae2c978edf084cc63f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3619,4 +3619,27 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3616,4 +3616,27 @@ 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))); this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message)));
} }
// Purpur end // Purpur end

View File

@@ -7,7 +7,7 @@ Original license: GPLv3
Original project: https://github.com/LeavesMC/Leaves 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 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 7c347b26e9d65acbdc901a7197eee1a1cbb0be40..8b314a1ad2bf833cee950471d63e5538192bb1ab 100644 index 47928af7b85543fe74ad7272286df4e8b1921426..638709c6393cb7f3ca4e3328b50ae8c0294953e1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -431,6 +431,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -431,6 +431,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -38,7 +38,7 @@ index 7c347b26e9d65acbdc901a7197eee1a1cbb0be40..8b314a1ad2bf833cee950471d63e5538
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
@@ -5217,4 +5224,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5223,4 +5230,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// Purpur end // Purpur end

View File

@@ -16,7 +16,7 @@ This seems stupid, but it does seem that it improves the performance a bit, and
We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice. We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 3852985ebf9643f6b1b17a3d090175800bcdd079..4f2f652cf7403221226e524586aa73feecd0d103 100644 index 5e95d84c37d2d36d62a0b5b3f55bf28bd40bf7ee..2109fedc6d09fb783e0042289a9c5d372933f4ff 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1434,7 +1434,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1434,7 +1434,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -29,7 +29,7 @@ index 3852985ebf9643f6b1b17a3d090175800bcdd079..4f2f652cf7403221226e524586aa73fe
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d2e869d35bfb12fe2e0fe1c4e144446883166dd3..65105a4fc797c9d7767fa9f837d9cef08f3f46ab 100644 index bbc8135343b8206c5348eab802a257555b16836f..3bb35f002cecee7b5ffac8f8aedcce2336d662f1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -198,7 +198,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -198,7 +198,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -56,6 +56,6 @@ index d2e869d35bfb12fe2e0fe1c4e144446883166dd3..65105a4fc797c9d7767fa9f837d9cef0
+ } + }
+ // SparklyPaper end + // SparklyPaper end
+ +
public boolean canSee(UUID uuid) { public boolean canSeePlayer(UUID uuid) {
org.bukkit.entity.Entity entity = this.getServer().getPlayer(uuid); org.bukkit.entity.Entity entity = this.getServer().getPlayer(uuid);
if (entity == null) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Including 5s in getTPS()
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f17eb11741d09f9b04eac98918261680b600749a..25cbef3e87fd9924a86b019355df922eaf3773e1 100644 index aa588fe83d508e1888ce9fb1c9fa9c1fe54d4cef..8d282abbf968ddab0f660a29b2a37bf7d569c481 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3170,6 +3170,8 @@ public final class CraftServer implements Server { @@ -3156,6 +3156,8 @@ public final class CraftServer implements Server {
@Override @Override
public double[] getTPS() { public double[] getTPS() {

View File

@@ -9,7 +9,7 @@ AFK command & command cooldown
AFK title message AFK title message
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 6ad5245aebba43abf10fe980e63a8872e3e15484..9f48fc9bc38e0138c45000456a49c78d310b4959 100644 index c0bd91b1cab7066f9582d2c734f61ee50e76098d..13d066f4d0c115445b807db22d365ad14926b734 100644
--- a/src/main/java/net/minecraft/commands/Commands.java --- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -250,6 +250,7 @@ public class Commands { @@ -250,6 +250,7 @@ public class Commands {
@@ -21,7 +21,7 @@ index 6ad5245aebba43abf10fe980e63a8872e3e15484..9f48fc9bc38e0138c45000456a49c78d
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 7fc94ec08f6bd9649ad9168ea3b9aa6ac9bf60e0..2fac364c8ce66a4c00b65adc4c723b734e165ddc 100644 index 3bbb3b5444976c859d7f357aa4283947b45f3100..cc9f8e8f871b64028351e4d061b7f01d1b9ca0be 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2369,6 +2369,8 @@ public class ServerPlayer extends Player { @@ -2369,6 +2369,8 @@ public class ServerPlayer extends Player {
@@ -42,9 +42,9 @@ index 7fc94ec08f6bd9649ad9168ea3b9aa6ac9bf60e0..2fac364c8ce66a4c00b65adc4c723b73
+ +
getBukkitEntity().setPlayerListName(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix + prefix + scoreboardName + suffix + org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, true); getBukkitEntity().setPlayerListName(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix + prefix + scoreboardName + suffix + org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, true);
} else { } else {
getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix); getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1acac1e6288e67db00599f98fbdf8ba12702c11a..5fe21ffe8a868184b909e444798701fab52e91c1 100644 index cc9c30b8555e0509162a82c4a01de9fc51ba59af..7830e21dce33ad389441227d728750606dcd3c56 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2254,8 +2254,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2254,8 +2254,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -83,7 +83,7 @@ index 1acac1e6288e67db00599f98fbdf8ba12702c11a..5fe21ffe8a868184b909e444798701fa
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands // CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
if (this.player.hasDisconnected()) { if (this.player.hasDisconnected()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 300d5144d828330e3de934b1026a0f1b96496d79..e49f813b4ccb698d9d50c8c827d789d2a5274acf 100644 index 276e605eae9034a19a382c36df04fcef8b7e3d9f..fef833511a749593d4ecf4ec82f940855ace1598 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -176,9 +176,13 @@ public class PurpurConfig { @@ -176,9 +176,13 @@ public class PurpurConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Virtual Thread for async scheduler
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index f236e7c56c6c72f3fcdba8314f258026e6561ecb..05b4d0ae35f203a62079cf19285d09d9d355a033 100644 index fa843d5b5ac9e0fe8886a95246a999ac02aacd6f..b547c95d50ade495940c146ec5c39e4ef7d1d79e 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -386,7 +386,6 @@ public class Main { @@ -387,7 +387,6 @@ public class Main {
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1"); tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1");
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2"); tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2");
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3"); tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3");

View File

@@ -71,10 +71,10 @@ index 50dc68a005490415b88780397ef6c26859596dd5..162115048cffc824376e54b7f60ae071
public static record Favicon(byte[] iconBytes) { public static record Favicon(byte[] iconBytes) {
private static final String PREFIX = "data:image/png;base64,"; private static final String PREFIX = "data:image/png;base64,";
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index a216177a2d02d19e0277085c851d72c878910ca2..e21b5f7d1e6f951865094be7ed824b38d4d3c499 100644 index ee99b0e74abc6447937b1af627c10ffbeeb9e0c0..18554ce89a6de5dc6a8116e27f7210c013469c21 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -702,6 +702,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -701,6 +701,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@Override @Override
public boolean enforceSecureProfile() { public boolean enforceSecureProfile() {
@@ -83,7 +83,7 @@ index a216177a2d02d19e0277085c851d72c878910ca2..e21b5f7d1e6f951865094be7ed824b38
// Paper start - Add setting for proxy online mode status // Paper start - Add setting for proxy online mode status
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index f74f1411384945498823fbdcf9d2e0ce4fc3e8ae..98b081392d6d6fdfced4e25fe68224065ad0910a 100644 index 4ff90467343ab5f9e6f40d77a7399456626cabda..97091e594b77c7d65c4b3fffad8f483d9bf1a2f7 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -329,10 +329,29 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -329,10 +329,29 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Cache player profileResult
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 7c663d28213322165245c6946c6a73cbc5cbf50b..506bdb19310291ec8770226cdcfbd0e104f5ba7e 100644 index fa5b046a865672cfa9e9eabcb54236455e2193f5..d0a7999ae12f0e5314234ca6a97d5cd8124bd702 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -30,6 +30,10 @@ dependencies { @@ -24,6 +24,10 @@ dependencies {
} }
// Leaf end - Legacy config // Leaf end - Legacy config

View File

@@ -70,7 +70,7 @@ index e6f6304724ae6acaf94ed9553c90c9650be5c0c6..e0f13719a239a2e06330b03a2e4b8d57
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index aa831bc5ffa44c55da9eea33c72df1d6d68c861a..3baae2d8f55101fe17f43caefe38583b2ebb582c 100644 index 2cb1ce10c24f3a18d2d486c6d63cd24b1f3de2be..dced0a22e924838b13edd0c24a7d3fb3de9242d6 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -180,6 +180,10 @@ import org.bukkit.event.weather.LightningStrikeEvent; @@ -180,6 +180,10 @@ import org.bukkit.event.weather.LightningStrikeEvent;
@@ -581,10 +581,10 @@ index 82b4bd669c57b18fb0b443bcd94495023cd5a528..2d336a8bb12e9e41b717caf883d39de1
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 25cbef3e87fd9924a86b019355df922eaf3773e1..cbe7e050d0651d06fdc6a08331142914b8c49920 100644 index 8d282abbf968ddab0f660a29b2a37bf7d569c481..3043b7a53269ed17aae3a531f495600d336a376a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -270,6 +270,10 @@ import net.md_5.bungee.api.chat.BaseComponent; // Spigot @@ -266,6 +266,10 @@ import net.md_5.bungee.api.chat.BaseComponent; // Spigot
import javax.annotation.Nullable; // Paper import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper import javax.annotation.Nonnull; // Paper
@@ -593,9 +593,9 @@ index 25cbef3e87fd9924a86b019355df922eaf3773e1..cbe7e050d0651d06fdc6a08331142914
+// Leaf end - Matter +// Leaf end - Matter
+ +
public final class CraftServer implements Server { public final class CraftServer implements Server {
private final String serverName = "Leaf"; // Paper // Gale - branding changes // Leaf private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper
private final String serverVersion; private final String serverVersion;
@@ -1374,7 +1378,7 @@ public final class CraftServer implements Server { @@ -1360,7 +1364,7 @@ public final class CraftServer implements Server {
iregistrycustom_dimension = leveldataanddimensions.dimensions().dimensionsRegistryAccess(); iregistrycustom_dimension = leveldataanddimensions.dimensions().dimensionsRegistryAccess();
} else { } else {
LevelSettings worldsettings; LevelSettings worldsettings;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Ignore terminal provider warning
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 05b4d0ae35f203a62079cf19285d09d9d355a033..b6c68c250826698c058b95642850ec42645de2f7 100644 index b547c95d50ade495940c146ec5c39e4ef7d1d79e..1bcca095e70f586af1758447c29314a4256666ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -353,6 +353,9 @@ public class Main { @@ -354,6 +354,9 @@ public class Main {
// Paper end - Log Java and OS versioning to help with debugging plugin issues // Paper end - Log Java and OS versioning to help with debugging plugin issues
printlnStartupInfoToSystemOut("Loading libraries, please wait..."); // Gale - include time in startup logs printlnStartupInfoToSystemOut("Loading libraries, please wait..."); // Gale - include time in startup logs

View File

@@ -7,10 +7,10 @@ Revert to old console provider, Fix https://github.com/PaperMC/Paper/issues/1040
Solution refers to https://inside.java/2023/07/31/quality-heads-up Solution refers to https://inside.java/2023/07/31/quality-heads-up
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index b6c68c250826698c058b95642850ec42645de2f7..b4599dae7bc59e67eee22a7b70d148d4f63669b5 100644 index 1bcca095e70f586af1758447c29314a4256666ce..d1565ffdb17460df4d788652e1c1afffba4e82d6 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -355,6 +355,7 @@ public class Main { @@ -356,6 +356,7 @@ public class Main {
printlnStartupInfoToSystemOut("Loading libraries, please wait..."); // Gale - include time in startup logs printlnStartupInfoToSystemOut("Loading libraries, please wait..."); // Gale - include time in startup logs
System.setProperty("org.jline.terminal.disableDeprecatedProviderWarning", "true"); // Leaf - Ignore terminal provider warning System.setProperty("org.jline.terminal.disableDeprecatedProviderWarning", "true"); // Leaf - Ignore terminal provider warning

View File

@@ -0,0 +1,111 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
Date: Thu, 9 May 2024 20:30:32 -0400
Subject: [PATCH] Skip null banner pattern
Try to fix https://github.com/PaperMC/Paper/issues/10677
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 16dba0fe00150ea919deff052b5dc7a2732741c1..f838839aba8b00474c6f7c95c37a88bb3bf4a884 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -377,6 +377,7 @@ public abstract class PlayerList {
ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); // Paper - Add Listing API for Player
final List<ServerPlayer> onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - Use single player info update packet on join
+ System.out.println("看380: " + this.players.size());
for (int i = 0; i < this.players.size(); ++i) {
ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i);
@@ -698,6 +699,7 @@ public abstract class PlayerList {
// CraftBukkit start
// this.broadcastAll(new ClientboundPlayerInfoRemovePacket(List.of(entityplayer.getUUID())));
ClientboundPlayerInfoRemovePacket packet = new ClientboundPlayerInfoRemovePacket(List.of(entityplayer.getUUID()));
+ System.out.println("看702: " + this.players.size());
for (int i = 0; i < this.players.size(); i++) {
ServerPlayer entityplayer2 = (ServerPlayer) this.players.get(i);
@@ -724,6 +726,7 @@ public abstract class PlayerList {
ServerPlayer entityplayer;
+ System.out.println("看729: " + this.players.size());
for (int i = 0; i < this.players.size(); ++i) {
entityplayer = (ServerPlayer) this.players.get(i);
if (entityplayer.getUUID().equals(uuid) || (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && entityplayer.getGameProfile().getName().equalsIgnoreCase(gameprofile.getName()))) { // Paper - validate usernames
@@ -776,6 +779,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure
} else {
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null;
+ System.out.println("看782: " + this.players.size());
if (this.players.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameprofile))) { // Purpur
event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
}
@@ -1080,6 +1084,7 @@ public abstract class PlayerList {
for (ServerPlayer targetPlayer : sendAllPlayerInfoBucket) {
// Gale end - Purpur - spread out sending all player info
var target = targetPlayer.getBukkitEntity();;
+ System.out.println("看1087: " + this.players.size());
final List<ServerPlayer> list = new java.util.ArrayList<>(this.players.size());
for (ServerPlayer player : this.players) {
if (target.canSee(player.getUUID())) {
@@ -1111,6 +1116,7 @@ public abstract class PlayerList {
// CraftBukkit start - add a world/entity limited version
public void broadcastAll(Packet packet, net.minecraft.world.entity.player.Player entityhuman) {
+ System.out.println("看1119: " + this.players.size());
for (int i = 0; i < this.players.size(); ++i) {
ServerPlayer entityplayer = this.players.get(i);
if (entityhuman != null && !entityplayer.getBukkitEntity().canSee(entityhuman.getBukkitEntity())) {
@@ -1121,6 +1127,7 @@ public abstract class PlayerList {
}
public void broadcastAll(Packet packet, Level world) {
+ System.out.println("看1130: " + this.players.size());
for (int i = 0; i < world.players().size(); ++i) {
((ServerPlayer) world.players().get(i)).connection.send(packet);
}
@@ -1180,6 +1187,7 @@ public abstract class PlayerList {
if (scoreboardteam == null) {
this.broadcastSystemMessage(message, false);
} else {
+ System.out.println("看1190: " + this.players.size());
for (int i = 0; i < this.players.size(); ++i) {
ServerPlayer entityplayer = (ServerPlayer) this.players.get(i);
@@ -1192,6 +1200,7 @@ public abstract class PlayerList {
}
public String[] getPlayerNamesArray() {
+ System.out.println("看1203: " + this.players.size());
String[] astring = new String[this.players.size()];
for (int i = 0; i < this.players.size(); ++i) {
@@ -1307,6 +1316,7 @@ public abstract class PlayerList {
}
public void broadcast(@Nullable net.minecraft.world.entity.player.Player player, double x, double y, double z, double distance, ResourceKey<Level> worldKey, Packet<?> packet) {
+ System.out.println("看1319: " + this.players.size());
for (int i = 0; i < this.players.size(); ++i) {
ServerPlayer entityplayer = (ServerPlayer) this.players.get(i);
@@ -1338,6 +1348,7 @@ public abstract class PlayerList {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
int numSaved = 0;
long now = MinecraftServer.currentTick;
+ System.out.println("看1351: " + this.players.size());
for (int i = 0; i < this.players.size(); ++i) {
ServerPlayer entityplayer = this.players.get(i);
if (interval == -1 || now - entityplayer.lastSave >= interval) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java
index 6a3b0c7f0cc3ffb17a231383ad103fa792d7b7ba..3286a2a485dab1fb35910ffa350b1d85fde3ad80 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java
@@ -79,6 +79,7 @@ public class CraftMetaBanner extends CraftMetaItem implements BannerMeta {
List<BannerPatternLayers.Layer> patterns = entityTag.layers();
for (int i = 0; i < Math.min(patterns.size(), 20); i++) {
BannerPatternLayers.Layer p = patterns.get(i);
+ if (p.pattern() == null || p.pattern().value() == null) continue; // Leaf - Skip null banner pattern
DyeColor color = DyeColor.getByWoolData((byte) p.color().getId());
PatternType pattern = CraftPatternType.minecraftHolderToBukkit(p.pattern());