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

Updated Upstream (Paper/Gale/Purpur)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@30fdfb1a [ci/skip] Fix docs for DamageResistant (#11992)
PaperMC/Paper@6b7650d8 Only add goat horn once (#12001)
PaperMC/Paper@30046e04 Fix a rare crash with a concurrent modification of scaled health attributes (#12002)
PaperMC/Paper@88bbead1 Flush regionfiles on save configuration option
PaperMC/Paper@336ea9df Check for empty when sending equipment changes (#12008)
PaperMC/Paper@939bb782 Add RayTraceConfigurationBuilder (#11907)
PaperMC/Paper@81bb82f5 Fix wrong piston world border check (#12007)
PaperMC/Paper@ce95b5d6 Use proper default for setting null display background color (#12010)
PaperMC/Paper@2477f1f6 [ci/skip] fix and improvements for docs in ConsumeEffect component (#11998)
PaperMC/Paper@fb5b173c Add PlayerClientLoadedWorldEvent (#11940)
PaperMC/Paper@3af5e771 Add Player#give (#11995)
PaperMC/Paper@7e21cb81 fix PlayerChangedMainHandEvent javadoc (#12020)
PaperMC/Paper@5a34bf04 Correctly retrun true for empty input shapes in EntityGetter#isUnobstructed
PaperMC/Paper@a392d475 Make Watchdog thread extend TickThread

Gale Changes:
Dreeam-qwq/Gale@f9080a7e Updated Upstream (Paper)
Dreeam-qwq/Gale@ff0596c1 [ci/skip] Fix upstream commit sh on mac
Dreeam-qwq/Gale@24970274 [ci/skip] Hermanez - Wutaf
Dreeam-qwq/Gale@85eabf60 [ci/skip] cleanup
Dreeam-qwq/Gale@7d9faf00 [ci/skip] cleanup & drop xor-shift random
Dreeam-qwq/Gale@7af04981 [ci/skip] cleanup
Dreeam-qwq/Gale@4d5d39df [ci/skip] Remove useless params standardize in upstream commit generator
Dreeam-qwq/Gale@964f16ff Updated Upstream (Paper)
Dreeam-qwq/Gale@0566a223 [ci/skip] cleanup
Dreeam-qwq/Gale@5e3f6740 [ci/skip] cleanup work finished
Dreeam-qwq/Gale@98a66cfb Updated Upstream (Paper)
Dreeam-qwq/Gale@f7736578 [ci/skip] Update upstreamCommit.sh
Dreeam-qwq/Gale@1c46c816 Updated Upstream (Paper)
Dreeam-qwq/Gale@2b0a4c09 [ci/skip] Skip tests during auto update validate phase

Purpur Changes:
PurpurMC/Purpur@4a0a86b9 Updated Upstream (Paper)
PurpurMC/Purpur@7399988c Fix hover in /plugins
PurpurMC/Purpur@5e5857dc [ci/skip] modify ci skip references in paper upstream commits
PurpurMC/Purpur@5583a3f1 Updated Upstream (Paper)
This commit is contained in:
Dreeam
2025-01-27 20:08:18 -05:00
parent 223056a930
commit d06fb16da3
51 changed files with 281 additions and 285 deletions

View File

@@ -60,7 +60,7 @@ jobs:
if ! git diff --quiet; then if ! git diff --quiet; then
echo "Running tests...." echo "Running tests...."
./gradlew applyAllPatches ./gradlew applyAllPatches
./gradlew build ./gradlew build -x test
./gradlew rebuildAllServerPatches ./gradlew rebuildAllServerPatches
fi fi

View File

@@ -2,7 +2,7 @@ group=cn.dreeam.leaf
mcVersion=1.21.4 mcVersion=1.21.4
version=1.21.4-R0.1-SNAPSHOT version=1.21.4-R0.1-SNAPSHOT
galeCommit=b8d86ad9ba8d5cfaf304386e47b4fb18b1f57e8c galeCommit=2b0a4c09f09e18fa80b1b34366ef0c035b819552
org.gradle.configuration-cache=true org.gradle.configuration-cache=true
org.gradle.caching=true org.gradle.caching=true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaf config
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 2dccd3f72e188a34c9cdf80816aadb0c79351279..5e1cc13695ce58aadb882c03ed4259f8ad843730 100644 index 1b075b1797e11785e6a463457678ab1033dc5399..7ffe592b88d5f57723c9373f326e09e68da716bd 100644
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -2383,6 +2383,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -2382,6 +2382,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Paper end // Paper end

View File

@@ -6,7 +6,7 @@ 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: 4b74604c1f9f84e87f91dd390c83850f088a736b Commit: 5583a3f19b75a9d07367e2ca80adbbafa9af6593
Patches listed below are removed in this patch, They exists in Gale or Leaf: Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "co/aikar/timings/TimedEventExecutor.java.patch" * "co/aikar/timings/TimedEventExecutor.java.patch"
@@ -70,10 +70,10 @@ index 6b2f6ab137ae37ff0db4827886614436b7ed5dcb..66a9fc729182476c4f601cdb32bcb109
/** /**
* The brand id for Pufferfish. * The brand id for Pufferfish.
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 6c24786d349b88b414a1d96e4c0415f75d8fa545..196109f427fb1169785b82b4cfb52c53329d2bea 100644 index c3cdfd40386b0844712e9561b35e7acc6f83142b..d67af3fdc4434817cea29673069430a33fb30a8e 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
@@ -3047,4 +3047,133 @@ public final class Bukkit { @@ -3046,4 +3046,133 @@ public final class Bukkit {
public static Server.Spigot spigot() { public static Server.Spigot spigot() {
return server.spigot(); return server.spigot();
} }
@@ -446,10 +446,10 @@ index 5622fe3165baad8138c22cfc016ed6c3834cf702..6d31b561d915180fcd473b317721064f
+ // Purpur end - OfflinePlayer API + // Purpur end - OfflinePlayer API
} }
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 5e1cc13695ce58aadb882c03ed4259f8ad843730..02fb928e8c44bdbfc948079ccc2eba40c4621ae6 100644 index 7ffe592b88d5f57723c9373f326e09e68da716bd..6790ca1648a17cf30063522f68b3ac3e82e3bd8c 100644
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -2383,6 +2383,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -2382,6 +2382,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Paper end // Paper end
@@ -468,7 +468,7 @@ index 5e1cc13695ce58aadb882c03ed4259f8ad843730..02fb928e8c44bdbfc948079ccc2eba40
// Leaf start - Leaf config - API // Leaf start - Leaf config - API
@NotNull @NotNull
public org.bukkit.configuration.file.YamlConfiguration getLeafConfig() public org.bukkit.configuration.file.YamlConfiguration getLeafConfig()
@@ -2740,4 +2752,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -2739,4 +2751,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/ */
long getLastTickOversleepTime(); long getLastTickOversleepTime();
// Gale end - YAPFA - last tick time - API // Gale end - YAPFA - last tick time - API
@@ -581,10 +581,10 @@ index 5e1cc13695ce58aadb882c03ed4259f8ad843730..02fb928e8c44bdbfc948079ccc2eba40
+ // Purpur end - Debug Marker API + // Purpur end - Debug Marker API
} }
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index e99fa923d35b6dda0b02968bdcf6b43552517ea4..5ee6f017101a05b568b69627b1819d63dbe8094e 100644 index 8784842d14bbbe7dbde181e86782a0955be66924..3af8eb8064aeafa3606fed23e7ca2bc74c194726 100644
--- a/src/main/java/org/bukkit/World.java --- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java
@@ -4238,6 +4238,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -4253,6 +4253,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@Nullable @Nullable
public DragonBattle getEnderDragonBattle(); public DragonBattle getEnderDragonBattle();
@@ -1010,13 +1010,13 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 1ee59ed42de64ae1a0a580b3f640cdcb5f51c71b..886a954b1a12e895f5d54fd35a9acb36673e3733 100644 index f9b3ecbab5826efb50adc2e1831051232e6b3b22..c39bd414cb3b1e12867cfee150f0ccfc9ba56ce8 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3902,4 +3902,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3938,4 +3938,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return the result of this method, holding leftovers and spawned items.
*/ */
void sendEntityEffect(org.bukkit.@NotNull EntityEffect effect, @NotNull Entity target); @NotNull PlayerGiveResult give(@NotNull Collection<@NotNull ItemStack> items, boolean dropIfFull);
// Paper end - entity effect API
+ +
+ // Purpur start + // Purpur start
+ /** + /**

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/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 886a954b1a12e895f5d54fd35a9acb36673e3733..1df8a2ceb4df1ea14d9d936a9389d9d44fd91b55 100644 index c39bd414cb3b1e12867cfee150f0ccfc9ba56ce8..a7abbf0b8645f394a30dc27995919a32c7a424d5 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -4021,4 +4021,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -4057,4 +4057,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
sendDeathScreen(message); sendDeathScreen(message);
} }
// Purpur end // Purpur end

View File

@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com> Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 02cf7995d15487a4958ba5a5a19018d24d707b80..31fcd0512b8b9ad2a36d8338c581972a450cda7c 100644 index a7abbf0b8645f394a30dc27995919a32c7a424d5..425062e31d81cd160f4e3d896741f28ac1e91d05 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3732,6 +3732,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3734,6 +3734,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName(); String getClientBrandName();
// Paper end // Paper end

View File

@@ -11,10 +11,10 @@ Original project: https://github.com/LeavesMC/Leaves
This patch is Powered by ReplayMod(https://github.com/ReplayMod) This patch is Powered by ReplayMod(https://github.com/ReplayMod)
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 196109f427fb1169785b82b4cfb52c53329d2bea..3e999a4805fbf733dc1530e7dbf23aa10642cb39 100644 index d67af3fdc4434817cea29673069430a33fb30a8e..1e32c10f3e7687cbd55985a2e03f0ab6c5f93b31 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
@@ -3048,6 +3048,7 @@ public final class Bukkit { @@ -3047,6 +3047,7 @@ public final class Bukkit {
return server.spigot(); return server.spigot();
} }
@@ -22,7 +22,7 @@ index 196109f427fb1169785b82b4cfb52c53329d2bea..3e999a4805fbf733dc1530e7dbf23aa1
// Purpur start - Bring back server name // Purpur start - Bring back server name
/** /**
* Get the name of this server * Get the name of this server
@@ -3176,4 +3177,10 @@ public final class Bukkit { @@ -3175,4 +3176,10 @@ public final class Bukkit {
server.clearBlockHighlights(); server.clearBlockHighlights();
} }
// Purpur end - Debug Marker API // Purpur end - Debug Marker API
@@ -34,7 +34,7 @@ index 196109f427fb1169785b82b4cfb52c53329d2bea..3e999a4805fbf733dc1530e7dbf23aa1
+ // Leaves end - Photographer API + // Leaves end - Photographer API
} }
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 335db5f0893df51c65c5aab7f11fd6aef59a191d..78ddb4f8e90d797920ed7664055ba81d3c7cde41 100644 index 6790ca1648a17cf30063522f68b3ac3e82e3bd8c..223f3a4545996073872d1650c9a84feacfd2c493 100644
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -66,6 +66,7 @@ import org.jetbrains.annotations.ApiStatus; @@ -66,6 +66,7 @@ import org.jetbrains.annotations.ApiStatus;
@@ -45,7 +45,7 @@ index 335db5f0893df51c65c5aab7f11fd6aef59a191d..78ddb4f8e90d797920ed7664055ba81d
/** /**
* Represents a server implementation. * Represents a server implementation.
@@ -2859,4 +2860,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -2858,4 +2859,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/ */
void clearBlockHighlights(); void clearBlockHighlights();
// Purpur end - Debug Marker API // Purpur end - Debug Marker API

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
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 fab5d5af9ec6a20810ce5e437dd617684cc5768f..1d9acb46d69e34b7e0a38b6a02334b1a3472ff2b 100644 index 38ecc4a0ea6e9a7f4c3a01077b7fc6f04fa20d80..6c99f64eca1fa68bb4714021cefb999dcd335b21 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
@@ -101,10 +101,10 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher { @@ -101,10 +101,10 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
@@ -20,9 +20,9 @@ index fab5d5af9ec6a20810ce5e437dd617684cc5768f..1d9acb46d69e34b7e0a38b6a02334b1a
+ case 0 -> text("* You are running the latest version", NamedTextColor.GREEN); // Purpur - Rebrand + case 0 -> text("* You are running the latest version", NamedTextColor.GREEN); // Purpur - Rebrand
+ case DISTANCE_UNKNOWN -> text("* Unknown version", NamedTextColor.YELLOW); // Purpur - Rebrand + case DISTANCE_UNKNOWN -> text("* Unknown version", NamedTextColor.YELLOW); // Purpur - Rebrand
+ default -> text("* You are " + distance + " version(s) behind", NamedTextColor.YELLOW) // Purpur - Rebrand + default -> text("* You are " + distance + " version(s) behind", NamedTextColor.YELLOW) // Purpur - Rebrand
.append(Component.newline()) .append(Component.newline())
.append(text("Download the new version at: ") .append(text("Download the new version at: ")
.append(text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher .append(text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher
@@ -149,6 +149,6 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher { @@ -149,6 +149,6 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
return null; return null;
} }

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/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
index a12b0fa0df84fc44861cebbfbdc4a06a990accce..37896174667b884fcdc83b0a613686d76b66f247 100644 index 34cccb190510c041062858fca20cc40ea5be5f9e..f550c88d125ffafebfad7663088c080bbf771665 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
@@ -120,7 +120,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { @@ -132,7 +132,7 @@ public class GaleWorldConfiguration extends ConfigurationPart {
} }

View File

@@ -9,10 +9,10 @@ But still recommend to turn-off `checkForMinecartNearItemWhileActive`
Since `Reduce-hopper-item-checks.patch` will cause lag under massive dropped items Since `Reduce-hopper-item-checks.patch` will cause lag under massive dropped items
diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
index 37896174667b884fcdc83b0a613686d76b66f247..81e853a10028d7ae4cf58a722fffdaa5a121932e 100644 index f550c88d125ffafebfad7663088c080bbf771665..2cc0e485b5de49822c97530769591a090e2ff88f 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
@@ -78,6 +78,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { @@ -87,6 +87,7 @@ public class GaleWorldConfiguration extends ConfigurationPart {
public int duration = 100; public int duration = 100;
public int nearbyItemMaxAge = 1200; public int nearbyItemMaxAge = 1200;
public int checkForMinecartNearItemInterval = 20; public int checkForMinecartNearItemInterval = 20;

View File

@@ -23,10 +23,10 @@ index 9aa664537cc37e44db46d5a2a64ae3116938c681..748816e3f325468f523bdb8dfb949928
DedicatedServerSettings dedicatedServerSettings = new DedicatedServerSettings(optionSet); // CraftBukkit - CLI argument support DedicatedServerSettings dedicatedServerSettings = new DedicatedServerSettings(optionSet); // CraftBukkit - CLI argument support
dedicatedServerSettings.forceSave(); dedicatedServerSettings.forceSave();
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 0da1eeab6a2f8336283a62ebcb3aa0d1b1933c85..bef8b563ea638a613c140000e69f53d12e17fb2b 100644 index f33fb9b30863dd8ff7207db905fcfb7547b09383..4ba85d704ffebae38f7a76a97a182e3674730c6f 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1175,6 +1175,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1169,6 +1169,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
org.spigotmc.WatchdogThread.tick(); org.spigotmc.WatchdogThread.tick();
// Paper end // Paper end
org.spigotmc.WatchdogThread.hasStarted = true; // Paper org.spigotmc.WatchdogThread.hasStarted = true; // Paper

View File

@@ -22,10 +22,10 @@ and, in my opinion, worth the low risk of minor mob-spawning-related
inconsistencies. inconsistencies.
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 8794ae06ac574b399cc2dbb3fa61b6ef51d8062d..5f0fa04a4ed2b0073240edbf39aeed9007911e63 100644 index 4ba85d704ffebae38f7a76a97a182e3674730c6f..a76b67a846b12a7b3d0c41b6ac4833d4f0372531 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -287,6 +287,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -286,6 +286,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
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
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
@@ -47,7 +47,7 @@ index f2e24d52240a84ff7ca69ad2c8ec0d1c197467c0..30dc45b2201bf7435d7f38866dfa4b5f
} }
} }
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index b6127fff62c49809cfa54e39a35c89f45f46c66c..fde7de56f46502a1cc268318684e67ac2fbd5157 100644 index 7a18b11782b2524280fddf20e6b1cabdddf07c49..72cdd8f72fb3f552d9729f21de438405abe3acdb 100644
--- a/net/minecraft/server/level/ServerChunkCache.java --- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -179,6 +179,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -179,6 +179,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -103,7 +103,7 @@ index b6127fff62c49809cfa54e39a35c89f45f46c66c..fde7de56f46502a1cc268318684e67ac
} }
private void broadcastChangedChunks() { // Gale - Purpur - remove vanilla profiler private void broadcastChangedChunks() { // Gale - Purpur - remove vanilla profiler
@@ -559,6 +598,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -560,6 +599,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
int naturalSpawnChunkCount = this.distanceManager.getNaturalSpawnChunkCount(); int naturalSpawnChunkCount = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - Optional per player mob spawns // Paper start - Optional per player mob spawns
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
@@ -111,7 +111,7 @@ index b6127fff62c49809cfa54e39a35c89f45f46c66c..fde7de56f46502a1cc268318684e67ac
// re-set mob counts // re-set mob counts
for (ServerPlayer player : this.level.players) { for (ServerPlayer player : this.level.players) {
// Paper start - per player mob spawning backoff // Paper start - per player mob spawning backoff
@@ -573,12 +613,16 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -574,12 +614,16 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
} }
// Paper end - per player mob spawning backoff // Paper end - per player mob spawning backoff
} }
@@ -131,7 +131,7 @@ index b6127fff62c49809cfa54e39a35c89f45f46c66c..fde7de56f46502a1cc268318684e67ac
// Gale start - MultiPaper - skip unnecessary mob spawning computations // Gale start - MultiPaper - skip unnecessary mob spawning computations
} else { } else {
spawnState = null; spawnState = null;
@@ -596,7 +640,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -597,7 +641,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
} }
// Paper end - PlayerNaturallySpawnCreaturesEvent // Paper end - PlayerNaturallySpawnCreaturesEvent
boolean flag = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit boolean flag = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
@@ -140,7 +140,7 @@ index b6127fff62c49809cfa54e39a35c89f45f46c66c..fde7de56f46502a1cc268318684e67ac
} else { } else {
filteredSpawningCategories = List.of(); filteredSpawningCategories = List.of();
} }
@@ -604,8 +648,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -605,8 +649,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
for (LevelChunk levelChunk : chunks) { for (LevelChunk levelChunk : chunks) {
ChunkPos pos = levelChunk.getPos(); ChunkPos pos = levelChunk.getPos();
levelChunk.incrementInhabitedTime(timeInhabited); levelChunk.incrementInhabitedTime(timeInhabited);

View File

@@ -32,10 +32,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java
index a04302728819f28ab724d474a3d06a916f3d1d99..47463babd445763c861ac5c4713b5bd3be5cbeec 100644 index 54916fe57ceeab24936ce50709402ecf1fcd9a10..cd2fa33f6e655419f2a1155aed8566742385d922 100644
--- a/io/papermc/paper/entity/activation/ActivationRange.java --- a/io/papermc/paper/entity/activation/ActivationRange.java
+++ b/io/papermc/paper/entity/activation/ActivationRange.java +++ b/io/papermc/paper/entity/activation/ActivationRange.java
@@ -171,6 +171,22 @@ public final class ActivationRange { @@ -173,6 +173,22 @@ public final class ActivationRange {
} }
ActivationRange.activateEntity(entity); ActivationRange.activateEntity(entity);
@@ -58,7 +58,7 @@ index a04302728819f28ab724d474a3d06a916f3d1d99..47463babd445763c861ac5c4713b5bd3
} }
} }
} }
@@ -182,11 +198,11 @@ public final class ActivationRange { @@ -184,11 +200,11 @@ public final class ActivationRange {
*/ */
private static void activateEntity(final Entity entity) { private static void activateEntity(final Entity entity) {
if (MinecraftServer.currentTick > entity.activatedTick) { if (MinecraftServer.currentTick > entity.activatedTick) {
@@ -73,7 +73,7 @@ index a04302728819f28ab724d474a3d06a916f3d1d99..47463babd445763c861ac5c4713b5bd3
} }
} }
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index ba0b5961535f0dbffda5216a6e4657ea85f30eb7..e52d976f0c1c5eacdc8608b204c3a178b9b17446 100644 index 7c9496e8564c2464e79661153fd295bb027b7bdb..95d69c4b40e4ebe12d8033dbcc7ba195a0ccfb5a 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -781,6 +781,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -781,6 +781,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -85,7 +85,7 @@ index ba0b5961535f0dbffda5216a6e4657ea85f30eb7..e52d976f0c1c5eacdc8608b204c3a178
if (!tickRateManager.isEntityFrozen(entity)) { if (!tickRateManager.isEntityFrozen(entity)) {
entity.checkDespawn(); entity.checkDespawn();
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 8470698181040b5d164a353aeb1dfa907765b80e..36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892 100644 index a839042a883831ab5bf7bca7fa707b10a97689f8..22af2c4996601847f2bbe9d6fef2fc4bd82725fc 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -335,6 +335,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -335,6 +335,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -110,7 +110,7 @@ index 13cfe61fe500e6798b9129c7c559a7af65378a22..303bd2d3ea5c313477c8ab48359a01f2
@Nullable @Nullable
private Component description; private Component description;
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index f3eec8b75fcda47e6632a2a7db9a238b515bc8a0..cc452ca41c336891473fae98b8681768c52f822d 100644 index acf2e306ad26e5f0413ee320b9b514b56fefc21b..86d78bcb6ddf23d298430406cc75e4b482538773 100644
--- a/net/minecraft/world/entity/Mob.java --- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java
@@ -217,10 +217,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -217,10 +217,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -239,7 +239,7 @@ index a04d71967976731b4858d44ac138b7ac390ef7e7..77691e10f7c511eca4384f2974e538d7
TadpoleAi.updateActivity(this); TadpoleAi.updateActivity(this);
super.customServerAiStep(level); super.customServerAiStep(level);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 25c0c27979f49f08d0cc150de9afe6112f115666..35d492106506c28412fea5c59c7b67c809ce231c 100644 index c4c0ebb9b43018d795e02b2ab15d38bc475e4330..dde7f05b8664d9a60edc716a370917d6cab03c18 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java --- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -182,8 +182,10 @@ public class Goat extends Animal { @@ -182,8 +182,10 @@ public class Goat extends Animal {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 4b74604c1f9f84e87f91dd390c83850f088a736b Commit: 5583a3f19b75a9d07367e2ca80adbbafa9af6593
Patches listed below are removed in this patch, They exists in Gale or Leaf: Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "net/minecraft/CrashReport.java.patch" * "net/minecraft/CrashReport.java.patch"
@@ -42,10 +42,10 @@ Patches listed below are removed in this patch, They exists in Gale or Leaf:
- Rebrand - Rebrand
diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java
index 47463babd445763c861ac5c4713b5bd3be5cbeec..f2e8ca24f4a9beb071415db858d80bc7e5e59321 100644 index cd2fa33f6e655419f2a1155aed8566742385d922..7ab41616b0c3e3766c13f86920965165ac800ba3 100644
--- a/io/papermc/paper/entity/activation/ActivationRange.java --- a/io/papermc/paper/entity/activation/ActivationRange.java
+++ b/io/papermc/paper/entity/activation/ActivationRange.java +++ b/io/papermc/paper/entity/activation/ActivationRange.java
@@ -153,6 +153,8 @@ public final class ActivationRange { @@ -155,6 +155,8 @@ public final class ActivationRange {
continue; continue;
} }
@@ -54,7 +54,7 @@ index 47463babd445763c861ac5c4713b5bd3be5cbeec..f2e8ca24f4a9beb071415db858d80bc7
final int worldHeight = world.getHeight(); final int worldHeight = world.getHeight();
ActivationRange.maxBB = player.getBoundingBox().inflate(maxRange, worldHeight, maxRange); ActivationRange.maxBB = player.getBoundingBox().inflate(maxRange, worldHeight, maxRange);
ActivationType.MISC.boundingBox = player.getBoundingBox().inflate(miscActivationRange, worldHeight, miscActivationRange); ActivationType.MISC.boundingBox = player.getBoundingBox().inflate(miscActivationRange, worldHeight, miscActivationRange);
@@ -310,6 +312,7 @@ public final class ActivationRange { @@ -312,6 +314,7 @@ public final class ActivationRange {
* @return * @return
*/ */
public static boolean checkIfActive(final Entity entity) { public static boolean checkIfActive(final Entity entity) {
@@ -309,10 +309,10 @@ index 748816e3f325468f523bdb8dfb94992883ed1989..427788e8747ae8d3a49c0dc094e04b6d
Bootstrap.bootStrap(); Bootstrap.bootStrap();
Bootstrap.validate(); Bootstrap.validate();
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb118297f1ee 100644 index a76b67a846b12a7b3d0c41b6ac4833d4f0372531..5fb7a76faf72f7d91122e5bf01c51853164a73c0 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -267,6 +267,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -266,6 +266,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public joptsimple.OptionSet options; public joptsimple.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
@@ -320,7 +320,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
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;
// Paper - don't store the vanilla dispatcher // Paper - don't store the vanilla dispatcher
@@ -286,7 +287,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -285,7 +286,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public final org.galemc.gale.configuration.GaleConfigurations galeConfigurations; // Gale - Gale configuration public final org.galemc.gale.configuration.GaleConfigurations galeConfigurations; // Gale - Gale configuration
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
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
@@ -330,7 +330,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) { public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
@@ -989,6 +992,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -983,6 +986,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.info("Stopping server"); 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
@@ -346,7 +346,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
// CraftBukkit start // CraftBukkit start
if (this.server != null) { if (this.server != null) {
this.server.spark.disable(); // Paper - spark this.server.spark.disable(); // Paper - spark
@@ -1081,6 +1093,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1075,6 +1087,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(waitForServer, false); this.safeShutdown(waitForServer, false);
} }
public void safeShutdown(boolean waitForServer, boolean isRestarting) { public void safeShutdown(boolean waitForServer, boolean isRestarting) {
@@ -355,7 +355,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
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
@@ -1192,6 +1206,26 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1186,6 +1200,26 @@ 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
@@ -382,7 +382,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
while (this.running) { while (this.running) {
long l; long l;
if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) { if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) {
@@ -1225,6 +1259,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1219,6 +1253,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();
@@ -390,7 +390,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
tickSection = currentTime; tickSection = currentTime;
} }
// Paper end - further improve server tick loop // Paper end - further improve server tick loop
@@ -1250,6 +1285,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1244,6 +1279,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.tickFrame.end(); this.tickFrame.end();
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
@@ -403,7 +403,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
this.startMeasuringTaskExecutionTime(); this.startMeasuringTaskExecutionTime();
this.waitUntilNextTick(); this.waitUntilNextTick();
this.finishMeasuringTaskExecutionTime(); this.finishMeasuringTaskExecutionTime();
@@ -1665,7 +1706,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1659,7 +1700,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()) {
@@ -412,7 +412,7 @@ index 0837c765d9e8833347c9c0c1254da8249daf42c3..73d052596310098abe69b247f45cdb11
continue; continue;
} }
ServerPlayer entityplayer = (ServerPlayer) entityhuman; ServerPlayer entityplayer = (ServerPlayer) entityhuman;
@@ -1684,6 +1725,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1678,6 +1719,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
serverLevel.updateLagCompensationTick(); // Paper - lag compensation serverLevel.updateLagCompensationTick(); // Paper - lag compensation
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
@@ -724,7 +724,7 @@ index f262a7c5ae4e7d56f16f5c0f4f145a2e428abbe4..614c7d9f673c926562acc8fa3b378862
private JComponent buildOnboardingPanel() { private JComponent buildOnboardingPanel() {
String onboardingLink = "https://docs.papermc.io/paper/next-steps"; String onboardingLink = "https://docs.papermc.io/paper/next-steps";
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index e52d976f0c1c5eacdc8608b204c3a178b9b17446..a13aa7b896a998975d2ee14eafb86a85db988e69 100644 index 95d69c4b40e4ebe12d8033dbcc7ba195a0ccfb5a..bb38adebfcf2e3c52971a79d8363a45f067727a9 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -205,6 +205,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -205,6 +205,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -896,7 +896,7 @@ index e52d976f0c1c5eacdc8608b204c3a178b9b17446..a13aa7b896a998975d2ee14eafb86a85
this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// CraftBukkit start // CraftBukkit start
// If we stop due to everyone sleeping we should reset the weather duration to some other random value. // If we stop due to everyone sleeping we should reset the weather duration to some other random value.
@@ -2656,7 +2727,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -2657,7 +2728,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// Spigot start // Spigot start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start - Fix merchant inventory not closing on entity removal // Paper start - Fix merchant inventory not closing on entity removal
@@ -906,7 +906,7 @@ index e52d976f0c1c5eacdc8608b204c3a178b9b17446..a13aa7b896a998975d2ee14eafb86a85
} }
// Paper end - Fix merchant inventory not closing on entity removal // Paper end - Fix merchant inventory not closing on entity removal
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index e56e930df980613a13f92d771f1036eba82b1d19..1173deb1aeb5abc225e7b5914cc3c325afdfab16 100644 index fdbf7aa2cc531825217c4b90fc27516dfadbd310..31fdda8a62d80f8e48914c8bed0d9cf1bb8bbffb 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -392,6 +392,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -392,6 +392,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1279,7 +1279,7 @@ index ea34bb4913e7357f5b76a64443f7e744abdf7b5e..de115ee71fa240440b54c553e0d3ddaf
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/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704272aaa73 100644 index 6a36f6e498fbba976c5f1f48c3648e2e19d46ebc..29b81470ce8cbc8c8c5644b8c07738bf9d90460c 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl @@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl
@@ -1333,7 +1333,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
return; return;
} }
@@ -1174,6 +1197,10 @@ public class ServerGamePacketListenerImpl @@ -1181,6 +1204,10 @@ public class ServerGamePacketListenerImpl
final int maxBookPageSize = pageMax.intValue(); final int maxBookPageSize = pageMax.intValue();
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D); final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
long byteAllowed = maxBookPageSize; long byteAllowed = maxBookPageSize;
@@ -1344,7 +1344,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
for (final String page : pageList) { for (final String page : pageList) {
final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
byteTotal += byteLength; byteTotal += byteLength;
@@ -1198,7 +1225,8 @@ public class ServerGamePacketListenerImpl @@ -1205,7 +1232,8 @@ public class ServerGamePacketListenerImpl
} }
if (byteTotal > byteAllowed) { if (byteTotal > byteAllowed) {
@@ -1354,7 +1354,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
return; return;
} }
@@ -1217,31 +1245,45 @@ public class ServerGamePacketListenerImpl @@ -1224,31 +1252,45 @@ public class ServerGamePacketListenerImpl
Optional<String> optional = packet.title(); Optional<String> optional = packet.title();
optional.ifPresent(list::add); optional.ifPresent(list::add);
list.addAll(packet.pages()); list.addAll(packet.pages());
@@ -1404,7 +1404,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
itemStack.set( itemStack.set(
DataComponents.WRITTEN_BOOK_CONTENT, DataComponents.WRITTEN_BOOK_CONTENT,
new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getName().getString(), 0, list, true) new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getName().getString(), 0, list, true)
@@ -1255,6 +1297,16 @@ public class ServerGamePacketListenerImpl @@ -1262,6 +1304,16 @@ public class ServerGamePacketListenerImpl
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText); return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText);
} }
@@ -1421,7 +1421,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
@Override @Override
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) { public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
@@ -1290,7 +1342,15 @@ public class ServerGamePacketListenerImpl @@ -1297,7 +1349,15 @@ public class ServerGamePacketListenerImpl
@Override @Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) { public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
@@ -1438,7 +1438,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
} else { } else {
ServerLevel serverLevel = this.player.serverLevel(); ServerLevel serverLevel = this.player.serverLevel();
@@ -1465,7 +1525,7 @@ public class ServerGamePacketListenerImpl @@ -1472,7 +1532,7 @@ public class ServerGamePacketListenerImpl
movedWrongly = true; movedWrongly = true;
if (event.getLogWarning()) if (event.getLogWarning())
// Paper end // Paper end
@@ -1447,7 +1447,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
} // Paper } // Paper
} }
@@ -1531,6 +1591,8 @@ public class ServerGamePacketListenerImpl @@ -1538,6 +1598,8 @@ public class ServerGamePacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -1456,7 +1456,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
Location oldTo = to.clone(); Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@@ -1587,6 +1649,13 @@ public class ServerGamePacketListenerImpl @@ -1594,6 +1656,13 @@ public class ServerGamePacketListenerImpl
this.player.tryResetCurrentImpulseContext(); this.player.tryResetCurrentImpulseContext();
} }
@@ -1470,7 +1470,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z); this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
this.lastGoodX = this.player.getX(); this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY(); this.lastGoodY = this.player.getY();
@@ -1635,6 +1704,17 @@ public class ServerGamePacketListenerImpl @@ -1642,6 +1711,17 @@ public class ServerGamePacketListenerImpl
} }
} }
@@ -1488,7 +1488,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
// Paper start - optimise out extra getCubes // Paper start - optimise out extra getCubes
private boolean hasNewCollision(final ServerLevel level, final Entity entity, final AABB oldBox, final AABB newBox) { private boolean hasNewCollision(final ServerLevel level, final Entity entity, final AABB oldBox, final AABB newBox) {
final List<AABB> collisionsBB = new java.util.ArrayList<>(); final List<AABB> collisionsBB = new java.util.ArrayList<>();
@@ -1999,6 +2079,7 @@ public class ServerGamePacketListenerImpl @@ -2006,6 +2086,7 @@ public class ServerGamePacketListenerImpl
boolean cancelled; boolean cancelled;
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) { if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
@@ -1496,7 +1496,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand); org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand);
cancelled = event.useItemInHand() == Event.Result.DENY; cancelled = event.useItemInHand() == Event.Result.DENY;
} else { } else {
@@ -2739,6 +2820,7 @@ public class ServerGamePacketListenerImpl @@ -2746,6 +2827,7 @@ public class ServerGamePacketListenerImpl
AABB boundingBox = target.getBoundingBox(); AABB boundingBox = target.getBoundingBox();
if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range
@@ -1504,7 +1504,7 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
packet.dispatch( packet.dispatch(
new ServerboundInteractPacket.Handler() { new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
@@ -2751,6 +2833,8 @@ public class ServerGamePacketListenerImpl @@ -2758,6 +2840,8 @@ public class ServerGamePacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -1514,10 +1514,10 @@ index f5a36446bc1fd0f5fbbfccb5d331b916d466ea55..1a9664a3b00dcb8171145c3bb3f3f704
if ((target instanceof Bucketable && target instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { if ((target instanceof Bucketable && target instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index c3c85970a5d4bf85fa138a90a33a69f0336334a8..634933a6c98a0043cfe3ff4122dfc53e3c20a192 100644 index e802cecf30a2bfa4390ca70c45a9840032c8c046..7401200f6a11bf552d128d833f25d825f93f57c9 100644
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java --- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -318,7 +318,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -320,7 +320,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!"); ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot
} else { } else {
@@ -1527,7 +1527,7 @@ index c3c85970a5d4bf85fa138a90a33a69f0336334a8..634933a6c98a0043cfe3ff4122dfc53e
} }
} catch (AuthenticationUnavailableException var4) { } catch (AuthenticationUnavailableException var4) {
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 61d7d50d2a2e566d2f955b22c95908c6e4ef5274..b4f2b794ca0c6e04da0355e02c19493c892ebccf 100644 index ef533e2038fa110f3ce0936290023d54c0a98471..6ae663ce0b88f1c91425a67f2c765eecf49cdef7 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -407,6 +407,7 @@ public abstract class PlayerList { @@ -407,6 +407,7 @@ public abstract class PlayerList {
@@ -1555,7 +1555,7 @@ index 61d7d50d2a2e566d2f955b22c95908c6e4ef5274..b4f2b794ca0c6e04da0355e02c19493c
event.disallow(org.bukkit.event.player.PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure event.disallow(org.bukkit.event.player.PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
} }
} }
@@ -982,6 +984,20 @@ public abstract class PlayerList { @@ -988,6 +990,20 @@ public abstract class PlayerList {
} }
} }
@@ -1576,7 +1576,7 @@ index 61d7d50d2a2e566d2f955b22c95908c6e4ef5274..b4f2b794ca0c6e04da0355e02c19493c
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) { public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
for (ServerPlayer serverPlayer : this.players) { for (ServerPlayer serverPlayer : this.players) {
if (serverPlayer.level().dimension() == dimension) { if (serverPlayer.level().dimension() == dimension) {
@@ -1065,6 +1081,7 @@ public abstract class PlayerList { @@ -1071,6 +1087,7 @@ public abstract class PlayerList {
} else { } else {
b = (byte)(24 + permLevel); b = (byte)(24 + permLevel);
} }
@@ -1584,7 +1584,7 @@ index 61d7d50d2a2e566d2f955b22c95908c6e4ef5274..b4f2b794ca0c6e04da0355e02c19493c
player.connection.send(new ClientboundEntityEventPacket(player, b)); player.connection.send(new ClientboundEntityEventPacket(player, b));
} }
@@ -1073,6 +1090,27 @@ public abstract class PlayerList { @@ -1079,6 +1096,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player); this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API } // Paper - Add sendOpLevel API
@@ -1877,7 +1877,7 @@ index 1fc9e1ad541c46124183a401b2a7d99aea69cecf..881271f0bc77a8a8a7d31daad9a8188b
} }
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab7152014edf 100644 index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fced442cf92 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -134,7 +134,7 @@ import net.minecraft.world.scores.Team; @@ -134,7 +134,7 @@ import net.minecraft.world.scores.Team;
@@ -1968,7 +1968,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
this.onBelowWorld(); this.onBelowWorld();
} }
} }
@@ -1841,7 +1873,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1842,7 +1874,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public boolean fireImmune() { public boolean fireImmune() {
@@ -1977,7 +1977,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
} }
public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) {
@@ -1910,7 +1942,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1911,7 +1943,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return this.isInWater() || flag; return this.isInWater() || flag;
} }
@@ -1986,7 +1986,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
if (this.getVehicle() instanceof AbstractBoat abstractBoat && !abstractBoat.isUnderWater()) { if (this.getVehicle() instanceof AbstractBoat abstractBoat && !abstractBoat.isUnderWater()) {
this.wasTouchingWater = false; this.wasTouchingWater = false;
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014)) { } else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014)) {
@@ -2546,6 +2578,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2547,6 +2579,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
compound.putBoolean("Paper.FreezeLock", true); compound.putBoolean("Paper.FreezeLock", true);
} }
// Paper end // Paper end
@@ -2000,7 +2000,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
return compound; return compound;
} catch (Throwable var9) { } catch (Throwable var9) {
CrashReport crashReport = CrashReport.forThrowable(var9, "Saving entity NBT"); CrashReport crashReport = CrashReport.forThrowable(var9, "Saving entity NBT");
@@ -2695,6 +2734,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2696,6 +2735,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
freezeLocked = compound.getBoolean("Paper.FreezeLock"); freezeLocked = compound.getBoolean("Paper.FreezeLock");
} }
// Paper end // Paper end
@@ -2014,7 +2014,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
} catch (Throwable var17) { } catch (Throwable var17) {
CrashReport crashReport = CrashReport.forThrowable(var17, "Loading entity NBT"); CrashReport crashReport = CrashReport.forThrowable(var17, "Loading entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded"); CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
@@ -2941,6 +2987,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2942,6 +2988,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (this.isAlive() && this instanceof Leashable leashable) { if (this.isAlive() && this instanceof Leashable leashable) {
if (leashable.getLeashHolder() == player) { if (leashable.getLeashHolder() == player) {
if (!this.level().isClientSide()) { if (!this.level().isClientSide()) {
@@ -2022,7 +2022,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
// CraftBukkit start - fire PlayerUnleashEntityEvent // CraftBukkit start - fire PlayerUnleashEntityEvent
// Paper start - Expand EntityUnleashEvent // Paper start - Expand EntityUnleashEvent
org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials()); org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
@@ -3147,6 +3194,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3148,6 +3195,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -2036,7 +2036,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3188,6 +3242,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3189,6 +3243,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -2051,7 +2051,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) { if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -3266,15 +3328,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3267,15 +3329,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }
@@ -2071,7 +2071,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
} }
} }
} }
@@ -3476,7 +3541,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3477,7 +3542,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -2080,7 +2080,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
} }
public int getAirSupply() { public int getAirSupply() {
@@ -3964,7 +4029,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3965,7 +4030,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
// CraftBukkit end // CraftBukkit end
public boolean canUsePortal(boolean allowPassengers) { public boolean canUsePortal(boolean allowPassengers) {
@@ -2089,7 +2089,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
} }
public boolean canTeleport(Level fromLevel, Level toLevel) { public boolean canTeleport(Level fromLevel, Level toLevel) {
@@ -4501,6 +4566,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4502,6 +4567,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return Mth.lerp(partialTick, this.yRotO, this.yRot); return Mth.lerp(partialTick, this.yRotO, this.yRot);
} }
@@ -2102,7 +2102,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
// Paper start - optimise collisions // Paper start - optimise collisions
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) { public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
if (this.touchingUnloadedChunk()) { if (this.touchingUnloadedChunk()) {
@@ -4909,7 +4980,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4910,7 +4981,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public float maxUpStep() { public float maxUpStep() {
@@ -2111,7 +2111,7 @@ index 36f5c28fa2fb3ba2cb5a4b2614c6b8d934659892..3f97182bc9ef86476c25deb3106dab71
} }
public void onExplosionHit(@Nullable Entity entity) { public void onExplosionHit(@Nullable Entity entity) {
@@ -5107,4 +5178,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5108,4 +5179,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return ((ServerLevel) this.level).isPositionEntityTicking(this.blockPosition()); return ((ServerLevel) this.level).isPositionEntityTicking(this.blockPosition());
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -2298,7 +2298,7 @@ index efee812785240c1ab1fd47514cfb236a3548f9cf..b982d4b7bdf39fcaf5f22cc889467d7b
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d5a26f3f3 100644 index 8f144c36b9fe1f5380459ae869f5a61f629b0d39..8c56af2500f05b74e94c56faf75d186f0d383390 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -248,9 +248,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -248,9 +248,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2446,7 +2446,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
EntityPotionEffectEvent event = CraftEventFactory.callEntityPotionEffectChangeEvent(this, effect, null, cause, EntityPotionEffectEvent.Action.CLEARED); EntityPotionEffectEvent event = CraftEventFactory.callEntityPotionEffectChangeEvent(this, effect, null, cause, EntityPotionEffectEvent.Action.CLEARED);
if (event.isCancelled()) { if (event.isCancelled()) {
continue; continue;
@@ -1378,6 +1412,24 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1375,6 +1409,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.stopSleeping(); this.stopSleeping();
} }
@@ -2471,7 +2471,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
this.noActionTime = 0; this.noActionTime = 0;
if (amount < 0.0F) { if (amount < 0.0F) {
amount = 0.0F; amount = 0.0F;
@@ -1542,11 +1594,11 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1539,11 +1591,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) { protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
Entity entity = damageSource.getEntity(); Entity entity = damageSource.getEntity();
if (entity instanceof Player player) { if (entity instanceof Player player) {
@@ -2485,7 +2485,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
if (wolf.getOwner() instanceof Player player1) { if (wolf.getOwner() instanceof Player player1) {
this.lastHurtByPlayer = player1; this.lastHurtByPlayer = player1;
} else { } else {
@@ -1600,6 +1652,18 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1597,6 +1649,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
} }
} }
@@ -2504,7 +2504,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null; final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot); final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
event.setCancelled(itemStack == null); event.setCancelled(itemStack == null);
@@ -1765,7 +1829,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1762,7 +1826,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (this.level() instanceof ServerLevel serverLevel) { if (this.level() instanceof ServerLevel serverLevel) {
boolean var6 = false; boolean var6 = false;
if (this.dead && entitySource instanceof WitherBoss) { // Paper if (this.dead && entitySource instanceof WitherBoss) { // Paper
@@ -2513,7 +2513,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
BlockPos blockPos = this.blockPosition(); BlockPos blockPos = this.blockPosition();
BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState(); BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState();
if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) { if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) {
@@ -1796,6 +1860,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1793,6 +1857,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
boolean flag = this.lastHurtByPlayerTime > 0; boolean flag = this.lastHurtByPlayerTime > 0;
this.dropEquipment(level); // CraftBukkit - from below this.dropEquipment(level); // CraftBukkit - from below
if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
@@ -2521,7 +2521,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
this.dropFromLootTable(level, damageSource, flag); this.dropFromLootTable(level, damageSource, flag);
// Paper start // Paper start
final boolean prev = this.clearEquipmentSlots; final boolean prev = this.clearEquipmentSlots;
@@ -1804,6 +1869,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1801,6 +1866,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
// Paper end // Paper end
this.dropCustomDeathLoot(level, damageSource, flag); this.dropCustomDeathLoot(level, damageSource, flag);
this.clearEquipmentSlots = prev; // Paper this.clearEquipmentSlots = prev; // Paper
@@ -2637,7 +2637,7 @@ index 10d1d56fdf8ba1c86899077db7e98b96dd7ebdb6..8728aba69ac24b52e6221ea2ddd8fc6d
return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND
? SlotAccess.forEquipmentSlot(entity, slot, stack -> stack.isEmpty() || entity.getEquipmentSlotForItem(stack) == slot) ? SlotAccess.forEquipmentSlot(entity, slot, stack -> stack.isEmpty() || entity.getEquipmentSlotForItem(stack) == slot)
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 1b74114d0833eb9ca2c854122727d4bf76a11071..7b8804844ab5636323bc8d136c775f1e9591e89c 100644 index b66e4061d5248961f385691d0db95fb8a22f888f..7b8804844ab5636323bc8d136c775f1e9591e89c 100644
--- a/net/minecraft/world/entity/Mob.java --- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java
@@ -143,13 +143,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -143,13 +143,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -2665,14 +2665,14 @@ index 1b74114d0833eb9ca2c854122727d4bf76a11071..7b8804844ab5636323bc8d136c775f1e
this.target = target; this.target = target;
return true; return true;
// CraftBukkit end // CraftBukkit end
@@ -333,7 +335,28 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -333,8 +335,29 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
this.resetAmbientSoundTime(); this.resetAmbientSoundTime();
this.playAmbientSound(); this.playAmbientSound();
} }
+ +
+ incrementTicksSinceLastInteraction(); // Purpur - Entity lifespan + incrementTicksSinceLastInteraction(); // Purpur - Entity lifespan
+ } }
+
+ // Purpur start - Entity lifespan + // Purpur start - Entity lifespan
+ private void incrementTicksSinceLastInteraction() { + private void incrementTicksSinceLastInteraction() {
+ ++this.ticksSinceLastInteraction; + ++this.ticksSinceLastInteraction;
@@ -2689,11 +2689,12 @@ index 1b74114d0833eb9ca2c854122727d4bf76a11071..7b8804844ab5636323bc8d136c775f1e
+ if (this.ticksSinceLastInteraction > this.level().purpurConfig.entityLifeSpan) { + if (this.ticksSinceLastInteraction > this.level().purpurConfig.entityLifeSpan) {
+ this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD); + this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD);
+ } + }
} + }
+ // Purpur end - Entity lifespan + // Purpur end - Entity lifespan
+
@Override @Override
protected void playHurtSound(DamageSource source) { protected void playHurtSound(DamageSource source) {
this.resetAmbientSoundTime();
@@ -482,6 +505,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -482,6 +505,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
compound.putBoolean("NoAI", this.isNoAi()); compound.putBoolean("NoAI", this.isNoAi());
} }
@@ -2749,7 +2750,7 @@ index 1b74114d0833eb9ca2c854122727d4bf76a11071..7b8804844ab5636323bc8d136c775f1e
return flag; return flag;
} }
@@ -1606,24 +1636,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1606,26 +1636,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
// Gale end - JettPack - optimize sun burn tick - cache eye blockpos // Gale end - JettPack - optimize sun burn tick - cache eye blockpos
public boolean isSunBurnTick() { public boolean isSunBurnTick() {
@@ -2766,7 +2767,9 @@ index 1b74114d0833eb9ca2c854122727d4bf76a11071..7b8804844ab5636323bc8d136c775f1e
- if (lightLevelDependentMagicValue <= 0.5F) return false; - if (lightLevelDependentMagicValue <= 0.5F) return false;
- if (this.random.nextFloat() * 30.0F >= (lightLevelDependentMagicValue - 0.4F) * 2.0F) return false; - if (this.random.nextFloat() * 30.0F >= (lightLevelDependentMagicValue - 0.4F) * 2.0F) return false;
- // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
-
- boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow; - boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow;
-
- return !flag && this.level().canSeeSky(this.cached_eye_blockpos); // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - return !flag && this.level().canSeeSky(this.cached_eye_blockpos); // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
- } - }
- -
@@ -2776,7 +2779,7 @@ index 1b74114d0833eb9ca2c854122727d4bf76a11071..7b8804844ab5636323bc8d136c775f1e
} }
@Override @Override
@@ -1679,4 +1693,58 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1681,4 +1693,58 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
public float[] getArmorDropChances() { public float[] getArmorDropChances() {
return this.armorDropChances; return this.armorDropChances;
} }
@@ -3257,10 +3260,10 @@ index 066faa704338c573472381e1ebd063e0d52aaaa4..1f96fd5085bacb4c584576c7cb9f51e7
// Paper end - optimise POI access // Paper end - optimise POI access
if (path != null && path.canReach()) { if (path != null && path.canReach()) {
diff --git a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java diff --git a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
index 05c664732adfca7d18bfcbebae9bb455f001aa93..6f96551ba91da214054b89a255254ca597977cc0 100644 index d9318a5a9eb3de89f48efa23b944c6d9e2ba37d1..135e19e921c9592cec83f6f940f2abe47757fbb8 100644
--- a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java --- a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
+++ b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java +++ b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
@@ -29,6 +29,13 @@ public class SecondaryPoiSensor extends Sensor<Villager> { @@ -30,6 +30,13 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
return; return;
} }
// Gale end - Lithium - skip secondary POI sensor if absent // Gale end - Lithium - skip secondary POI sensor if absent
@@ -3274,7 +3277,7 @@ index 05c664732adfca7d18bfcbebae9bb455f001aa93..6f96551ba91da214054b89a255254ca5
ResourceKey<Level> resourceKey = level.dimension(); ResourceKey<Level> resourceKey = level.dimension();
BlockPos blockPos = entity.blockPosition(); BlockPos blockPos = entity.blockPosition();
List<GlobalPos> list = Lists.newArrayList(); List<GlobalPos> list = Lists.newArrayList();
@@ -45,7 +52,7 @@ public class SecondaryPoiSensor extends Sensor<Villager> { @@ -46,7 +53,7 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
} }
} }
@@ -6724,7 +6727,7 @@ index 77691e10f7c511eca4384f2974e538d78d55c2ca..0ca35514a920dddf230d749bc1a5fe15
this.getBrain().tick(level, this); this.getBrain().tick(level, this);
TadpoleAi.updateActivity(this); TadpoleAi.updateActivity(this);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 35d492106506c28412fea5c59c7b67c809ce231c..7107cc2462e7d33bca413a1b051822cc1bd61bfa 100644 index dde7f05b8664d9a60edc716a370917d6cab03c18..35d1b99b873d9f8c9aa2a1178a449a8625b18406 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java --- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -109,6 +109,44 @@ public class Goat extends Animal { @@ -109,6 +109,44 @@ public class Goat extends Animal {
@@ -6780,7 +6783,7 @@ index 35d492106506c28412fea5c59c7b67c809ce231c..7107cc2462e7d33bca413a1b051822cc
if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
this.getBrain().tick(level, this); this.getBrain().tick(level, this);
GoatAi.updateActivity(this); GoatAi.updateActivity(this);
@@ -388,6 +427,7 @@ public class Goat extends Animal { @@ -387,6 +426,7 @@ public class Goat extends Animal {
// Paper start - Goat ram API // Paper start - Goat ram API
public void ram(net.minecraft.world.entity.LivingEntity entity) { public void ram(net.minecraft.world.entity.LivingEntity entity) {
@@ -8140,7 +8143,7 @@ index 5b905a4d49c44b04d5795c2bf297f3c69d183d7c..b6429a2bbb6fc1e08610ab20e50f8f04
} }
} }
diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
index 45c152856c46d11f3bd790a01fac89a7c3b68af1..88f55f9ea0a98a07ba8277b4b43f6957e6f16283 100644 index 8e450c9d0111c0ce44feb386cf8b2715e407bf25..bbd3253dc6ab09f166447b163b19730244ff7443 100644
--- a/net/minecraft/world/entity/item/ItemEntity.java --- a/net/minecraft/world/entity/item/ItemEntity.java
+++ b/net/minecraft/world/entity/item/ItemEntity.java +++ b/net/minecraft/world/entity/item/ItemEntity.java
@@ -52,6 +52,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -52,6 +52,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -8156,7 +8159,7 @@ index 45c152856c46d11f3bd790a01fac89a7c3b68af1..88f55f9ea0a98a07ba8277b4b43f6957
public ItemEntity(EntityType<? extends ItemEntity> entityType, Level level) { public ItemEntity(EntityType<? extends ItemEntity> entityType, Level level) {
super(entityType, level); super(entityType, level);
@@ -363,7 +369,16 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -365,7 +371,16 @@ public class ItemEntity extends Entity implements TraceableEntity {
@Override @Override
public final boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) { public final boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) {
@@ -8174,7 +8177,7 @@ index 45c152856c46d11f3bd790a01fac89a7c3b68af1..88f55f9ea0a98a07ba8277b4b43f6957
return false; return false;
} else if (!level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && damageSource.getEntity() instanceof Mob) { } else if (!level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && damageSource.getEntity() instanceof Mob) {
return false; return false;
@@ -565,6 +580,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -567,6 +582,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
public void setItem(ItemStack stack) { public void setItem(ItemStack stack) {
this.getEntityData().set(DATA_ITEM, stack); this.getEntityData().set(DATA_ITEM, stack);
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate
@@ -8880,7 +8883,7 @@ index 4585b7c867685f8419c4d2b5b90af5946d337f90..358021a6eb936ac43e29c7c2c92c71e9
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0); return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
} }
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index c7a77b16ba032eb24b070fd6a5f0f824b3cbcc1a..56ec8cbde61c337672972d6ade3dafbb9aed8473 100644 index 00c0d2432b4a0e46f85f1f422772e6c43ef5222c..c7897532163d4fdf5a82982f7d24a47dd61e3dfa 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java --- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java +++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -87,12 +87,45 @@ public class EnderMan extends Monster implements NeutralMob { @@ -87,12 +87,45 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -8966,7 +8969,7 @@ index c7a77b16ba032eb24b070fd6a5f0f824b3cbcc1a..56ec8cbde61c337672972d6ade3dafbb
float lightLevelDependentMagicValue = this.getLightLevelDependentMagicValue(); float lightLevelDependentMagicValue = this.getLightLevelDependentMagicValue();
if (lightLevelDependentMagicValue > 0.5F if (lightLevelDependentMagicValue > 0.5F
&& level.canSeeSky(this.blockPosition()) && level.canSeeSky(this.blockPosition())
@@ -392,6 +426,8 @@ public class EnderMan extends Monster implements NeutralMob { @@ -393,6 +427,8 @@ public class EnderMan extends Monster implements NeutralMob {
public boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) { public boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) {
if (this.isInvulnerableTo(level, damageSource)) { if (this.isInvulnerableTo(level, damageSource)) {
return false; return false;
@@ -8975,7 +8978,7 @@ index c7a77b16ba032eb24b070fd6a5f0f824b3cbcc1a..56ec8cbde61c337672972d6ade3dafbb
} else { } else {
boolean flag = damageSource.getDirectEntity() instanceof ThrownPotion; boolean flag = damageSource.getDirectEntity() instanceof ThrownPotion;
if (!damageSource.is(DamageTypeTags.IS_PROJECTILE) && !flag) { if (!damageSource.is(DamageTypeTags.IS_PROJECTILE) && !flag) {
@@ -404,6 +440,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -405,6 +441,7 @@ public class EnderMan extends Monster implements NeutralMob {
} else { } else {
boolean flag1 = flag && this.hurtWithCleanWater(level, damageSource, (ThrownPotion)damageSource.getDirectEntity(), amount); boolean flag1 = flag && this.hurtWithCleanWater(level, damageSource, (ThrownPotion)damageSource.getDirectEntity(), amount);
@@ -8983,7 +8986,7 @@ index c7a77b16ba032eb24b070fd6a5f0f824b3cbcc1a..56ec8cbde61c337672972d6ade3dafbb
if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper - EndermanEscapeEvent if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper - EndermanEscapeEvent
for (int i = 0; i < 64; i++) { for (int i = 0; i < 64; i++) {
if (this.teleport()) { if (this.teleport()) {
@@ -447,7 +484,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -448,7 +485,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean requiresCustomPersistence() { public boolean requiresCustomPersistence() {
@@ -8992,7 +8995,7 @@ index c7a77b16ba032eb24b070fd6a5f0f824b3cbcc1a..56ec8cbde61c337672972d6ade3dafbb
} }
static class EndermanFreezeWhenLookedAt extends Goal { static class EndermanFreezeWhenLookedAt extends Goal {
@@ -491,8 +528,9 @@ public class EnderMan extends Monster implements NeutralMob { @@ -492,8 +529,9 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean canUse() { public boolean canUse() {
@@ -9003,7 +9006,7 @@ index c7a77b16ba032eb24b070fd6a5f0f824b3cbcc1a..56ec8cbde61c337672972d6ade3dafbb
&& this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0; && this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0;
} }
@@ -640,8 +678,9 @@ public class EnderMan extends Monster implements NeutralMob { @@ -641,8 +679,9 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean canUse() { public boolean canUse() {
@@ -12586,7 +12589,7 @@ index ef2afb17a22a703470e13d12c989a685e72f0ab8..80a01b8c6dfb0f3bcc6872cdf38b48f7
blockPos = blockPos1; blockPos = blockPos1;
break; break;
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index cf1e036b068531716ab99ecdcda45c17cdfe1c22..35afbef30b9f3b7767db3fe3d552b93fa542343f 100644 index baab70c95fdcb230ecaef1174a8d5e298826462b..37cccba70cf4815b19fcf9f1526cdc25c2e81407 100644
--- a/net/minecraft/world/entity/player/Player.java --- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java
@@ -201,11 +201,22 @@ public abstract class Player extends LivingEntity { @@ -201,11 +201,22 @@ public abstract class Player extends LivingEntity {
@@ -12791,10 +12794,10 @@ index 4880db97135d54fa72f64c108b2bd4ded096438b..bc102b049047d6e2a1d29e10f92cdf5a
protected double getDefaultGravity() { protected double getDefaultGravity() {
return 0.06; return 0.06;
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
index 4e9ca9cc3600dc8bbd4f386cf4e4c426d1664904..bd93ee97982038789114f17ee369208fc6413796 100644 index 168f50523b00ab8d43cbcc5ea5675a840762be11..a33641dd6e0839fd1b557d8583fe8bb929fcc1cb 100644
--- a/net/minecraft/world/entity/projectile/Projectile.java --- a/net/minecraft/world/entity/projectile/Projectile.java
+++ b/net/minecraft/world/entity/projectile/Projectile.java +++ b/net/minecraft/world/entity/projectile/Projectile.java
@@ -493,7 +493,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -503,7 +503,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@Override @Override
public boolean mayInteract(ServerLevel level, BlockPos pos) { public boolean mayInteract(ServerLevel level, BlockPos pos) {
Entity owner = this.getOwner(); Entity owner = this.getOwner();
@@ -14491,7 +14494,7 @@ index 425fcc7872c6ebd2156be8bea1d516ce7aeeb280..8de482367f3d9d91048b7c85cbaefcda
} }
diff --git a/net/minecraft/world/level/EntityGetter.java b/net/minecraft/world/level/EntityGetter.java diff --git a/net/minecraft/world/level/EntityGetter.java b/net/minecraft/world/level/EntityGetter.java
index e81195df621159da67136f020fa7a6d39d1ee5ed..f41e41d01aa42f3578ffb3bc888416e74d17cd1d 100644 index 892a7c1eb1b321ca6d5ca709142e7feae1220815..7719bc8ff1fbbc67cdf15e1fec28dc9233cea207 100644
--- a/net/minecraft/world/level/EntityGetter.java --- a/net/minecraft/world/level/EntityGetter.java
+++ b/net/minecraft/world/level/EntityGetter.java +++ b/net/minecraft/world/level/EntityGetter.java
@@ -185,7 +185,7 @@ public interface EntityGetter extends ca.spottedleaf.moonrise.patches.chunk_syst @@ -185,7 +185,7 @@ public interface EntityGetter extends ca.spottedleaf.moonrise.patches.chunk_syst
@@ -14504,7 +14507,7 @@ index e81195df621159da67136f020fa7a6d39d1ee5ed..f41e41d01aa42f3578ffb3bc888416e7
if (distance < 0.0 || d < distance * distance) { if (distance < 0.0 || d < distance * distance) {
return true; return true;
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index d732a021351d80210e6411565c7a5e9d1b277f0f..78654e7ae26c0b2b2512f4e29a331e2ead2d6916 100644 index b831f189bcee62a41a16017c2bb958aeee728984..98cb62d4b79c0918abe139f198c5be118b9133c4 100644
--- a/net/minecraft/world/level/Level.java --- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java
@@ -174,6 +174,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -174,6 +174,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 73d052596310098abe69b247f45cdb118297f1ee..b12d0833e1499f97a02b7fedc398fcfd9c391e08 100644 index 5fb7a76faf72f7d91122e5bf01c51853164a73c0..011b1a8c13d41c6f1d54d9247b7e61a548f43382 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -278,7 +278,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -277,7 +277,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 73d052596310098abe69b247f45cdb118297f1ee..b12d0833e1499f97a02b7fedc398fcfd
// Spigot end // Spigot end
public volatile boolean hasFullyShutdown; // Paper - Improved watchdog support public volatile boolean hasFullyShutdown; // Paper - Improved watchdog support
public volatile boolean abnormalExit; // Paper - Improved watchdog support public volatile boolean abnormalExit; // Paper - Improved watchdog support
@@ -290,7 +290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -289,7 +289,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public boolean lagging = false; // Purpur - Lagging threshold public boolean lagging = false; // Purpur - Lagging threshold
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
protected boolean upnp = false; // Purpur - UPnP Port Forwarding protected boolean upnp = false; // Purpur - UPnP Port Forwarding
@@ -26,7 +26,7 @@ index 73d052596310098abe69b247f45cdb118297f1ee..b12d0833e1499f97a02b7fedc398fcfd
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) { public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
@@ -1256,9 +1256,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1250,9 +1250,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
@@ -42,7 +42,7 @@ index 73d052596310098abe69b247f45cdb118297f1ee..b12d0833e1499f97a02b7fedc398fcfd
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur - Lagging threshold lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur - Lagging threshold
tickSection = currentTime; tickSection = currentTime;
} }
@@ -1286,7 +1289,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1280,7 +1283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
// Purpur start - Configurable TPS Catchup // Purpur start - Configurable TPS Catchup
@@ -65,10 +65,10 @@ index 35fd539eb2bfe60ad17ab1e558a01273666acc54..445bbdc8da7f1fdbddfc4d8787d78fea
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint(); this.repaint();
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index fde7de56f46502a1cc268318684e67ac2fbd5157..f618d3cf32be10b9ca3833231e653975bcf56e4c 100644 index 72cdd8f72fb3f552d9729f21de438405abe3acdb..90a8494840faa0e7f605c904c657a953be64b17d 100644
--- a/net/minecraft/server/level/ServerChunkCache.java --- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -625,7 +625,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -626,7 +626,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
//this.lastSpawnState = spawnState; // Pufferfish - this is managed asynchronously //this.lastSpawnState = spawnState; // Pufferfish - this is managed asynchronously
// Gale start - MultiPaper - skip unnecessary mob spawning computations // Gale start - MultiPaper - skip unnecessary mob spawning computations
} else { } else {
@@ -78,10 +78,10 @@ index fde7de56f46502a1cc268318684e67ac2fbd5157..f618d3cf32be10b9ca3833231e653975
// Gale end - MultiPaper - skip unnecessary mob spawning computations // Gale end - MultiPaper - skip unnecessary mob spawning computations
int _int = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); int _int = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING);
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1a9664a3b00dcb8171145c3bb3f3f704272aaa73..ec6276f3335fd963c8554dbc43adf5bdfe3d2412 100644 index 29b81470ce8cbc8c8c5644b8c07738bf9d90460c..e3fa94538ec5756e39ca55ba2216971d499215cc 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1225,7 +1225,7 @@ public class ServerGamePacketListenerImpl @@ -1232,7 +1232,7 @@ public class ServerGamePacketListenerImpl
} }
if (byteTotal > byteAllowed) { if (byteTotal > byteAllowed) {
@@ -91,10 +91,10 @@ index 1a9664a3b00dcb8171145c3bb3f3f704272aaa73..ec6276f3335fd963c8554dbc43adf5bd
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
return; return;
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 3f97182bc9ef86476c25deb3106dab7152014edf..539cd1fe6ff15a4ebcbd65f41d8711d1f4ce5b97 100644 index 1ee098b10548de763f7df0c494876fced442cf92..df0b6d21a7d629ba759e322d3e886fbc0cc53173 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -536,23 +536,35 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -536,23 +536,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
// Purpur end - Add canSaveToDisk to Entity // Purpur end - Add canSaveToDisk to Entity
@@ -127,7 +127,9 @@ index 3f97182bc9ef86476c25deb3106dab7152014edf..539cd1fe6ff15a4ebcbd65f41d8711d1
+ if (lightLevelDependentMagicValue <= 0.5F) return false; + if (lightLevelDependentMagicValue <= 0.5F) return false;
+ if (this.random.nextFloat() * 30.0F >= (lightLevelDependentMagicValue - 0.4F) * 2.0F) return false; + if (this.random.nextFloat() * 30.0F >= (lightLevelDependentMagicValue - 0.4F) * 2.0F) return false;
+ // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos + // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
+
+ boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow; + boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow;
+
+ return !flag && this.level().canSeeSky(this.cached_eye_blockpos); // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos + return !flag && this.level().canSeeSky(this.cached_eye_blockpos); // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
} }
@@ -140,7 +142,7 @@ index 3f97182bc9ef86476c25deb3106dab7152014edf..539cd1fe6ff15a4ebcbd65f41d8711d1
public Entity(EntityType<?> entityType, Level level) { public Entity(EntityType<?> entityType, Level level) {
this.type = entityType; this.type = entityType;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 8728aba69ac24b52e6221ea2ddd8fc6d5a26f3f3..9f36d063168c262fec7e69a96bad375b4eaff797 100644 index 8c56af2500f05b74e94c56faf75d186f0d383390..4fb6102c8ef930de80356c66397ca2167b1d0174 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1024,13 +1024,13 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1024,13 +1024,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -178,10 +180,10 @@ index 7b8804844ab5636323bc8d136c775f1e9591e89c..14d9dceacc82cc6c085dab8f52e59a31
// Purpur - implemented in Entity - API for any mob to burn daylight // Purpur - implemented in Entity - API for any mob to burn daylight
return super.isSunBurnTick(); return super.isSunBurnTick();
diff --git a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java diff --git a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
index 6f96551ba91da214054b89a255254ca597977cc0..3d5ac6976efd66b29657749f83d03ba77ebea2eb 100644 index 135e19e921c9592cec83f6f940f2abe47757fbb8..9fa0c2f09ddfa17a778d4ea8d1ec9314f11a6efd 100644
--- a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java --- a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
+++ b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java +++ b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
@@ -22,20 +22,16 @@ public class SecondaryPoiSensor extends Sensor<Villager> { @@ -22,21 +22,17 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
@Override @Override
protected void doTick(ServerLevel level, Villager entity) { protected void doTick(ServerLevel level, Villager entity) {
@@ -190,6 +192,7 @@ index 6f96551ba91da214054b89a255254ca597977cc0..3d5ac6976efd66b29657749f83d03ba7
+ // Purpur: Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off + // Purpur: Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off
+ // Gale: Lithium - skip secondary POI sensor if absent + // Gale: Lithium - skip secondary POI sensor if absent
var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi(); var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi();
-
- if (secondaryPoi.isEmpty()) { - if (secondaryPoi.isEmpty()) {
- entity.getBrain().eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE); - entity.getBrain().eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
- return; - return;
@@ -198,6 +201,7 @@ index 6f96551ba91da214054b89a255254ca597977cc0..3d5ac6976efd66b29657749f83d03ba7
- // Purpur start - Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off - // Purpur start - Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off
Brain<?> brain = entity.getBrain(); Brain<?> brain = entity.getBrain();
- if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC) { - if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC) {
+
+ if (secondaryPoi.isEmpty() || (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) { + if (secondaryPoi.isEmpty() || (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) {
brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE); brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
return; return;
@@ -264,7 +268,7 @@ index 0ca35514a920dddf230d749bc1a5fe15f1c7940a..ec9db1c12426db80dbf02d704e6c7ec8
TadpoleAi.updateActivity(this); TadpoleAi.updateActivity(this);
super.customServerAiStep(level); super.customServerAiStep(level);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 7107cc2462e7d33bca413a1b051822cc1bd61bfa..a1cdb620368fe7f6eb95734af903d66257156b26 100644 index 35d1b99b873d9f8c9aa2a1178a449a8625b18406..9b3ff19b3ce1a4780cab01bae6561d45e60fdddc 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java --- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -223,8 +223,7 @@ public class Goat extends Animal { @@ -223,8 +223,7 @@ public class Goat extends Animal {
@@ -306,11 +310,11 @@ index 242b2545b6082f567d0bb7900ef06ded3c0fdcdd..fe6eb99ea3d2deda317efe90ecb0987b
PiglinAi.updateActivity(this); PiglinAi.updateActivity(this);
super.customServerAiStep(level); super.customServerAiStep(level);
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
index bd93ee97982038789114f17ee369208fc6413796..aa201bd227dffb7442ec62b86b2435f025be732d 100644 index a33641dd6e0839fd1b557d8583fe8bb929fcc1cb..d5ef2ec5e15b6d250aafb0b8282b350c03f8ef2c 100644
--- a/net/minecraft/world/entity/projectile/Projectile.java --- a/net/minecraft/world/entity/projectile/Projectile.java
+++ b/net/minecraft/world/entity/projectile/Projectile.java +++ b/net/minecraft/world/entity/projectile/Projectile.java
@@ -74,7 +74,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -81,7 +81,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
int maxChunkLoadsPerProjectile = maxProjectileChunkLoadsConfig.perProjectile.max;
if (maxChunkLoadsPerProjectile >= 0 && this.chunksLoadedByProjectile >= maxChunkLoadsPerProjectile) { if (maxChunkLoadsPerProjectile >= 0 && this.chunksLoadedByProjectile >= maxChunkLoadsPerProjectile) {
if (maxProjectileChunkLoadsConfig.perProjectile.removeFromWorldAfterReachLimit) { if (maxProjectileChunkLoadsConfig.perProjectile.removeFromWorldAfterReachLimit) {
- this.discard(); - this.discard();

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 66418672e548a022980a403de912e05984137f37..919dc4dddea64f97161b5e0d417dc06875f8318c 100644 index 011b1a8c13d41c6f1d54d9247b7e61a548f43382..047a09cf4a2c32e714aacedeccb0928ef2c7dfa9 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1855,7 +1855,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1849,7 +1849,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove vanilla username check
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 634933a6c98a0043cfe3ff4122dfc53e3c20a192..fec84afa274f8b7cc3e0e9bf500e672c16be53d4 100644 index 7401200f6a11bf552d128d833f25d825f93f57c9..4567067bd91000bb98052cd5a139292e4615b13f 100644
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java --- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -183,7 +183,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -185,7 +185,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
public void handleHello(ServerboundHelloPacket packet) { public void handleHello(ServerboundHelloPacket packet) {
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet"); Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet");
// Paper start - Validate usernames // Paper start - Validate usernames

View File

@@ -7,10 +7,10 @@ This Check is added in 1.17.x -> 1.18.x that updated by Mojang.
By removing this check, it gives ability for hackers to use some modules of hack clients. By removing this check, it gives ability for hackers to use some modules of hack clients.
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ec6276f3335fd963c8554dbc43adf5bdfe3d2412..c58a231183655e2910748a5ecdf3b2ce0d7b00a1 100644 index e3fa94538ec5756e39ca55ba2216971d499215cc..9706e382ad2b597a04ff637881c3b5d32f26d281 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1998,8 +1998,13 @@ public class ServerGamePacketListenerImpl @@ -2005,8 +2005,13 @@ public class ServerGamePacketListenerImpl
BlockPos blockPos = hitResult.getBlockPos(); BlockPos blockPos = hitResult.getBlockPos();
if (this.player.canInteractWithBlock(blockPos, 1.0)) { if (this.player.canInteractWithBlock(blockPos, 1.0)) {
Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos)); Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos));

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/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
index 88f55f9ea0a98a07ba8277b4b43f6957e6f16283..0e21c644d62597cf3425c8717ab1e70c766e22f2 100644 index bbd3253dc6ab09f166447b163b19730244ff7443..6436afc0e59a8efdc9551fdde4d03d245548f3ef 100644
--- a/net/minecraft/world/entity/item/ItemEntity.java --- a/net/minecraft/world/entity/item/ItemEntity.java
+++ b/net/minecraft/world/entity/item/ItemEntity.java +++ b/net/minecraft/world/entity/item/ItemEntity.java
@@ -313,7 +313,7 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -315,7 +315,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
ItemStack item = this.getItem(); ItemStack item = this.getItem();
ItemStack item1 = itemEntity.getItem(); ItemStack item1 = itemEntity.getItem();
if (Objects.equals(this.target, itemEntity.target) && areMergable(item, item1)) { if (Objects.equals(this.target, itemEntity.target) && areMergable(item, item1)) {

View File

@@ -9,7 +9,7 @@ and change store way to sql maybe?
Original license: GPLv3 Original license: GPLv3
Original project: https://github.com/LeavesMC/Leaves Original project: https://github.com/LeavesMC/Leaves
Commit: 41476d86922416c45f703df2871890831fc42bb5 Commit: 0O0oO00o0oO
diff --git a/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java b/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java diff --git a/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java b/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java
index fb263fa1f30a7dfcb7ec2656abfb38e5fe88eac9..96ec0a0133ec244a5eb79dfcb34e7f9de22ea0f4 100644 index fb263fa1f30a7dfcb7ec2656abfb38e5fe88eac9..96ec0a0133ec244a5eb79dfcb34e7f9de22ea0f4 100644
@@ -54,10 +54,10 @@ index ea8cfa76093c70a44d065c1f80adaa9127fe4e07..7435e2c3f0defe98cbaa488219974887
assert isValidPath(path); assert isValidPath(path);
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index e31c753a800070cffafa76bde044dee146480e80..42845c03fc94a589bfad6a2ae1e5e7f8d577ef16 100644 index 047a09cf4a2c32e714aacedeccb0928ef2c7dfa9..dddbb18992348fb7e8a6552423d134809cd7fdbc 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1753,6 +1753,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1747,6 +1747,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick(); GameTestTicker.SINGLETON.tick();
} }
@@ -91,7 +91,7 @@ index de115ee71fa240440b54c553e0d3ddaf4c0dfca0..ee8cdd532b73180cb484fcc37c36f09c
} catch (Exception ex) { } catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn't register custom payload", ex); ServerGamePacketListenerImpl.LOGGER.error("Couldn't register custom payload", ex);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index c334ce5c688ad362ffc96bd90d32c676acd50d4d..3d1338b463466d833b53eff50ec1366f41329dd8 100644 index d2c11832d3ff9b01ccc3cdd5f77673eb7a844dae..0e81a445a4f960eab5c873bc16f79a9ebfab0122 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -341,6 +341,8 @@ public abstract class PlayerList { @@ -341,6 +341,8 @@ public abstract class PlayerList {

View File

@@ -9,10 +9,10 @@ Original project: https://github.com/LeavesMC/Leaves
This patch is Powered by Xaero Map This patch is Powered by Xaero Map
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 3d1338b463466d833b53eff50ec1366f41329dd8..823a7c330ec7f0287b4f7a83e2c719a45cbedf6e 100644 index 0e81a445a4f960eab5c873bc16f79a9ebfab0122..03bf654aaf1b4f7df9608ee1ad99230f7aa507f9 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -1216,6 +1216,7 @@ public abstract class PlayerList { @@ -1222,6 +1222,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldBorder)); player.connection.send(new ClientboundInitializeBorderPacket(worldBorder));
player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle())); player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));

View File

@@ -123,10 +123,10 @@ index b305ba9bab617bf4e52d0e6ddf160bacc5751a94..b8215b71971d16705bc11f19343823ac
if (players.size() >= resultLimit) { if (players.size() >= resultLimit) {
return players; return players;
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 42845c03fc94a589bfad6a2ae1e5e7f8d577ef16..8499ee1505c0390f98d1555d47a671541727dbf8 100644 index dddbb18992348fb7e8a6552423d134809cd7fdbc..0e6e71030e3fd1335fff796b861524a48cb0a507 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1656,7 +1656,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1650,7 +1650,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
private ServerStatus.Players buildPlayerStatus() { private ServerStatus.Players buildPlayerStatus() {
@@ -165,7 +165,7 @@ index 5c0a04db38821dbb0cba2bb6f0787f113d167efd..8a071166262fbb7d24735fec394cb19d
.filter(player -> !playerList.isOp(player.getGameProfile())) .filter(player -> !playerList.isOp(player.getGameProfile()))
.map(player -> player.getGameProfile().getName()), .map(player -> player.getGameProfile().getName()),
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index a13aa7b896a998975d2ee14eafb86a85db988e69..bf364e3fad2823400ec671bc632ba50751a3f473 100644 index bb38adebfcf2e3c52971a79d8363a45f067727a9..69a807ccda1ec5334316863604aa3192065d16a1 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -216,6 +216,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -216,6 +216,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -184,7 +184,7 @@ index a13aa7b896a998975d2ee14eafb86a85db988e69..bf364e3fad2823400ec671bc632ba507
} }
// Paper start // Paper start
@@ -2669,6 +2671,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -2670,6 +2672,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server; moved down below valid=true // ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server; moved down below valid=true
if (entity instanceof ServerPlayer serverPlayer) { if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.add(serverPlayer); ServerLevel.this.players.add(serverPlayer);
@@ -196,7 +196,7 @@ index a13aa7b896a998975d2ee14eafb86a85db988e69..bf364e3fad2823400ec671bc632ba507
ServerLevel.this.updateSleepingPlayerList(); ServerLevel.this.updateSleepingPlayerList();
} }
@@ -2739,6 +2746,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -2740,6 +2747,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
ServerLevel.this.getChunkSource().removeEntity(entity); ServerLevel.this.getChunkSource().removeEntity(entity);
if (entity instanceof ServerPlayer serverPlayer) { if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.remove(serverPlayer); ServerLevel.this.players.remove(serverPlayer);
@@ -209,7 +209,7 @@ index a13aa7b896a998975d2ee14eafb86a85db988e69..bf364e3fad2823400ec671bc632ba507
} }
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 00c7afd995d179efe1c96fb6daf342b6b357fa65..2da6609ab8398c5c537e9065b3a82693f43200e2 100644 index 622257dbbe572de33e15abef9055016268730261..dfb4524d80f642eff1b146dd2fbfa07f21d844c6 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -195,7 +195,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -195,7 +195,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -222,7 +222,7 @@ index 00c7afd995d179efe1c96fb6daf342b6b357fa65..2da6609ab8398c5c537e9065b3a82693
private final ServerStatsCounter stats; private final ServerStatsCounter stats;
private float lastRecordedHealthAndAbsorption = Float.MIN_VALUE; private float lastRecordedHealthAndAbsorption = Float.MIN_VALUE;
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 823a7c330ec7f0287b4f7a83e2c719a45cbedf6e..220d415ecd20030c930d42c018659d6d61ee1a9e 100644 index 03bf654aaf1b4f7df9608ee1ad99230f7aa507f9..8893be00aa731d26a41b5e6b3996425eced33cc4 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -132,6 +132,7 @@ public abstract class PlayerList { @@ -132,6 +132,7 @@ public abstract class PlayerList {

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/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ffb8d4c5b894e130d7e330459e9797356db2a262..52d0eec6588f395642df2cf6894a9461d05bf6a3 100644 index 95768fcb1f0b480910a1ba4a3dc321b27e5b3782..5078887fc6056a0f3ef5acd5e052116107737e62 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -575,7 +575,7 @@ public class ServerGamePacketListenerImpl @@ -575,7 +575,7 @@ public class ServerGamePacketListenerImpl
@@ -28,7 +28,7 @@ index ffb8d4c5b894e130d7e330459e9797356db2a262..52d0eec6588f395642df2cf6894a9461
flag2 = true; // Paper - diff on change, this should be moved wrongly flag2 = true; // Paper - diff on change, this should be moved wrongly
LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7)); LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7));
} }
@@ -1450,7 +1450,7 @@ public class ServerGamePacketListenerImpl @@ -1457,7 +1457,7 @@ public class ServerGamePacketListenerImpl
io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY, io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY,
toX, toY, toZ, toYaw, toPitch, true); toX, toY, toZ, toYaw, toPitch, true);
if (!event.isAllowed()) { if (!event.isAllowed()) {
@@ -37,7 +37,7 @@ index ffb8d4c5b894e130d7e330459e9797356db2a262..52d0eec6588f395642df2cf6894a9461
LOGGER.warn("{} moved too quickly! {},{},{}", this.player.getName().getString(), d3, d4, d5); LOGGER.warn("{} moved too quickly! {},{},{}", this.player.getName().getString(), d3, d4, d5);
} }
this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot()); this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot());
@@ -1516,7 +1516,8 @@ public class ServerGamePacketListenerImpl @@ -1523,7 +1523,8 @@ public class ServerGamePacketListenerImpl
d5 = d2 - this.player.getZ(); d5 = d2 - this.player.getZ();
d7 = d3 * d3 + d4 * d4 + d5 * d5; d7 = d3 * d3 + d4 * d4 + d5 * d5;
boolean movedWrongly = false; // Paper - Add fail move event; rename boolean movedWrongly = false; // Paper - Add fail move event; rename

View File

@@ -725,7 +725,7 @@ index d6d3c8f5e5dd4a8cab0d3fcc131c3a59f06130c6..add5b8b98e4d09617cbd4e7dd2710dc5
return false; return false;
} else if (pathentity.nodes.size() != this.nodes.size()) { } else if (pathentity.nodes.size() != this.nodes.size()) {
diff --git a/net/minecraft/world/level/pathfinder/PathFinder.java b/net/minecraft/world/level/pathfinder/PathFinder.java diff --git a/net/minecraft/world/level/pathfinder/PathFinder.java b/net/minecraft/world/level/pathfinder/PathFinder.java
index d48057d387b6937a0194e5300eb1cb46dec2896b..9912ba3bc165dfbdd55fbf02dcec28dc2902b30a 100644 index c2baadcdceb1df6a881d6f73aa4eb4dd264bcdfe..61912c67611ded5a8f34e0c55d3d3017f144f970 100644
--- a/net/minecraft/world/level/pathfinder/PathFinder.java --- a/net/minecraft/world/level/pathfinder/PathFinder.java
+++ b/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/net/minecraft/world/level/pathfinder/PathFinder.java
@@ -22,10 +22,18 @@ public class PathFinder { @@ -22,10 +22,18 @@ public class PathFinder {
@@ -828,10 +828,10 @@ index d48057d387b6937a0194e5300eb1cb46dec2896b..9912ba3bc165dfbdd55fbf02dcec28dc
for (int i2 = 0; i2 < neighbors; i2++) { for (int i2 = 0; i2 < neighbors; i2++) {
Node node2 = this.neighbors[i2]; Node node2 = this.neighbors[i2];
@@ -124,6 +169,7 @@ public class PathFinder { @@ -123,6 +168,7 @@ public class PathFinder {
best = path;
} }
} }
+ //noinspection ConstantConditions // Kaiiju - petal - ignore this warning, we know that the above loop always runs at least once since positions is not empty + //noinspection ConstantConditions // Kaiiju - petal - ignore this warning, we know that the above loop always runs at least once since positions is not empty
return best; return best;
// Paper end - Perf: remove streams and optimize collection // Paper end - Perf: remove streams and optimize collection

View File

@@ -38,7 +38,7 @@ index 1638eccef431fb68775af624110f1968f0c6dabd..62038854696bd946f58e0e8d26da0241
if (entity.getLastHurtByMob() instanceof ServerPlayer serverPlayer) { if (entity.getLastHurtByMob() instanceof ServerPlayer serverPlayer) {
DamageSource damageSource = entity.getLastDamageSource() == null DamageSource damageSource = entity.getLastDamageSource() == null
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index a5f76c81dfb148fc184d137395d5961229cb799b..265e890557dd6557b327b6252dd3177fdd112777 100644 index 95972e7d5e0357ff5884f1cb2f7596c5029f999d..290163335cf3967e2745442fd7d4d4fa16fb7bc0 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java --- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -79,7 +79,19 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -79,7 +79,19 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -71,7 +71,7 @@ index a5f76c81dfb148fc184d137395d5961229cb799b..265e890557dd6557b327b6252dd3177f
for (Heightmap.Types types : Heightmap.Types.values()) { for (Heightmap.Types types : Heightmap.Types.values()) {
if (ChunkStatus.FULL.heightmapsAfter().contains(types)) { if (ChunkStatus.FULL.heightmapsAfter().contains(types)) {
@@ -268,10 +280,27 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -266,10 +278,27 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@Override @Override
public GameEventListenerRegistry getListenerRegistry(int sectionY) { public GameEventListenerRegistry getListenerRegistry(int sectionY) {
@@ -103,7 +103,7 @@ index a5f76c81dfb148fc184d137395d5961229cb799b..265e890557dd6557b327b6252dd3177f
} }
// Paper start - Perf: Reduce instructions and provide final method // Paper start - Perf: Reduce instructions and provide final method
@@ -611,7 +640,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -609,7 +638,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
} }
private void removeGameEventListenerRegistry(int sectionY) { private void removeGameEventListenerRegistry(int sectionY) {

View File

@@ -28,10 +28,10 @@ index a814512fcfb85312474ae2c2c21443843bf57831..f80c75c561313625b694b433692aa429
public MoonriseRegionFileIO.RegionDataController.WriteData moonrise$startWrite( public MoonriseRegionFileIO.RegionDataController.WriteData moonrise$startWrite(
final int chunkX, final int chunkZ, final CompoundTag compound final int chunkX, final int chunkZ, final CompoundTag compound
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java b/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java b/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java
index 1acea58838f057ab87efd103cbecb6f5aeaef393..48a6d8b534943393c26180fbf341b77bd2d5bc48 100644 index 98fbc5c8044bd945d64569f13412a6e7e49a4e7f..395b69c70080933eb936b4eb537d5da842e8caac 100644
--- a/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java --- a/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java +++ b/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java
@@ -1462,7 +1462,7 @@ public final class MoonriseRegionFileIO { @@ -1470,7 +1470,7 @@ public final class MoonriseRegionFileIO {
public static interface IORunnable { public static interface IORunnable {
@@ -52,10 +52,10 @@ index 51c126735ace8fdde89ad97b5cab62f244212db0..4046f0aaa153e00277bf14f009fbe14a
+ public void moonrise$write(final org.stupidcraft.linearpaper.region.IRegionFile regionFile) throws IOException; // LinearPaper + public void moonrise$write(final org.stupidcraft.linearpaper.region.IRegionFile regionFile) throws IOException; // LinearPaper
} }
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 8499ee1505c0390f98d1555d47a671541727dbf8..cb7df3a09bfaa1791450628095e9788f1d5da6fc 100644 index 0e6e71030e3fd1335fff796b861524a48cb0a507..30747b30596208bc02dfb4a6c31f8afb5c1aba8e 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -941,10 +941,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -935,10 +935,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end // CraftBukkit end
if (flush) { if (flush) {
for (ServerLevel serverLevel2 : this.getAllLevels()) { for (ServerLevel serverLevel2 : this.getAllLevels()) {
@@ -118,7 +118,7 @@ index e0bcda2ddea0d6633445a7440fbf0d18e50a7653..17cdff80683de3fc166cc38d27a9e80d
class PoiUpgrader extends WorldUpgrader.SimpleRegionStorageUpgrader { class PoiUpgrader extends WorldUpgrader.SimpleRegionStorageUpgrader {
diff --git a/net/minecraft/world/level/chunk/storage/RegionFile.java b/net/minecraft/world/level/chunk/storage/RegionFile.java diff --git a/net/minecraft/world/level/chunk/storage/RegionFile.java b/net/minecraft/world/level/chunk/storage/RegionFile.java
index 5d8917dd393b0583e5a45c291729ade48296e9a8..254ff19bed684d93d5be0b03f2ceb8783eb20743 100644 index c72494e757a9dc50e053dbc873f7b30e83d5cb8c..8241165e5bbab0966647e11320693be245f5d9aa 100644
--- a/net/minecraft/world/level/chunk/storage/RegionFile.java --- a/net/minecraft/world/level/chunk/storage/RegionFile.java
+++ b/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/net/minecraft/world/level/chunk/storage/RegionFile.java
@@ -22,7 +22,7 @@ import net.minecraft.util.profiling.jfr.JvmProfiler; @@ -22,7 +22,7 @@ import net.minecraft.util.profiling.jfr.JvmProfiler;

View File

@@ -13,10 +13,10 @@ To avoid the hefty ArrayDeque's size() call, we check if we *really* need to exe
Most entities won't have any scheduled tasks, so this is a nice performance bonus. These optimizations, however, wouldn't work in a Folia environment, but because in SparklyPaper executeTick is always executed on the main thread, it ain't an issue for us (yay). Most entities won't have any scheduled tasks, so this is a nice performance bonus. These optimizations, however, wouldn't work in a Folia environment, but because in SparklyPaper executeTick is always executed on the main thread, it ain't an issue for us (yay).
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index cb7df3a09bfaa1791450628095e9788f1d5da6fc..d9d0a7dc0ccfa321c41dbdc51d0c3a7383a0f9fd 100644 index 30747b30596208bc02dfb4a6c31f8afb5c1aba8e..23af98932a9c1e6dc209a6ce40d52b5bd9ccfcc5 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -291,6 +291,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -290,6 +290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
protected boolean upnp = false; // Purpur - UPnP Port Forwarding protected boolean upnp = false; // Purpur - UPnP Port Forwarding
public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("Leaf Async Mob Spawn Thread"); // Pufferfish - optimize mob spawning // Leaf - Fix Pufferfish and Purpur patches - Unify thread name public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("Leaf Async Mob Spawn Thread"); // Pufferfish - optimize mob spawning // Leaf - Fix Pufferfish and Purpur patches - Unify thread name
@@ -24,7 +24,7 @@ index cb7df3a09bfaa1791450628095e9788f1d5da6fc..d9d0a7dc0ccfa321c41dbdc51d0c3a73
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) { public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
@@ -1680,6 +1681,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1674,6 +1675,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
// Paper start - Folia scheduler API // Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) org.bukkit.Bukkit.getGlobalRegionScheduler()).tick(); ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) org.bukkit.Bukkit.getGlobalRegionScheduler()).tick();
@@ -43,7 +43,7 @@ index cb7df3a09bfaa1791450628095e9788f1d5da6fc..d9d0a7dc0ccfa321c41dbdc51d0c3a73
getAllLevels().forEach(level -> { getAllLevels().forEach(level -> {
for (final net.minecraft.world.entity.Entity entity : level.getEntities().getAll()) { for (final net.minecraft.world.entity.Entity entity : level.getEntities().getAll()) {
if (entity.isRemoved()) { if (entity.isRemoved()) {
@@ -1691,6 +1704,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1685,6 +1698,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
}); });

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove useless creating stats json bases on player name logic
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 220d415ecd20030c930d42c018659d6d61ee1a9e..65f943dbbe6e30f0a299fdbd73b94ca60d4f406c 100644 index 8893be00aa731d26a41b5e6b3996425eced33cc4..831d1a60a5ed57d4f09b5ece6ffb50e061398cc0 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -1549,6 +1549,8 @@ public abstract class PlayerList { @@ -1555,6 +1555,8 @@ public abstract class PlayerList {
if (serverStatsCounter == null) { if (serverStatsCounter == null) {
File file = this.server.getWorldPath(LevelResource.PLAYER_STATS_DIR).toFile(); File file = this.server.getWorldPath(LevelResource.PLAYER_STATS_DIR).toFile();
File file1 = new File(file, uuid + ".json"); File file1 = new File(file, uuid + ".json");
@@ -17,7 +17,7 @@ index 220d415ecd20030c930d42c018659d6d61ee1a9e..65f943dbbe6e30f0a299fdbd73b94ca6
if (!file1.exists()) { if (!file1.exists()) {
File file2 = new File(file, displayName + ".json"); // CraftBukkit File file2 = new File(file, displayName + ".json"); // CraftBukkit
Path path = file2.toPath(); Path path = file2.toPath();
@@ -1556,6 +1558,8 @@ public abstract class PlayerList { @@ -1562,6 +1564,8 @@ public abstract class PlayerList {
file2.renameTo(file1); file2.renameTo(file1);
} }
} }

View File

@@ -19,7 +19,7 @@ index 967c01f9e40c2c73f266de281425c918472cf66e..d8464f77c54f547161356b78e7642992
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 2da6609ab8398c5c537e9065b3a82693f43200e2..c051884e5af270fc36ca2be44af8f841c92ca14c 100644 index dfb4524d80f642eff1b146dd2fbfa07f21d844c6..2c67693cc3781eb5aee10b4dfb9617cbe107e922 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -2460,6 +2460,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -2460,6 +2460,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -53,10 +53,10 @@ index 2da6609ab8398c5c537e9065b3a82693f43200e2..c051884e5af270fc36ca2be44af8f841
} else { } else {
getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true); getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 52d0eec6588f395642df2cf6894a9461d05bf6a3..2857e71ddb37f2a98c72df8cb439e2eab97d6f67 100644 index 5078887fc6056a0f3ef5acd5e052116107737e62..9c5ba056376a731871a2c00654cc179915d4dafd 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2254,6 +2254,8 @@ public class ServerGamePacketListenerImpl @@ -2261,6 +2261,8 @@ public class ServerGamePacketListenerImpl
} }
} }
@@ -65,7 +65,7 @@ index 52d0eec6588f395642df2cf6894a9461d05bf6a3..2857e71ddb37f2a98c72df8cb439e2ea
@Override @Override
public void handleChatCommand(ServerboundChatCommandPacket packet) { public void handleChatCommand(ServerboundChatCommandPacket packet) {
this.tryHandleChat(packet.command(), () -> { this.tryHandleChat(packet.command(), () -> {
@@ -2274,6 +2276,32 @@ public class ServerGamePacketListenerImpl @@ -2281,6 +2283,32 @@ public class ServerGamePacketListenerImpl
LOGGER.info("{} issued server command: {}", this.player.getScoreboardName(), prefixedCommand); LOGGER.info("{} issued server command: {}", this.player.getScoreboardName(), prefixedCommand);
} }
@@ -98,7 +98,7 @@ index 52d0eec6588f395642df2cf6894a9461d05bf6a3..2857e71ddb37f2a98c72df8cb439e2ea
PlayerCommandPreprocessEvent event = new PlayerCommandPreprocessEvent(this.getCraftPlayer(), prefixedCommand, new LazyPlayerSet(this.server)); PlayerCommandPreprocessEvent event = new PlayerCommandPreprocessEvent(this.getCraftPlayer(), prefixedCommand, new LazyPlayerSet(this.server));
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@@ -2311,11 +2339,37 @@ public class ServerGamePacketListenerImpl @@ -2318,11 +2346,37 @@ public class ServerGamePacketListenerImpl
private void performSignedChatCommand(ServerboundChatCommandSignedPacket packet, LastSeenMessages lastSeenMessages) { private void performSignedChatCommand(ServerboundChatCommandSignedPacket packet, LastSeenMessages lastSeenMessages) {
// CraftBukkit start // CraftBukkit start
@@ -138,7 +138,7 @@ index 52d0eec6588f395642df2cf6894a9461d05bf6a3..2857e71ddb37f2a98c72df8cb439e2ea
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
command = event.getMessage().substring(1); command = event.getMessage().substring(1);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 65f943dbbe6e30f0a299fdbd73b94ca60d4f406c..7d7343d4e2c206daf77a61050f2f4c229dd042cd 100644 index 831d1a60a5ed57d4f09b5ece6ffb50e061398cc0..0bb8c326a468e79a7f5a4f3395a3c2fe84352f47 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -667,6 +667,7 @@ public abstract class PlayerList { @@ -667,6 +667,7 @@ public abstract class PlayerList {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Virtual thread for chat executor
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index d9d0a7dc0ccfa321c41dbdc51d0c3a7383a0f9fd..2b28fdd68db5b5cf67023410730871843f49248b 100644 index 23af98932a9c1e6dc209a6ce40d52b5bd9ccfcc5..cc2bf337da1c240b82dc722970d6bbaf57331328 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -2680,7 +2680,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2674,7 +2674,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public final java.util.concurrent.ExecutorService chatExecutor = java.util.concurrent.Executors.newCachedThreadPool( public final java.util.concurrent.ExecutorService chatExecutor = java.util.concurrent.Executors.newCachedThreadPool(

View File

@@ -138,10 +138,10 @@ index ee8cdd532b73180cb484fcc37c36f09c40faacda..becadda1642c1b9342f2fdff1fc062a2
if (packet == null || this.processedDisconnect) { // Spigot if (packet == null || this.processedDisconnect) { // Spigot
return; return;
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 7d7343d4e2c206daf77a61050f2f4c229dd042cd..6855076ef73bbfd23e75ba4ae8eaa0ea598c9d4e 100644 index 0bb8c326a468e79a7f5a4f3395a3c2fe84352f47..fe9784751f4291ce100998bf15554d19745025ca 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -1509,7 +1509,7 @@ public abstract class PlayerList { @@ -1515,7 +1515,7 @@ public abstract class PlayerList {
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) { public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
// Paper end // Paper end
boolean flag = this.verifyChatTrusted(message); boolean flag = this.verifyChatTrusted(message);
@@ -150,7 +150,7 @@ index 7d7343d4e2c206daf77a61050f2f4c229dd042cd..6855076ef73bbfd23e75ba4ae8eaa0ea
OutgoingChatMessage outgoingChatMessage = OutgoingChatMessage.create(message); OutgoingChatMessage outgoingChatMessage = OutgoingChatMessage.create(message);
boolean flag1 = false; boolean flag1 = false;
@@ -1534,6 +1534,7 @@ public abstract class PlayerList { @@ -1540,6 +1540,7 @@ public abstract class PlayerList {
} }
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Cache player profileResult
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 9081780cff9d97b0f4a93afade62f5ef0d448209..f2b9ba7eaa02d8da54bb5f4561cdf457400b2e6b 100644 index 069477e524a28b20a0289221858bdc802704a890..595cfb31dd2c026ef9946429608c2c7497bf9de0 100644
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java --- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -71,6 +71,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -71,6 +71,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -20,7 +20,7 @@ index 9081780cff9d97b0f4a93afade62f5ef0d448209..f2b9ba7eaa02d8da54bb5f4561cdf457
public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection, boolean transferred) { public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection, boolean transferred) {
this.server = server; this.server = server;
@@ -302,9 +307,23 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -304,9 +309,23 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
String string1 = Objects.requireNonNull(ServerLoginPacketListenerImpl.this.requestedUsername, "Player name not initialized"); String string1 = Objects.requireNonNull(ServerLoginPacketListenerImpl.this.requestedUsername, "Player name not initialized");
try { try {

View File

@@ -36,10 +36,10 @@ index 5748658abf0b90812005ae9d426df92daf5532f0..4a0eed7d7645ed539857592d233214e9
this.get("generator-settings", property -> GsonHelper.parse(!property.isEmpty() ? property : "{}"), new JsonObject()), this.get("generator-settings", property -> GsonHelper.parse(!property.isEmpty() ? property : "{}"), new JsonObject()),
this.get("level-type", property -> property.toLowerCase(Locale.ROOT), WorldPresets.NORMAL.location().toString()) this.get("level-type", property -> property.toLowerCase(Locale.ROOT), WorldPresets.NORMAL.location().toString())
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index f618d3cf32be10b9ca3833231e653975bcf56e4c..92e70e132a86930d9cd0db32f10e106427621c7d 100644 index 90a8494840faa0e7f605c904c657a953be64b17d..4070a6eb52f6097e38c2d85c231d39ea3785cf46 100644
--- a/net/minecraft/server/level/ServerChunkCache.java --- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -697,6 +697,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -698,6 +698,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
} }
public ChunkGenerator getGenerator() { public ChunkGenerator getGenerator() {
@@ -48,7 +48,7 @@ index f618d3cf32be10b9ca3833231e653975bcf56e4c..92e70e132a86930d9cd0db32f10e1064
} }
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index bf364e3fad2823400ec671bc632ba50751a3f473..22b929d30938a26837b21511425c62fc1665a669 100644 index 69a807ccda1ec5334316863604aa3192065d16a1..40b6b5e4a1f73ee447ff0ee192d5d8ba5045f286 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -633,6 +633,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -633,6 +633,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable connection message
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 6855076ef73bbfd23e75ba4ae8eaa0ea598c9d4e..3847df8a77d5ceece2541f4d459d0f61e3276c86 100644 index fe9784751f4291ce100998bf15554d19745025ca..c69fcc9725738136341cc2e9d63b5e2ef11e1fe5 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -433,7 +433,7 @@ public abstract class PlayerList { @@ -433,7 +433,7 @@ public abstract class PlayerList {
@@ -35,7 +35,7 @@ index 6855076ef73bbfd23e75ba4ae8eaa0ea598c9d4e..3847df8a77d5ceece2541f4d459d0f61
this.cserver.getPluginManager().callEvent(playerQuitEvent); this.cserver.getPluginManager().callEvent(playerQuitEvent);
player.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); player.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
@@ -1661,4 +1661,34 @@ public abstract class PlayerList { @@ -1667,4 +1667,34 @@ public abstract class PlayerList {
public boolean isAllowCommandsForAllPlayers() { public boolean isAllowCommandsForAllPlayers() {
return this.allowCommandsForAllPlayers; return this.allowCommandsForAllPlayers;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove stream in BehaviorUtils
diff --git a/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java diff --git a/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
index 800bc29502ed46bd77cb04c0a79143898f109a48..a65d43087e46c77bc4fcb0617f256145bcbc203b 100644 index e7f74b4f54069ffdf74f029639cbf0756f2db095..b5257eefa04e930b45ffd9d46f28e53026ad728f 100644
--- a/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java --- a/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java +++ b/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
@@ -109,10 +109,33 @@ public class BehaviorUtils { @@ -110,10 +110,33 @@ public class BehaviorUtils {
public static SectionPos findSectionClosestToVillage(ServerLevel serverLevel, SectionPos sectionPos, int radius) { public static SectionPos findSectionClosestToVillage(ServerLevel serverLevel, SectionPos sectionPos, int radius) {
int i = serverLevel.sectionsToVillage(sectionPos); int i = serverLevel.sectionsToVillage(sectionPos);

View File

@@ -46,10 +46,10 @@ index 6c7edbbf3935c40ccb78bee680ea75431718b9bd..a1b4dc70d555cce5e06c0298736d8b89
public String toString() { public String toString() {
return "Reference{" + this.key + "=" + this.value + "}"; return "Reference{" + this.key + "=" + this.value + "}";
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 034e10e912ab9b4b5435ad88c0cd4183c8b5c1a1..1a0b7148c48a767b3a33f6377ba7d26239cda0c2 100644 index 02e13e84da7424598b329cf34b7203658f1ff0af..b79e27f03f67ecc01547163c053cdb96c16ce1bb 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -1984,7 +1984,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1987,7 +1987,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
FluidState fluidState = this.level().getFluidState(blockPos); FluidState fluidState = this.level().getFluidState(blockPos);
double d = blockPos.getY() + fluidState.getHeight(this.level(), blockPos); double d = blockPos.getY() + fluidState.getHeight(this.level(), blockPos);
if (d > eyeY) { if (d > eyeY) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable player knockback zombie
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index d8a93bd85580c4bdc52d6f368b78ad210c265ae5..6aa4153a5368645ad3f1a0b879428f9a60d8fbc6 100644 index 54b7ae45de54dc335a88a8c48e5212e7e663bc54..a7f87ba5a447be8bd1a4029da999aca34a583b5e 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -2001,6 +2001,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1998,6 +1998,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
} }
public void knockback(double strength, double x, double z, @Nullable Entity attacker, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause eventCause) { // Paper - knockback events public void knockback(double strength, double x, double z, @Nullable Entity attacker, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause eventCause) { // Paper - knockback events
@@ -17,7 +17,7 @@ index d8a93bd85580c4bdc52d6f368b78ad210c265ae5..6aa4153a5368645ad3f1a0b879428f9a
strength *= 1.0 - this.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE); strength *= 1.0 - this.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE);
if (true || !(strength <= 0.0)) { // CraftBukkit - Call event even when force is 0 if (true || !(strength <= 0.0)) { // CraftBukkit - Call event even when force is 0
// this.hasImpulse = true; // CraftBukkit - Move down // this.hasImpulse = true; // CraftBukkit - Move down
@@ -2031,6 +2033,20 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2028,6 +2030,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
} }
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Don't spawn if lastSpawnState is null
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index eacebc190a1f598314a8b812629fecd86d87ff7c..7d80766eab50ef5d63ea06098f177fd95307c1b9 100644 index bb76dbf98979fdc725676c98dafe64ea941cb290..dd956431bb882daa70267685f2283d0c358336be 100644
--- a/net/minecraft/server/level/ServerChunkCache.java --- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java +++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -648,7 +648,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -649,7 +649,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
for (LevelChunk levelChunk : chunks) { for (LevelChunk levelChunk : chunks) {
ChunkPos pos = levelChunk.getPos(); ChunkPos pos = levelChunk.getPos();
levelChunk.incrementInhabitedTime(timeInhabited); levelChunk.incrementInhabitedTime(timeInhabited);

View File

@@ -205,10 +205,10 @@ index 1b9e34574fb5b8955fa37795baebf588fdaeca2a..2cca2c7b826dc64c0642751fda006f65
attributesToSync.clear(); attributesToSync.clear();
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 677e5f31089879235677b82ff554e5b89e335a6d..9ac8f658cbdc0640112c6aa672d45761285e81a9 100644 index f9e335c86684969b744a7d7c1d96458e830bbd35..9f3fe9ffdbd2973754898233cca60b7335d671c9 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -2494,7 +2494,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -2495,7 +2495,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@Override @Override
public LevelEntityGetter<Entity> getEntities() { public LevelEntityGetter<Entity> getEntities() {
@@ -218,10 +218,10 @@ index 677e5f31089879235677b82ff554e5b89e335a6d..9ac8f658cbdc0640112c6aa672d45761
} }
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e47a9ee15c9fb7fa79c0fa92f1193adf4efb667d..72d520c91e070ce6d309f68c0558d82baffd6eb0 100644 index b03ec4f449bf7c7bd56bf763fe5c2841ca1408ef..d9dfa7c0c79166156c6e166d721e804264d3c59c 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1810,7 +1810,7 @@ public class ServerGamePacketListenerImpl @@ -1817,7 +1817,7 @@ public class ServerGamePacketListenerImpl
} }
public void internalTeleport(PositionMoveRotation posMoveRotation, Set<Relative> relatives) { public void internalTeleport(PositionMoveRotation posMoveRotation, Set<Relative> relatives) {

View File

@@ -8,10 +8,10 @@ avoids multiple casting in Entity#distanceTo, using Math#sqrt directly instead o
these methods more able to be inlined by the JIT compiler. these methods more able to be inlined by the JIT compiler.
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 1a0b7148c48a767b3a33f6377ba7d26239cda0c2..236c5d98b27966f9cea0bfbe8e0dcd07987c71aa 100644 index b79e27f03f67ecc01547163c053cdb96c16ce1bb..0daece03b8b14dfa9198952064545b50a0de7d1c 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -2194,31 +2194,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2197,31 +2197,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return new Vec3(this.xOld, this.yOld, this.zOld); return new Vec3(this.xOld, this.yOld, this.zOld);
} }
@@ -43,7 +43,7 @@ index 1a0b7148c48a767b3a33f6377ba7d26239cda0c2..236c5d98b27966f9cea0bfbe8e0dcd07
public void playerTouch(Player player) { public void playerTouch(Player player) {
} }
@@ -5230,4 +5205,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5233,4 +5208,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// Purpur end - Ridables // Purpur end - Ridables

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Cache tile entity position
Dreeam TODO: Check if there is a way to cache isRemoved without problem Dreeam TODO: Check if there is a way to cache isRemoved without problem
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index 265e890557dd6557b327b6252dd3177fdd112777..465cd4f6214c949040a35bc9e1e969c33469f2a6 100644 index 290163335cf3967e2745442fd7d4d4fa16fb7bc0..238e015d4ff5fabb99e569118f253366d545d269 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java --- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -938,10 +938,12 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -936,10 +936,12 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
private final T blockEntity; private final T blockEntity;
private final BlockEntityTicker<T> ticker; private final BlockEntityTicker<T> ticker;
private boolean loggedInvalidBlockState; private boolean loggedInvalidBlockState;
@@ -22,7 +22,7 @@ index 265e890557dd6557b327b6252dd3177fdd112777..465cd4f6214c949040a35bc9e1e969c3
} }
@Override @Override
@@ -982,7 +984,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -980,7 +982,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@Override @Override
public BlockPos getPos() { public BlockPos getPos() {
@@ -31,7 +31,7 @@ index 265e890557dd6557b327b6252dd3177fdd112777..465cd4f6214c949040a35bc9e1e969c3
} }
@Override @Override
@@ -1009,13 +1011,16 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -1007,13 +1009,16 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
static class RebindableTickingBlockEntityWrapper implements TickingBlockEntity { static class RebindableTickingBlockEntityWrapper implements TickingBlockEntity {
private TickingBlockEntity ticker; private TickingBlockEntity ticker;
@@ -48,7 +48,7 @@ index 265e890557dd6557b327b6252dd3177fdd112777..465cd4f6214c949040a35bc9e1e969c3
} }
@Override @Override
@@ -1030,7 +1035,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -1028,7 +1033,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@Override @Override
public BlockPos getPos() { public BlockPos getPos() {

View File

@@ -7,10 +7,10 @@ Original license: AGPL-3.0
Original project: https://github.com/snackbag/TT20 Original project: https://github.com/snackbag/TT20
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 2b28fdd68db5b5cf67023410730871843f49248b..d6266bd00da49a9121916fa03a7b920cebec2ace 100644 index cc2bf337da1c240b82dc722970d6bbaf57331328..3597f7dd2d71fe136604518985e3d14461a6aad4 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1556,6 +1556,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1550,6 +1550,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.server.spark.tickStart(); // Paper - spark this.server.spark.tickStart(); // Paper - spark
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

View File

@@ -70,16 +70,3 @@ index 57ae4aaf1431021daf77c5638038d4910a358155..d4317668df3b1a2ae1b6091b65dfa9da
} }
@Override @Override
diff --git a/net/minecraft/world/level/levelgen/synth/PerlinNoise.java b/net/minecraft/world/level/levelgen/synth/PerlinNoise.java
index 2c28bb2fed04542a2ee126fe0c1c1f0253a3e2eb..5632cfde8118bd8db79b9abdb8b57edf94c44f96 100644
--- a/net/minecraft/world/level/levelgen/synth/PerlinNoise.java
+++ b/net/minecraft/world/level/levelgen/synth/PerlinNoise.java
@@ -215,7 +215,7 @@ public class PerlinNoise {
}
public static double wrap(double value) {
- return value - Mth.lfloor(value / 3.3554432E7 + 0.5) * 3.3554432E7;
+ return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7; // Leaf - C2ME - Optimize world gen math - Avoid casting
}
protected int firstOctave() {

View File

@@ -84,7 +84,7 @@ index 571db5f9bf94745a8afe2cd313e593fb15db5e37..108db549eeb4a33c9a9c0c1983376613
valueInMap = new ServerChunkTasks( valueInMap = new ServerChunkTasks(
keyInMap, ServerLightQueue.this.lightInterface, ServerLightQueue.this, priority keyInMap, ServerLightQueue.this.lightInterface, ServerLightQueue.this, priority
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 682024138e792fa4c72189ed06226f0a92ef3d7f..44c7f1cb7aab6861836f653ddac5e2c9b6e35471 100644 index 9f3fe9ffdbd2973754898233cca60b7335d671c9..b588386ade7a23750dcf5f64b383760404359af2 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -508,7 +508,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -508,7 +508,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -96,7 +96,7 @@ index 682024138e792fa4c72189ed06226f0a92ef3d7f..44c7f1cb7aab6861836f653ddac5e2c9
return; return;
} }
@@ -2567,7 +2567,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -2568,7 +2568,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public boolean isNaturalSpawningAllowed(ChunkPos chunkPos) { public boolean isNaturalSpawningAllowed(ChunkPos chunkPos) {
// Paper start - rewrite chunk system // Paper start - rewrite chunk system
@@ -106,7 +106,7 @@ index 682024138e792fa4c72189ed06226f0a92ef3d7f..44c7f1cb7aab6861836f653ddac5e2c9
// Paper end - rewrite chunk system // Paper end - rewrite chunk system
} }
diff --git a/net/minecraft/world/level/ChunkPos.java b/net/minecraft/world/level/ChunkPos.java diff --git a/net/minecraft/world/level/ChunkPos.java b/net/minecraft/world/level/ChunkPos.java
index f758602f1929fe0e19b91989d240b24d9d0d1ca6..619cfa7eba6ed662278293c524c158ce798cd194 100644 index 6e2b2d258e47dcca30a5ad9f4f492598f2bc21fb..9b6db05fa2e8e667453e9b3c703ae1cd519e30d5 100644
--- a/net/minecraft/world/level/ChunkPos.java --- a/net/minecraft/world/level/ChunkPos.java
+++ b/net/minecraft/world/level/ChunkPos.java +++ b/net/minecraft/world/level/ChunkPos.java
@@ -47,6 +47,7 @@ public class ChunkPos { @@ -47,6 +47,7 @@ public class ChunkPos {

View File

@@ -129,10 +129,10 @@ index 0b5979723bb30f9011ac64c36d894aa41713ec9b..c3d45e60e262b8e34d76f0425f6bef79
if (stream != null) { if (stream != null) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 64e3c7bd0a1ff93dd87e688f9e49e213c8f6670e..4e226b6f882a306ab18adcf89b096faa7272d12a 100644 index 349f8207d8a9bc4b2c6be9e64b4325a7a406e706..e45d5da04428c26fc6aa97fba974bde3573d7950 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java --- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -25,7 +25,7 @@ public class WatchdogThread extends Thread { @@ -25,7 +25,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre
private volatile boolean stopping; private volatile boolean stopping;
private WatchdogThread(long timeoutTime, boolean restart) { private WatchdogThread(long timeoutTime, boolean restart) {
@@ -141,7 +141,7 @@ index 64e3c7bd0a1ff93dd87e688f9e49e213c8f6670e..4e226b6f882a306ab18adcf89b096faa
this.timeoutTime = timeoutTime; this.timeoutTime = timeoutTime;
this.restart = restart; this.restart = restart;
this.earlyWarningEvery = Math.min(GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper this.earlyWarningEvery = Math.min(GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper
@@ -82,15 +82,15 @@ public class WatchdogThread extends Thread { @@ -82,15 +82,15 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre
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.
*/ */
@@ -160,7 +160,7 @@ index 64e3c7bd0a1ff93dd87e688f9e49e213c8f6670e..4e226b6f882a306ab18adcf89b096faa
if (net.minecraft.world.level.Level.lastPhysicsProblem != null) { if (net.minecraft.world.level.Level.lastPhysicsProblem != null) {
logger.log(Level.SEVERE, "------------------------------"); logger.log(Level.SEVERE, "------------------------------");
@@ -115,13 +115,13 @@ public class WatchdogThread extends Thread { @@ -115,13 +115,13 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre
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.
*/ */
@@ -176,7 +176,7 @@ index 64e3c7bd0a1ff93dd87e688f9e49e213c8f6670e..4e226b6f882a306ab18adcf89b096faa
FeatureHooks.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - log detailed tick information FeatureHooks.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - log detailed tick information
WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE), logger); WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE), logger);
logger.log(Level.SEVERE, "------------------------------"); logger.log(Level.SEVERE, "------------------------------");
@@ -139,7 +139,7 @@ public class WatchdogThread extends Thread { @@ -139,7 +139,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre
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.
*/ */

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 4b74604c1f9f84e87f91dd390c83850f088a736b Commit: 5583a3f19b75a9d07367e2ca80adbbafa9af6593
Patches listed below are removed in this patch, They exists in Gale or Leaf: Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "Rebrand.patch" * "Rebrand.patch"
@@ -143,7 +143,7 @@ index 6bdc683b5ade408ee27f1d6636b4d60c8c89cb7c..bc6d3898d8784e50a0e2264bbb5bde63
ignored.add("goal_selector_1"); ignored.add("goal_selector_1");
ignored.add("goal_selector_2"); ignored.add("goal_selector_2");
diff --git a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java diff --git a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java
index f0fce4113fb07c64adbec029d177c236cbdcbae8..da9ba821362605ca86df0fc6cb4f3cabfc4d5809 100644 index f0fce4113fb07c64adbec029d177c236cbdcbae8..94dc9f97de086e3ab51d1b000eb116cf868a75db 100644
--- a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java --- a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java
+++ b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java +++ b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java
@@ -78,10 +78,10 @@ public class PaperPluginsCommand extends BukkitCommand { @@ -78,10 +78,10 @@ public class PaperPluginsCommand extends BukkitCommand {
@@ -205,7 +205,7 @@ index f0fce4113fb07c64adbec029d177c236cbdcbae8..da9ba821362605ca86df0fc6cb4f3cab
+ hover.append(getAuthors(provider.getMeta())); + hover.append(getAuthors(provider.getMeta()));
+ } + }
+ +
+ pluginName.hoverEvent(hover.build()); + pluginName = pluginName.hoverEvent(hover.build());
+ } + }
+ // Purpur end - Improve output of plugins command + // Purpur end - Improve output of plugins command
@@ -559,7 +559,7 @@ index 94ca0407303c4493ab4928b12ec6ecc75aaca549..f2d87c12dd19210ce7e2147fada5c101
+ // 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 aaa68b6756397df3eec5c0b08e9c19fa8d2e58b6..de2c10a18869d3fcfc1ae1329489155d7bdc4dd8 100644 index 5ad91693178b5645c98804ab04a56e85a28eb426..60389075b86a7c030e59fbc4c493a4f31012a66e 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
@@ -428,6 +428,20 @@ public final class CraftServer implements Server { @@ -428,6 +428,20 @@ public final class CraftServer implements Server {
@@ -687,7 +687,7 @@ index aaa68b6756397df3eec5c0b08e9c19fa8d2e58b6..de2c10a18869d3fcfc1ae1329489155d
@Override @Override
public void restart() { public void restart() {
org.spigotmc.RestartCommand.restart(); org.spigotmc.RestartCommand.restart();
@@ -3362,4 +3445,18 @@ public final class CraftServer implements Server { @@ -3361,4 +3444,18 @@ public final class CraftServer implements Server {
return MinecraftServer.lastTickOversleepTime; return MinecraftServer.lastTickOversleepTime;
} }
// Gale end - YAPFA - last tick time - API // Gale end - YAPFA - last tick time - API
@@ -707,10 +707,10 @@ index aaa68b6756397df3eec5c0b08e9c19fa8d2e58b6..de2c10a18869d3fcfc1ae1329489155d
+ // Purpur end - Lagging threshold + // Purpur end - Lagging threshold
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 91156797d0ffed5227851b398d8b896aef71d614..ca5897526ecb0323ac18842048fcc2a28cc5faff 100644 index 20f709a4e8d7756375dc7742a87bdac57f1b4d1f..fca96230406e49afef4c55eb4e1b7fd4478ccbab 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2349,6 +2349,50 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2372,6 +2372,50 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
} }
@@ -762,7 +762,7 @@ index 91156797d0ffed5227851b398d8b896aef71d614..ca5897526ecb0323ac18842048fcc2a2
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 1df9bed6d3dc1e28898af8d5ad6a854dd5ccab1b..251922d1ee5ef93ef0383f4360e9a7ea17dfb195 100644 index d0becb56a9911ef4cc55ae8d7c47832f442ad52f..bdce5f9a589fedf8c7a59da9cde56056413dd723 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
@@ -176,6 +176,13 @@ public class Main { @@ -176,6 +176,13 @@ public class Main {
@@ -1140,10 +1140,10 @@ index 351f42842b780d053cd2e5bad9ae299449141b10..054d2c2b93c43faeeaf56f482eb7b943
+ // Purpur end - Llama API + // Purpur end - Llama API
} }
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 98fc89cc7a715d35b62e13f8ecbe56c05605ca64..9fbbdc9664353fd2be8eae112e5cfe8880d51d08 100644 index baffa036078bfc38505f9008a54a5abff65704db..d84d716629d93e264bc40c565e9fedd1ce38722c 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
@@ -585,10 +585,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -591,10 +591,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override @Override
public void setPlayerListName(String name) { public void setPlayerListName(String name) {
@@ -1160,7 +1160,7 @@ index 98fc89cc7a715d35b62e13f8ecbe56c05605ca64..9fbbdc9664353fd2be8eae112e5cfe88
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) { for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) { if (player.getBukkitEntity().canSee(this)) {
@@ -1426,6 +1431,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1433,6 +1438,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start - Teleport passenger API // Paper start - Teleport passenger API
// Don't allow teleporting between worlds while keeping passengers // Don't allow teleporting between worlds while keeping passengers
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) { if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
@@ -1168,7 +1168,7 @@ index 98fc89cc7a715d35b62e13f8ecbe56c05605ca64..9fbbdc9664353fd2be8eae112e5cfe88
return false; return false;
} }
@@ -1447,6 +1453,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1454,6 +1460,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
} }
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
@@ -1176,7 +1176,7 @@ index 98fc89cc7a715d35b62e13f8ecbe56c05605ca64..9fbbdc9664353fd2be8eae112e5cfe88
return false; return false;
} }
@@ -2745,6 +2752,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2752,6 +2759,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f; return this.getHandle().getAbilities().walkingSpeed * 2f;
} }
@@ -1205,10 +1205,11 @@ index 98fc89cc7a715d35b62e13f8ecbe56c05605ca64..9fbbdc9664353fd2be8eae112e5cfe88
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);
} }
@@ -3541,4 +3570,74 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3581,4 +3610,75 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData())); handle.containerMenu.broadcastChanges();
return new PaperPlayerGiveResult(leftovers.build(), drops.build());
} }
// Paper end - entity effect API +
+ // Purpur start - Purpur client support + // Purpur start - Purpur client support
+ @Override + @Override
+ public boolean usesPurpurClient() { + public boolean usesPurpurClient() {

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 9fbbdc9664353fd2be8eae112e5cfe8880d51d08..b60982fa6e11c1f72e2c7021059ebbd04e064364 100644 index d84d716629d93e264bc40c565e9fedd1ce38722c..b78782a90bd9dcc43e9b98781f95a619b00d88cb 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
@@ -3640,4 +3640,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3681,4 +3681,31 @@ 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 - Death screen API // Purpur end - Death screen API

View File

@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com> Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
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 b60982fa6e11c1f72e2c7021059ebbd04e064364..7729f49719ce1d42fcbc33452d2b4f8f027283da 100644 index b78782a90bd9dcc43e9b98781f95a619b00d88cb..5480b93b922f282fb2193a5b7ed16651764de5f5 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
@@ -1376,6 +1376,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1383,6 +1383,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end - Teleportation API // Paper end - Teleportation API
} }

View File

@@ -27,7 +27,7 @@ index 4c003acccdd2dd17918b15316001e52e7670123e..780f3a48152fef6a06dc67bf7fbd1965
HandlerList handlers = event.getHandlers(); HandlerList handlers = event.getHandlers();
RegisteredListener[] listeners = handlers.getRegisteredListeners(); RegisteredListener[] listeners = handlers.getRegisteredListeners();
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 dd054c184095644a122be0f610ade1d47d9be74a..da73276a7f7e91911919ffca8ec231f37c18ab53 100644 index 399cf37a3e823524aea48c288d270820696ba666..78904ae17d5f1b12da4825c251d8331376de78d6 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
@@ -321,6 +321,8 @@ public final class CraftServer implements Server { @@ -321,6 +321,8 @@ public final class CraftServer implements Server {
@@ -48,7 +48,7 @@ index dd054c184095644a122be0f610ade1d47d9be74a..da73276a7f7e91911919ffca8ec231f3
@Override @Override
public CraftPlayer apply(ServerPlayer player) { public CraftPlayer apply(ServerPlayer player) {
return player.getBukkitEntity(); return player.getBukkitEntity();
@@ -3459,4 +3461,11 @@ public final class CraftServer implements Server { @@ -3458,4 +3460,11 @@ public final class CraftServer implements Server {
return getServer().lagging; return getServer().lagging;
} }
// Purpur end - Lagging threshold // Purpur end - Lagging threshold
@@ -74,10 +74,10 @@ index dca2761fe4765c6e95b5db0d0cb5c818eb8697b4..3235ec3415407d1f4fa420d398364fd6
if (entity instanceof EnderDragonPart complexPart) { if (entity instanceof EnderDragonPart complexPart) {
if (complexPart.parentMob instanceof EnderDragon) { if (complexPart.parentMob instanceof EnderDragon) {
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 7729f49719ce1d42fcbc33452d2b4f8f027283da..9f29ca8f0c32687705906ed912721c3dbca5299c 100644 index 5480b93b922f282fb2193a5b7ed16651764de5f5..6b72004ac0d40bba230e4d721a868fdd37117e22 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
@@ -2276,7 +2276,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2283,7 +2283,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override @Override
public boolean canSee(Player player) { public boolean canSee(Player player) {

View File

@@ -16,10 +16,10 @@ 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/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 9f29ca8f0c32687705906ed912721c3dbca5299c..69a4e5c8ed5dddf9001f65b006922aa84ca0d6cb 100644 index 6b72004ac0d40bba230e4d721a868fdd37117e22..9353905312c53b9e54f54d774b80a22f414a9a56 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
@@ -207,7 +207,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -213,7 +213,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private boolean hasPlayedBefore = false; private boolean hasPlayedBefore = false;
private final ConversationTracker conversationTracker = new ConversationTracker(); private final ConversationTracker conversationTracker = new ConversationTracker();
private final Set<String> channels = new HashSet<String>(); private final Set<String> channels = new HashSet<String>();
@@ -28,7 +28,7 @@ index 9f29ca8f0c32687705906ed912721c3dbca5299c..69a4e5c8ed5dddf9001f65b006922aa8
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>(); private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
private int hash = 0; private int hash = 0;
@@ -2281,9 +2281,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2288,9 +2288,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override @Override
public boolean canSee(org.bukkit.entity.Entity entity) { public boolean canSee(org.bukkit.entity.Entity entity) {

7
scripts/upstreamCommit.sh Normal file → Executable file
View File

@@ -11,7 +11,7 @@
# flag: --leaves HASH - the commit hash to use for comparing commits between leaves (LeavesMC/Leaves/compare/HASH...HEAD) # flag: --leaves HASH - the commit hash to use for comparing commits between leaves (LeavesMC/Leaves/compare/HASH...HEAD)
function getCommits() { function getCommits() {
curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/"$1"/compare/"$2"..."$3" | jq -r '.commits[] | "'"$1"'@\(.sha[:7]) \(.commit.message | split("\r\n")[0] | split("\n")[0])"' curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/"$1"/compare/"$2"..."$3" | jq -r '.commits[] | "'"$1"'@\(.sha[:8]) \(.commit.message | split("\r\n")[0] | split("\n")[0])" | sub("\\[ci( |-)skip]"; "[ci/skip]")'
} }
( (
@@ -23,8 +23,9 @@ paperHash=""
purpurHash="" purpurHash=""
leavesHash="" leavesHash=""
TEMP=$(getopt --long paper:,gale:,purpur:,leaves: -o "" -- "$@") # Useless params standardize
eval set -- "$TEMP" # TEMP=$(getopt --long paper:,gale:,purpur:,leaves: -o "" -- "$@")
# eval set -- "$TEMP"
while true; do while true; do
case "$1" in case "$1" in
--paper) --paper)