9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-23 17:09:29 +00:00

Updated Upstream (Paper/Gale/Purpur)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@1c3c47a Correctly check enchants for ItemStack#damage (#11240)
PaperMC/Paper@1187544 Fix teleport event getTo returning null (#11239)
PaperMC/Paper@dd941cc Re-add patches for can-place/can-destroy API (#11238)
PaperMC/Paper@ab0d24a Configuration for horizontal-only item merging (#11219)
PaperMC/Paper@098bd39 Remove arbitrary book page limit (#11228)
PaperMC/Paper@f97aff7 [ci skip] Fix Effect javadocs (#11182)
PaperMC/Paper@4a97ba3 Fix `setSendViewDistance`'s return (#11247)
PaperMC/Paper@1798e94 Fix BasicCommand suggestion arg count (#11241)
PaperMC/Paper@7c9240f Improve standard messenger logging
PaperMC/Paper@9ab644e Fix `TooltipContext.create` being wrong(#11254)
PaperMC/Paper@11b4ac7 Fix disableEndCredits world config (#11261)
PaperMC/Paper@bf5852a Fix NPE for PlayerPostRespawnEvent#getRespawnedLocation (#11268)
PaperMC/Paper@fb53074 Apply optimise collision checking in move packet handling patch
PaperMC/Paper@81bfda8 [ci skip] Specify rebase location in CONTRIBUTING (#11255)
PaperMC/Paper@9571983 Fix scanForLegacyEnderDragon world config (#11262)
PaperMC/Paper@ec55c11 Fix indestructable light blocks (#11275)
PaperMC/Paper@1b8ab11 Add Configuration for vertical Despawn Ranges (#10440)
PaperMC/Paper@534ab86 [ci-skip] Revert "Add Configuration for vertical Despawn Ranges (#10440)" (#11278)
PaperMC/Paper@e619744 Allow skipping of world symlink validation (#11250)
PaperMC/Paper@78216fe Re-implement portalCreateRadius world config (#11267)
PaperMC/Paper@4829fbf Handle custom registry elements properly (#11230)
PaperMC/Paper@d5ffc57 Implement more methods for horse inventories (#11147)
PaperMC/Paper@52ae4ad Migrate ArmorStand meta to using entity tag (#11107)
PaperMC/Paper@75655ec Add Configuration for vertical Despawn Ranges (#11279)
PaperMC/Paper@0e73617 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#11284)
PaperMC/Paper@66a97cc Update item data sanitization (#11227)
PaperMC/Paper@2e82fd2 Add even more Enchantment API (#11115)
PaperMC/Paper@57dd822 Leashable API (#10961)
PaperMC/Paper@8c3018a Fix Selector Arguments not working with permission (#11286)
PaperMC/Paper@4401748 Fix CraftBukkit drag system (#10703)
PaperMC/Paper@64c9ee6 Allow getting/setting the sign's editor uuid (#10637)

Gale Changes:
Dreeam-qwq/Gale@dc228bb Updated Upstream (Paper)
Dreeam-qwq/Gale@ecbaa9c Updated Upstream (Paper)
Dreeam-qwq/Gale@7e2df5b Updated Upstream (Paper)
Dreeam-qwq/Gale@ea59414 Updated Upstream (Paper)
Dreeam-qwq/Gale@e373e97 Updated Upstream (Paper)

Purpur Changes:
PurpurMC/Purpur@366af80 Updated Upstream (Paper)
PurpurMC/Purpur@07979c3 Updated Upstream (Paper)
PurpurMC/Purpur@3f790ac Updated Upstream (Paper)
PurpurMC/Purpur@201e928 Updated Upstream (Pufferfish) (#1575)
PurpurMC/Purpur@f2307b8 Updated Upstream (Paper)
PurpurMC/Purpur@bba87bf Updated Upstream (Paper)
PurpurMC/Purpur@f530395 Fix no exp drops from spawners using silk touch pickaxe without option enabled  (#1582)
This commit is contained in:
Dreeam
2024-08-17 19:03:05 -04:00
parent 61075f8cb2
commit 778edd2e05
19 changed files with 152 additions and 130 deletions

View File

@@ -2,7 +2,7 @@ group = cn.dreeam.leaf
mcVersion = 1.21.1 mcVersion = 1.21.1
version = 1.21.1-R0.1-SNAPSHOT version = 1.21.1-R0.1-SNAPSHOT
galeCommit = f2ee091748ade732ccc2c147a80ee064f03cffbe galeCommit = e373e979d3bb951ad01f6e83d3cc09715528b6d6
org.gradle.caching = true org.gradle.caching = true
org.gradle.parallel = true org.gradle.parallel = true

View File

@@ -5,15 +5,19 @@ Subject: [PATCH] Rebrand
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java
index bdc8d830f54e4567ec0b03041221fdcd016ce76c..957f15a91f6aa1235c12b82079e32bb42449c78d 100644 index bdc8d830f54e4567ec0b03041221fdcd016ce76c..25ad7e9a9aa11049ad6ce2d2c829d3e75f8886c2 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java --- a/src/main/java/io/papermc/paper/ServerBuildInfo.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java
@@ -25,6 +25,13 @@ public interface ServerBuildInfo { @@ -25,6 +25,17 @@ public interface ServerBuildInfo {
Key BRAND_GALE_ID = Key.key("galemc", "gale"); Key BRAND_GALE_ID = Key.key("galemc", "gale");
// Gale end - branding changes // Gale end - branding changes
+ // Leaf start + // Leaf start
+ /** + /**
+ * The brand id for Pufferfish.
+ */
+ Key BRAND_PUFFERFISH_ID = Key.key("pufferfish-gg", "pufferfish");
+ /**
+ * The brand id for Leaf. + * The brand id for Leaf.
+ */ + */
+ Key BRAND_LEAF_ID = Key.key("winds-studio", "leaf"); + Key BRAND_LEAF_ID = Key.key("winds-studio", "leaf");

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: abf2f2109bd550623a8b3e9d398995aa0185e70c Commit: f5303959cdb3274a2672962faaa3889592ed5b31
Patches below are removed in this patch: Patches below are removed in this patch:
Pufferfish-API-Changes.patch Pufferfish-API-Changes.patch
@@ -17,7 +17,7 @@ Remove-Timings.patch
Add-log-suppression-for-LibraryLoader.patch Add-log-suppression-for-LibraryLoader.patch
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java
index 957f15a91f6aa1235c12b82079e32bb42449c78d..9fa8d7fac5bf415b40c3a9a38108fa5476ed7619 100644 index 25ad7e9a9aa11049ad6ce2d2c829d3e75f8886c2..0cafbbcb8fe294bcd84b93da8fba96368971dffd 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java --- a/src/main/java/io/papermc/paper/ServerBuildInfo.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java
@@ -25,6 +25,13 @@ public interface ServerBuildInfo { @@ -25,6 +25,13 @@ public interface ServerBuildInfo {
@@ -33,7 +33,7 @@ index 957f15a91f6aa1235c12b82079e32bb42449c78d..9fa8d7fac5bf415b40c3a9a38108fa54
+ +
// Leaf start // Leaf start
/** /**
* The brand id for Leaf. * 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 cd191a6039717c70d2b8be0ae475d040cad54f96..c7e2dd4465334ab845e931ed14fbfde43b6d4ea4 100644 index cd191a6039717c70d2b8be0ae475d040cad54f96..c7e2dd4465334ab845e931ed14fbfde43b6d4ea4 100644
--- a/src/main/java/org/bukkit/Bukkit.java --- a/src/main/java/org/bukkit/Bukkit.java
@@ -905,7 +905,7 @@ index bcc6ba95bd21c7972865838c636a03f50b6c1f1a..c3fcd8dd7dbb1e1a18e17c014c1e6411
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index a1e54e9d14393a6c0ea57cca854071c5396d9717..e492d3707e948cd3936f0f9c5eea4668fb1fe249 100644 index fcdc5fce88720cc926a3953d80b5045113d1516c..5afdebfdf74d4c428a58045db2190dded7f68307 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java --- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -1458,4 +1458,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -1458,4 +1458,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur generated-api Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: abf2f2109bd550623a8b3e9d398995aa0185e70c Commit: f5303959cdb3274a2672962faaa3889592ed5b31
diff --git a/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/com/destroystokyo/paper/entity/ai/VanillaGoal.java diff --git a/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index 02411466bdcf4ff731f01ccebb2c99942e0db878..2718c0e5061838b01881bb231c53f4da348adce3 100644 index 02411466bdcf4ff731f01ccebb2c99942e0db878..2718c0e5061838b01881bb231c53f4da348adce3 100644

View File

@@ -69,7 +69,7 @@ index cb61462d4691a055a4b25f7b953609d8a154fdfe..b2d8a858d8767bd6ca52e0b8db847579
private String descriptionId; private String descriptionId;
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 6e6095e8bfab28d8c1ac8bf65bb9a0c8ee19088e..96e7e9ef8bf9ab6902638ac4ba270a1f98a36cdf 100644 index 5f5265631641171345fc6564eb93b68dd8131b28..552b9f0ec8ab1aaea4cf0a212be628b49416c806 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -237,10 +237,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -237,10 +237,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -85,7 +85,7 @@ index 6e6095e8bfab28d8c1ac8bf65bb9a0c8ee19088e..96e7e9ef8bf9ab6902638ac4ba270a1f
this.targetSelector.tick(); this.targetSelector.tick();
} }
} }
@@ -916,10 +916,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -923,10 +923,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
int i = this.tickCount + this.getId(); int i = this.tickCount + this.getId();
if (i % 2 != 0 && this.tickCount > 1) { if (i % 2 != 0 && this.tickCount > 1) {

View File

@@ -3,17 +3,16 @@ From: Github Actions <no-reply@github.com>
Date: Fri, 21 Jun 2024 03:34:00 +0000 Date: Fri, 21 Jun 2024 03:34:00 +0000
Subject: [PATCH] Purpur Server Changes Subject: [PATCH] Purpur Server Changes
TODO - Dreeam: Check Fix-pufferfish-issues.patch
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 930003b1d1826c083f3cee4db79621e6a7d726f1 Commit: f5303959cdb3274a2672962faaa3889592ed5b31
Patches below are removed in this patch: Patches below are removed in this patch:
Pufferfish-Server-Changes.patch
Fix-pufferfish-issues.patch
Brand changes in Rebrand.patch Brand changes in Rebrand.patch
Metrics changes in Purpur-config-files.patch Metrics changes in Purpur-config-files.patch
Fix-pufferfish-issues.patch
Fix-decompile-errors.patch Fix-decompile-errors.patch
Configurable-server-mod-name.patch Configurable-server-mod-name.patch
Alternative-Keepalive-Handling.patch Alternative-Keepalive-Handling.patch
@@ -29,6 +28,7 @@ MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch
Option-to-disable-kick-for-out-of-order-chat.patch Option-to-disable-kick-for-out-of-order-chat.patch
Remove-Timings.patch Remove-Timings.patch
Remove-Mojang-Profiler.patch Remove-Mojang-Profiler.patch
Make-pufferfish-config-relocatable.patch
MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
@@ -1155,7 +1155,7 @@ index 881f507ff6fcac86f8ef04cbd3ff10c41c840d52..0ed4f5a291ef5009a0535273ac52a9fb
} }
// Paper end - Fix merchant inventory not closing on entity removal // Paper end - Fix merchant inventory not closing on entity removal
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7f11cb418 100644 index eff9dfeb7a95107b87748152ca4e59348243a66b..e6d22346d37261751563b039ae2ad8629ff83d8e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -303,6 +303,10 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -303,6 +303,10 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -1230,7 +1230,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && source.is(DamageTypeTags.IS_FALL); boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && source.is(DamageTypeTags.IS_FALL);
if (!flag && this.spawnInvulnerableTime > 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) { if (!flag && this.spawnInvulnerableTime > 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) {
@@ -1400,6 +1430,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -1399,6 +1429,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION); worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
this.unsetRemoved(); this.unsetRemoved();
// CraftBukkit end // CraftBukkit end
@@ -1238,7 +1238,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
this.setServerLevel(worldserver); this.setServerLevel(worldserver);
this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.teleport(exit); // CraftBukkit - use internal teleport without event
this.connection.resetPosition(); this.connection.resetPosition();
@@ -1503,7 +1534,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -1502,7 +1533,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
return entitymonster.isPreventingPlayerRest(this); return entitymonster.isPreventingPlayerRest(this);
}); });
@@ -1247,7 +1247,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.NOT_SAFE); return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.NOT_SAFE);
} }
} }
@@ -1543,7 +1574,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -1542,7 +1573,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
}); });
if (!this.serverLevel().canSleepThroughNights()) { if (!this.serverLevel().canSleepThroughNights()) {
@@ -1268,7 +1268,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
} }
((ServerLevel) this.level()).updateSleepingPlayerList(); ((ServerLevel) this.level()).updateSleepingPlayerList();
@@ -1665,6 +1708,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -1664,6 +1707,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@Override @Override
public void openTextEdit(SignBlockEntity sign, boolean front) { public void openTextEdit(SignBlockEntity sign, boolean front) {
@@ -1276,7 +1276,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), sign.getBlockPos())); this.connection.send(new ClientboundBlockUpdatePacket(this.level(), sign.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), front)); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), front));
} }
@@ -2001,6 +2045,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2000,6 +2044,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
this.lastSentExp = -1; // CraftBukkit - Added to reset this.lastSentExp = -1; // CraftBukkit - Added to reset
} }
@@ -1303,7 +1303,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
@Override @Override
public void displayClientMessage(Component message, boolean overlay) { public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay); this.sendSystemMessage(message, overlay);
@@ -2341,8 +2405,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2340,8 +2404,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
public void resetLastActionTime() { public void resetLastActionTime() {
this.lastActionTime = Util.getMillis(); this.lastActionTime = Util.getMillis();
@@ -1372,7 +1372,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
public ServerStatsCounter getStats() { public ServerStatsCounter getStats() {
return this.stats; return this.stats;
} }
@@ -2946,4 +3070,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2945,4 +3069,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
return (CraftPlayer) super.getBukkitEntity(); return (CraftPlayer) super.getBukkitEntity();
} }
// CraftBukkit end // CraftBukkit end
@@ -1498,7 +1498,7 @@ index a720a05c47b2137a07515461960603cc5c939d16..b66fdb789fcb460d63fd81540112d655
try { try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8); String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6eb053ad6 100644 index 73fb88a1c52aef0bc151b7857d1225884e81e9ae..46242ef7c5607780f84046fe039efc11732b011f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -337,6 +337,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -337,6 +337,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1535,7 +1535,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect((Component) Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause this.disconnect((Component) Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
} }
@@ -654,6 +674,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -663,6 +683,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -1544,7 +1544,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
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);
@@ -704,6 +726,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -738,6 +760,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (packet.getId() == this.awaitingTeleport) { if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) { if (this.awaitingPositionFromClient == null) {
@@ -1552,9 +1552,9 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
return; return;
} }
@@ -1140,10 +1163,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1174,6 +1197,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
long byteAllowed = maxBookPageSize; long byteAllowed = maxBookPageSize;
+ // Purpur start + // Purpur start
+ int slot = packet.slot(); + int slot = packet.slot();
@@ -1562,21 +1562,18 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
+ // Purpur end + // Purpur end
for (String testString : pageList) { for (String testString : pageList) {
int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
if (byteLength > 256 * 4) { byteTotal += byteLength;
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -1195,7 +1222,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+ org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent event = new org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), itemstack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur }
this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause
return;
}
@@ -1167,6 +1195,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (byteTotal > byteAllowed) { if (byteTotal > byteAllowed) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); - ServerGamePacketListenerImpl.LOGGER.warn("{} tried to send a book too large. Book size: {} - Allowed: {} - Pages: {}", this.player.getScoreboardName(), byteTotal, byteAllowed, pageList.size());
+ ServerGamePacketListenerImpl.LOGGER.warn("{} tried to send too large of a book. Book size: {} - Allowed: {} - Pages: {}", this.player.getScoreboardName(), byteTotal, byteAllowed, pageList.size());
+ org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent event = new org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), itemstack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur + org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent event = new org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), itemstack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur
this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause
return; return;
} }
@@ -1191,10 +1220,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1220,10 +1248,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Objects.requireNonNull(list); Objects.requireNonNull(list);
stream.forEach(list::add); stream.forEach(list::add);
@@ -1593,7 +1590,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
}; };
this.filterTextPacket((List) list).thenAcceptAsync(consumer, this.server); this.filterTextPacket((List) list).thenAcceptAsync(consumer, this.server);
@@ -1202,13 +1235,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1231,13 +1263,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
private void updateBookContents(List<FilteredText> pages, int slotId) { private void updateBookContents(List<FilteredText> pages, int slotId) {
@@ -1613,7 +1610,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
itemstack.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookContent(list1)); itemstack.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookContent(list1));
this.player.getInventory().setItem(slotId, CraftEventFactory.handleEditBookEvent(this.player, slotId, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) this.player.getInventory().setItem(slotId, CraftEventFactory.handleEditBookEvent(this.player, slotId, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
@@ -1216,6 +1254,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1245,6 +1282,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
private void signBook(FilteredText title, List<FilteredText> pages, int slotId) { private void signBook(FilteredText title, List<FilteredText> pages, int slotId) {
@@ -1625,7 +1622,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
ItemStack itemstack = this.player.getInventory().getItem(slotId); ItemStack itemstack = this.player.getInventory().getItem(slotId);
if (itemstack.is(Items.WRITABLE_BOOK)) { if (itemstack.is(Items.WRITABLE_BOOK)) {
@@ -1223,10 +1266,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1252,10 +1294,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
itemstack1.remove(DataComponents.WRITABLE_BOOK_CONTENT); itemstack1.remove(DataComponents.WRITABLE_BOOK_CONTENT);
List<Filterable<Component>> list1 = (List<Filterable<Component>>) (List) pages.stream().map((filteredtext1) -> { // CraftBukkit - decompile error List<Filterable<Component>> list1 = (List<Filterable<Component>>) (List) pages.stream().map((filteredtext1) -> { // CraftBukkit - decompile error
@@ -1638,7 +1635,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
CraftEventFactory.handleEditBookEvent(this.player, slotId, itemstack, itemstack1); // CraftBukkit CraftEventFactory.handleEditBookEvent(this.player, slotId, itemstack, itemstack1); // CraftBukkit
this.player.getInventory().setItem(slotId, itemstack); // CraftBukkit - event factory updates the hand book this.player.getInventory().setItem(slotId, itemstack); // CraftBukkit - event factory updates the hand book
} }
@@ -1236,6 +1279,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1265,6 +1307,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(message.filteredOrEmpty()) : Filterable.from(message); return this.player.isTextFilteringEnabled() ? Filterable.passThrough(message.filteredOrEmpty()) : Filterable.from(message);
} }
@@ -1655,7 +1652,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
@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());
@@ -1285,7 +1338,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1314,7 +1366,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@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());
@@ -1672,7 +1669,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
} else { } else {
ServerLevel worldserver = this.player.serverLevel(); ServerLevel worldserver = this.player.serverLevel();
@@ -1464,7 +1525,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1494,7 +1554,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
movedWrongly = true; movedWrongly = true;
if (event.getLogWarning()) if (event.getLogWarning())
// Paper end // Paper end
@@ -1681,7 +1678,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
} // Paper } // Paper
} }
@@ -1522,6 +1583,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1562,6 +1622,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -1690,7 +1687,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
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);
@@ -1566,6 +1629,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1606,6 +1668,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.tryResetCurrentImpulseContext(); this.player.tryResetCurrentImpulseContext();
} }
@@ -1704,7 +1701,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX(); this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY(); this.lastGoodY = this.player.getY();
@@ -1593,6 +1663,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1633,6 +1702,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
} }
@@ -1716,10 +1713,10 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
+ } + }
+ // Purpur end + // Purpur end
+ +
private boolean isPlayerCollidingWithAnythingNew(LevelReader world, AABB box, double newX, double newY, double newZ) { // Paper start - optimise out extra getCubes
AABB axisalignedbb1 = this.player.getBoundingBox().move(newX - this.player.getX(), newY - this.player.getY(), newZ - this.player.getZ()); private boolean hasNewCollision(final ServerLevel world, final Entity entity, final AABB oldBox, final AABB newBox) {
Iterable<VoxelShape> iterable = world.getCollisions(this.player, axisalignedbb1.deflate(9.999999747378752E-6D)); final List<AABB> collisionsBB = new java.util.ArrayList<>();
@@ -1945,6 +2023,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2012,6 +2089,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean cancelled; boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {
@@ -1727,7 +1724,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemstack, enumhand); org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemstack, enumhand);
cancelled = event.useItemInHand() == Event.Result.DENY; cancelled = event.useItemInHand() == Event.Result.DENY;
} else { } else {
@@ -2714,6 +2793,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2781,6 +2859,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = entity.getBoundingBox(); AABB axisalignedbb = entity.getBoundingBox();
if (this.player.canInteractWithEntity(axisalignedbb, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(1.0D))) { // Paper - configurable lenience value for interact range if (this.player.canInteractWithEntity(axisalignedbb, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(1.0D))) { // Paper - configurable lenience value for interact range
@@ -1735,7 +1732,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
packet.dispatch(new ServerboundInteractPacket.Handler() { packet.dispatch(new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
@@ -2727,6 +2807,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2794,6 +2873,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -1758,7 +1755,7 @@ index 1d11d0388b9763a0e0e5f3398425dafa2bb01488..72cf1372a7e685b3ff4cc852c3d38f7d
} }
} catch (AuthenticationUnavailableException authenticationunavailableexception) { } catch (AuthenticationUnavailableException authenticationunavailableexception) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f477fcfde 100644 index f86d2644024f4b190e9bded08aa9b71d6d0c8235..0bba03116d4746515117574177abfc7b43326a43 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -494,6 +494,7 @@ public abstract class PlayerList { @@ -494,6 +494,7 @@ public abstract class PlayerList {
@@ -1786,7 +1783,7 @@ index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f
event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
} }
} }
@@ -1079,6 +1081,20 @@ public abstract class PlayerList { @@ -1082,6 +1084,20 @@ public abstract class PlayerList {
} }
// CraftBukkit end // CraftBukkit end
@@ -1807,7 +1804,7 @@ index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) { public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
Iterator iterator = this.players.iterator(); Iterator iterator = this.players.iterator();
@@ -1182,6 +1198,7 @@ public abstract class PlayerList { @@ -1185,6 +1201,7 @@ public abstract class PlayerList {
} else { } else {
b0 = (byte) (24 + permissionLevel); b0 = (byte) (24 + permissionLevel);
} }
@@ -1815,7 +1812,7 @@ index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f
player.connection.send(new ClientboundEntityEventPacket(player, b0)); player.connection.send(new ClientboundEntityEventPacket(player, b0));
} }
@@ -1190,6 +1207,27 @@ public abstract class PlayerList { @@ -1193,6 +1210,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
@@ -2870,7 +2867,7 @@ index 8191eda135b71d0515c918e88b35aaeec21c59de..cb2d6bb3ab2d07dc0756591be0be76a3
return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND ? SlotAccess.forEquipmentSlot(entity, slot, (itemstack) -> { return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND ? SlotAccess.forEquipmentSlot(entity, slot, (itemstack) -> {
return itemstack.isEmpty() || entity.getEquipmentSlotForItem(itemstack) == slot; return itemstack.isEmpty() || entity.getEquipmentSlotForItem(itemstack) == slot;
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eabd5c83316 100644 index 487c15ed7154a8fe117c982c2b9064ac9dc138f1..85d3da44ac575d26b9e6c522011e6b6288cce651 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -145,6 +145,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -145,6 +145,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -2959,7 +2956,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
Vec3i baseblockposition = this.getPickupReach(); Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
@@ -1383,7 +1412,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1390,7 +1419,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
attributemodifiable.addPermanentModifier(new AttributeModifier(Mob.RANDOM_SPAWN_BONUS_ID, randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE)); attributemodifiable.addPermanentModifier(new AttributeModifier(Mob.RANDOM_SPAWN_BONUS_ID, randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE));
} }
@@ -2968,7 +2965,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
return entityData; return entityData;
} }
@@ -1484,7 +1513,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1491,7 +1520,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
protected InteractionResult mobInteract(Player player, InteractionHand hand) { protected InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -2977,7 +2974,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
} }
public boolean isWithinRestriction() { public boolean isWithinRestriction() {
@@ -1723,6 +1752,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1730,6 +1759,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
this.playAttackSound(); this.playAttackSound();
} }
@@ -2985,7 +2982,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
return flag; return flag;
} }
@@ -1734,28 +1764,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1741,28 +1771,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() {
@@ -3016,7 +3013,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
} }
@Override @Override
@@ -1798,4 +1808,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1805,4 +1815,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
} }
@@ -8206,7 +8203,7 @@ index e86fdf5d6853b7bddfe19d6e5d41d3dec0c25f23..f45567aa7695da68f92809a6c208eb51
} }
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index c1bb44fd92ee4f3b900f29e3f9069841ca19fa5d..f096a9023fe0b54160e957dd5c6baa489ed0c410 100644 index b8dacff80c114a00b698b6fc29e4d6da2eaedb5e..9ef292d75160089b278ee38d41f65aeb221ea600 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -66,6 +66,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -66,6 +66,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -12984,7 +12981,7 @@ index bd3f78e6453cfe18aa3da38176b04d734d83bb4b..c7ad716f607afe382436d088a2b2e622
this.tickTimer = 0; this.tickTimer = 0;
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
index 32910f677b0522ac8ec513fa0d00b714b52cfae4..c491291b522aebf34c7d990d2b485d1a0d19cdcd 100644 index dd4218e108f87f3305b76fbc8d88f488b447c609..ecfa807e78c16a24099d40becd0c7916f239aed1 100644
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
@@ -76,6 +76,7 @@ public abstract class AbstractContainerMenu { @@ -76,6 +76,7 @@ public abstract class AbstractContainerMenu {
@@ -13881,7 +13878,7 @@ index 06497b5141e611cc7a1b6030a7b9c54b5c4eda06..28df1b3230762e52b5458ac93a85c9a5
return InteractionResult.PASS; return InteractionResult.PASS;
} }
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 804297a04988b3e21092a42df6584b7fc3cff1bb..b341ce21de28b2ee829dcba64b7dd6952fc1c17d 100644 index 70df666abd3264f24e2f3c6480c6310e4500fdf0..2777b9379a547b29b9a300c1c549f33c1b2a7d07 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java --- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -497,6 +497,7 @@ public final class ItemStack implements DataComponentHolder { @@ -497,6 +497,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -14614,7 +14611,7 @@ index 8240c32d676a88aa23dcd052ee0136767e54fb0d..372c4ab9d390d5afd98947f21c79aae0
if (i != -1) { if (i != -1) {
world.scheduleTick(blockposition, (Block) this, i); world.scheduleTick(blockposition, (Block) this, i);
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4673f4251 100644 index b807f4a5239f32e6b6080a58e055357b7341cf00..34d96e8bfebdee3bcc61071c6ec22b53baecec3f 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java --- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -88,6 +88,10 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -88,6 +88,10 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -14628,7 +14625,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
// Paper start // Paper start
public final boolean isDestroyable() { public final boolean isDestroyable() {
return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits || return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits ||
@@ -312,7 +316,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -311,7 +315,7 @@ public class Block extends BlockBehaviour implements ItemLike {
public static void dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity) { public static void dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity) {
if (world instanceof ServerLevel) { if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity).forEach((itemstack) -> { Block.getDrops(state, (ServerLevel) world, pos, blockEntity).forEach((itemstack) -> {
@@ -14637,7 +14634,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
}); });
state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true);
} }
@@ -331,7 +335,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -330,7 +334,7 @@ public class Block extends BlockBehaviour implements ItemLike {
event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping
event.callEvent(); event.callEvent();
for (org.bukkit.inventory.ItemStack drop : event.getDrops()) { for (org.bukkit.inventory.ItemStack drop : event.getDrops()) {
@@ -14646,7 +14643,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
} }
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping
block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping
@@ -348,13 +352,32 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -347,13 +351,32 @@ public class Block extends BlockBehaviour implements ItemLike {
// Paper end - Properly handle xp dropping // Paper end - Properly handle xp dropping
if (world instanceof ServerLevel) { if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> { Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> {
@@ -14680,7 +14677,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
public static void popResource(Level world, BlockPos pos, ItemStack stack) { public static void popResource(Level world, BlockPos pos, ItemStack stack) {
double d0 = (double) EntityType.ITEM.getHeight() / 2.0D; double d0 = (double) EntityType.ITEM.getHeight() / 2.0D;
double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D); double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D);
@@ -438,7 +461,17 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -437,7 +460,17 @@ public class Block extends BlockBehaviour implements ItemLike {
} // Paper - fix drops not preventing stats/food exhaustion } // Paper - fix drops not preventing stats/food exhaustion
} }
@@ -14699,7 +14696,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
public boolean isPossibleToRespawnInThis(BlockState state) { public boolean isPossibleToRespawnInThis(BlockState state) {
return !state.isSolid() && !state.liquid(); return !state.isSolid() && !state.liquid();
@@ -457,7 +490,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -456,7 +489,7 @@ public class Block extends BlockBehaviour implements ItemLike {
} }
public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) { public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
@@ -15134,7 +15131,7 @@ index 3f5bb5c9ceb5b31fcc9ef0a7a6157e1e1cb2a09f..9bd56c48119fe630f272427a2ec99ffe
TheEndGatewayBlockEntity.triggerCooldown(world, pos, state, tileentityendgateway); TheEndGatewayBlockEntity.triggerCooldown(world, pos, state, tileentityendgateway);
} }
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index 01333f69b622141b2eb53441c6cbd69e4a059d55..9c11a615fbfd4fcaff5df2a15d1b8578897ab2b4 100644 index a35a426cc7778a51523f26057b5d61b8a3e23d5d..28d8c8a879badc97cd1168e1847e2fafdc40e4bd 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -65,6 +65,13 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { @@ -65,6 +65,13 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
@@ -15405,7 +15402,7 @@ index 02d59789c09f58045fea302ea6f2ee3856114de3..8072713da7ed8b7a44b63c241050c3a9
} }
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
index ddab7de1d376e9e486e2f920174397ea8804aa29..74d9a8a61365f1244471dbff8eb91dad3afaab51 100644 index 0fdbcab175b51a8b77646e0e4a267d987b133a35..d579132d1afd5c2edb9356c5601584bca2357f8f 100644
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
@@ -77,7 +77,7 @@ public class NetherPortalBlock extends Block implements Portal { @@ -77,7 +77,7 @@ public class NetherPortalBlock extends Block implements Portal {
@@ -15640,7 +15637,7 @@ index 93e8e5107ac047c1f2579b4fe6b0a202edb695f6..f82d275aac7bf3949d3dcc412c7e39e1
} }
diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..66c17bdfecdfbcfb2d853e561432dd51a8f7ed46 100644 index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..80ee7a6f010cc838625674007a3ea908f2f9dadd 100644
--- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java --- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
@@ -42,6 +42,57 @@ public class SpawnerBlock extends BaseEntityBlock { @@ -42,6 +42,57 @@ public class SpawnerBlock extends BaseEntityBlock {
@@ -15705,7 +15702,7 @@ index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..66c17bdfecdfbcfb2d853e561432dd51
@Override @Override
public int getExpDrop(BlockState iblockdata, ServerLevel worldserver, BlockPos blockposition, ItemStack itemstack, boolean flag) { public int getExpDrop(BlockState iblockdata, ServerLevel worldserver, BlockPos blockposition, ItemStack itemstack, boolean flag) {
+ if (isSilkTouch(worldserver, itemstack)) return 0; // Purpur + if (worldserver.purpurConfig.silkTouchEnabled && isSilkTouch(worldserver, itemstack)) return 0; // Purpur
if (flag) { if (flag) {
int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15); int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15);
@@ -16303,7 +16300,7 @@ index d47bc2f54c4722a0b8c419b99ee57eb3cb25d750..fdeabdcc781b605d6f3ee18528fd380f
+ // Purpur + // Purpur
} }
diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
index a28be7a332659be655f419d969e0c64e659b6c21..8cd812a25b1cc05ea14675658bf9c1503ebebd51 100644 index 3070cd2b588f5a69fd8c0d3551e16251680d8c27..c9a1c071780351b584ad8e071ddc26f9a27e5964 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
@@ -201,16 +201,31 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C @@ -201,16 +201,31 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
@@ -17376,7 +17373,7 @@ index 30d62ee4d5cd2ddacb8783b5bbbf475d592b3e02..5c1cda88080850314dac196dbe71ff12
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index d2bb0831394c03b620b2cbd8306cb82b621f34f7..9add2ba364e80815ec9c530b984e1619b6607bb8 100644 index beb6ad312028adb14053e3f019a4fcf6c9149373..a8568e16301f7fce4baea6942a02b9be94fe7ddc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -513,7 +513,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -513,7 +513,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -17388,7 +17385,7 @@ index d2bb0831394c03b620b2cbd8306cb82b621f34f7..9add2ba364e80815ec9c530b984e1619
} }
// Paper end // Paper end
@@ -1189,4 +1189,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -1163,4 +1163,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().canUseSlot(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); return this.getHandle().canUseSlot(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot));
} }
// Paper end - Expose canUseSlot // Paper end - Expose canUseSlot
@@ -17427,7 +17424,7 @@ index 351f42842b780d053cd2e5bad9ae299449141b10..4860574e7fad7a9527dda599703c573c
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 992437a6e838f653f32d33b5b3f702c484640a97..e3100e65fea02374d4393bab48d63ddeaecef0ab 100644 index a0d5082590ee03060f0dbb4770d196efc316c328..37fc08d04ff3514d27ad25c8d774a6e96b30c3b1 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
@@ -576,10 +576,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -576,10 +576,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -17645,10 +17642,10 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8dd85b9ca3b3e3429de4d0ec0654982589c6e93e..198a86fc9b8c4dba8c8de27bccc4de65690b84de 100644 index 77ef27f9254235180a8596c6c8c4af750dc759d1..3c533df90cf8b1a69b190ffee06c9254e4e4d764 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -601,6 +601,15 @@ public class CraftEventFactory { @@ -603,6 +603,15 @@ public class CraftEventFactory {
// Paper end // Paper end
craftServer.getPluginManager().callEvent(event); craftServer.getPluginManager().callEvent(event);
@@ -17664,7 +17661,7 @@ index 8dd85b9ca3b3e3429de4d0ec0654982589c6e93e..198a86fc9b8c4dba8c8de27bccc4de65
return event; return event;
} }
@@ -1131,7 +1140,7 @@ public class CraftEventFactory { @@ -1133,7 +1142,7 @@ public class CraftEventFactory {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled); return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
} else if (source.getDirectBlock() != null) { } else if (source.getDirectBlock() != null) {
DamageCause cause; DamageCause cause;
@@ -17673,7 +17670,7 @@ index 8dd85b9ca3b3e3429de4d0ec0654982589c6e93e..198a86fc9b8c4dba8c8de27bccc4de65
cause = DamageCause.CONTACT; cause = DamageCause.CONTACT;
} else if (source.is(DamageTypes.HOT_FLOOR)) { } else if (source.is(DamageTypes.HOT_FLOOR)) {
cause = DamageCause.HOT_FLOOR; cause = DamageCause.HOT_FLOOR;
@@ -1191,6 +1200,7 @@ public class CraftEventFactory { @@ -1193,6 +1202,7 @@ public class CraftEventFactory {
EntityDamageEvent event; EntityDamageEvent event;
if (damager != null) { if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical); event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
@@ -17820,13 +17817,14 @@ index e2d8d69c5ae8feb6840462ba8332344972658d83..d1505efcf861224f0b3c983707269015
+ // Purpur end - Anvil API + // Purpur end - Anvil API
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java
index d7c8f26b21276d9ff1d5c7c9738cc1126ce7d4b9..f0471f92044612e3a2fd12a575b8b1f844790d3a 100644 index db8d8e2a07296d62c3097f02b03319e2e1ba9394..f32712907afd8ab2d0efe9ae4e162666a16fe2c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java --- a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java +++ b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java
@@ -690,4 +690,32 @@ public class MaterialRerouting { @@ -708,4 +708,33 @@ public class MaterialRerouting {
return ItemStack.of(material, amount); meta.setCanPlaceOn(materials);
} }
// Paper end // Paper end
+
+ // Purpur start + // Purpur start
+ // Method added post 1.13, no-op (https://github.com/PurpurMC/Purpur/pull/570) + // Method added post 1.13, no-op (https://github.com/PurpurMC/Purpur/pull/570)
+ public static void addFuel(Server server, Material material, int burnTime) { + public static void addFuel(Server server, Material material, int burnTime) {

View File

@@ -4,6 +4,26 @@ Date: Mon, 29 Apr 2024 14:18:58 -0400
Subject: [PATCH] Fix Pufferfish and Purpur patches Subject: [PATCH] Fix Pufferfish and Purpur patches
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index 9d003c2ae45a057c0274a34fe5012cf17d1a2681..cbc731c157f016e8a622be05f4c392ae9ee99fb5 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
@@ -32,6 +32,7 @@ public record ServerBuildInfoImpl(
private static final String BRAND_PAPER_NAME = "Paper";
private static final String BRAND_GALE_NAME = "Gale"; // Gale - branding changes
+ private static final String BRAND_PUFFERFISH_NAME = "Pufferfish"; // Leaf
private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur
private static final String BRAND_LEAF_NAME = "Leaf"; // Leaf
@@ -67,6 +68,7 @@ public record ServerBuildInfoImpl(
return brandId.equals(this.brandId)
|| brandId.equals(BRAND_PAPER_ID)
|| brandId.equals(BRAND_GALE_ID)
+ || brandId.equals(BRAND_PUFFERFISH_ID)
|| brandId.equals(BRAND_PURPUR_ID); // Gale - branding changes // Leaf
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 9d082b3c06281b0cafe455959d6ef20b8891110e..5071828f4ec318ca457d7c29d5ffaa3de2f43e48 100644 index 9d082b3c06281b0cafe455959d6ef20b8891110e..5071828f4ec318ca457d7c29d5ffaa3de2f43e48 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -136,7 +156,7 @@ index 06e5d3e2dfc762c640b5261b4962503e48c2a76f..164c126a61f550c09a7e114bf8947bde
} }
// Pufferfish end - entity TTL // Pufferfish end - entity TTL
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 65d475803716ea30453ec2397403581def8939fb..41a2254c5665b1a1ef770fe9f08271136cec2983 100644 index cb2d6bb3ab2d07dc0756591be0be76a3f6f8a5d6..27e7086b4e2c71b29aa4a1c825604395a5f35439 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1044,17 +1044,19 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1044,17 +1044,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -164,7 +184,7 @@ index 65d475803716ea30453ec2397403581def8939fb..41a2254c5665b1a1ef770fe9f0827113
// Purpur start // Purpur start
if (entity instanceof LivingEntity entityliving) { if (entity instanceof LivingEntity entityliving) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 9f50cd428bec118bf6317d90c66c0eabd5c83316..f43774ddcc6071ee2f61c57ac1a4596936194218 100644 index 85d3da44ac575d26b9e6c522011e6b6288cce651..e57d4f58401a93034a39e9ed27672ac265a6e4b9 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -176,7 +196,7 @@ index 9f50cd428bec118bf6317d90c66c0eabd5c83316..f43774ddcc6071ee2f61c57ac1a45969
Vec3i baseblockposition = this.getPickupReach(); Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
@@ -1758,11 +1758,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1765,11 +1765,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void playAttackSound() {} protected void playAttackSound() {}
@@ -283,7 +303,7 @@ index 613ef7dc40f1f2819bb38fecd3793f1c42a8f791..482a0998a3d98ba145f33efdba598971
"farmer", "farmer",
PoiTypes.FARMER, PoiTypes.FARMER,
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 85983dd81dbc9f2d187a224298b56613dab18f8a..c12ae7bd63b5f82b688ce0679dff3af9ca9be99a 100644 index 617043b24fbf073038ffc5252da75c4cfaf85d38..e40f6d244011f6444fbed3fa0f49994ff56f54ce 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -77,7 +77,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -77,7 +77,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {

View File

@@ -1325,7 +1325,7 @@ index fae2574cee5779c4a3ea7aec393f087676327b0e..0d4a36e59072de962363bb72babae30f
} }
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0043e0d62 100644 index 0bba03116d4746515117574177abfc7b43326a43..03aa00fda048a634777dfc28a8b45599ae4c4b3b 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -1335,7 +1335,7 @@ index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
@@ -1290,7 +1289,6 @@ public abstract class PlayerList { @@ -1293,7 +1292,6 @@ public abstract class PlayerList {
public void saveAll(int interval) { public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -1343,7 +1343,7 @@ index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0
int numSaved = 0; int numSaved = 0;
long now = MinecraftServer.currentTick; long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) { for (int i = 0; i < this.players.size(); ++i) {
@@ -1301,7 +1299,6 @@ public abstract class PlayerList { @@ -1304,7 +1302,6 @@ public abstract class PlayerList {
} }
// Paper end - Incremental chunk and player saving // Paper end - Incremental chunk and player saving
} }
@@ -1559,10 +1559,10 @@ index 1da91797ddbaf2cee7124b3dbd0970acb1a23073..e33b39d369386d677cc15247846790b4
// Paper start - Add mobcaps commands // Paper start - Add mobcaps commands
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index d9afbfb23536e180e2af5658de0bd1d4673f4251..64f96850cad67c64c9c71b2c5d1cc68d2db4fafc 100644 index 34d96e8bfebdee3bcc61071c6ec22b53baecec3f..4eab34f932ae564aa038cecf4426b9f74a513ee7 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java --- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -107,13 +107,6 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -106,13 +106,6 @@ public class Block extends BlockBehaviour implements ItemLike {
this != Blocks.STRUCTURE_BLOCK && this != Blocks.STRUCTURE_BLOCK &&
this != Blocks.JIGSAW; this != Blocks.JIGSAW;
} }

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/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 785a2dcfad72126bff078bfd63649da6eb053ad6..0af9de55adff7ccda286b3cbf7ac400b71661f72 100644 index 46242ef7c5607780f84046fe039efc11732b011f..f0d84ac5d43d0866c85d1e7375977ba10ce30440 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1948,7 +1948,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2014,7 +2014,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Vec3 vec3d1 = vec3d.subtract(Vec3.atCenterOf(blockposition)); Vec3 vec3d1 = vec3d.subtract(Vec3.atCenterOf(blockposition));
double d0 = 1.0000001D; double d0 = 1.0000001D;

View File

@@ -7,7 +7,7 @@ Original license: MIT
Original project: https://github.com/Cryptite/Slice Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 1d0044693dafce42921af0a44175b164d7321114..d954c8e0cefe7337059bda5d5c1429a445a633d0 100644 index e6d22346d37261751563b039ae2ad8629ff83d8e..d05f687cc2a765058c8eabfcb50d1cc84a13073d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -307,6 +307,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -307,6 +307,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -19,10 +19,10 @@ index 1d0044693dafce42921af0a44175b164d7321114..d954c8e0cefe7337059bda5d5c1429a4
// Paper start - rewrite chunk system // Paper start - rewrite chunk system
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index adb9956f3350f1e58cbe5d26602412c0043e0d62..b309541c4a29015ad51e05bb341462bcf247f1eb 100644 index 03aa00fda048a634777dfc28a8b45599ae4c4b3b..6bf9d97992b17aa985e16d9367b64bbe1b0b6dfe 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -900,10 +900,10 @@ public abstract class PlayerList { @@ -903,10 +903,10 @@ public abstract class PlayerList {
ServerLevel worldserver1 = entityplayer1.serverLevel(); ServerLevel worldserver1 = entityplayer1.serverLevel();
LevelData worlddata = worldserver1.getLevelData(); LevelData worlddata = worldserver1.getLevelData();
@@ -36,7 +36,7 @@ index adb9956f3350f1e58cbe5d26602412c0043e0d62..b309541c4a29015ad51e05bb341462bc
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked())); entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel)); entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1f70d832b0287f446722745a65062813e84be566..a5f00869d4636867ce54ddbe18ccabfecaad4d9a 100644 index d57cb8e3fec8db07dea328abeada47829eda111c..04aa0c7d2946a38427951217f2b865b005011ef5 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
@@ -1361,6 +1361,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1361,6 +1361,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

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/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 3f127b7ca317c14ffeb1d8c3440848ad06efd5c8..10364d2f34c601a00d8405b5a3f749565eb857a8 100644 index 8e8346394ba5c48c551050725decbb7f6a91098a..42fa51a01c33d525d6858d53811b204280d362e6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1329,6 +1329,7 @@ public abstract class PlayerList { @@ -1332,6 +1332,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldborder)); player.connection.send(new ClientboundInitializeBorderPacket(worldborder));
player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle())); player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle()));

View File

@@ -7,7 +7,7 @@ Original license: GPLv3
Original project: https://github.com/LeavesMC/Leaves Original project: https://github.com/LeavesMC/Leaves
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 87c96fa812aab05caa75c3c9d5eb3243e2ef9f55..798f6bfc0603ad0b76feb1bad53ea4154168f570 100644 index eddaffbc6f0a3598fbcee707cb36bad5470b2cb0..d96511e9db78c73356a9f52f22c9d03c2a77e0ca 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -593,7 +593,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -593,7 +593,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -19,16 +19,16 @@ index 87c96fa812aab05caa75c3c9d5eb3243e2ef9f55..798f6bfc0603ad0b76feb1bad53ea415
// CraftBukkit end // CraftBukkit end
ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8}); ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8});
this.send(new ClientboundMoveVehiclePacket(entity)); this.send(new ClientboundMoveVehiclePacket(entity));
@@ -628,7 +628,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -629,7 +629,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
d10 = d6 * d6 + d7 * d7 + d8 * d8; d10 = d6 * d6 + d7 * d7 + d8 * d8;
boolean flag2 = false; boolean flag2 = false;
- if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot - if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot
+ if (!org.dreeam.leaf.config.modules.gameplay.DisableMovedWronglyThreshold.enabled && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot // Leaves - disable can + if (!org.dreeam.leaf.config.modules.gameplay.DisableMovedWronglyThreshold.enabled && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot // Leaves - disable can
flag2 = true; flag2 = true; // Paper - diff on change, this should be moved wrongly
ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)}); ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)});
} }
@@ -1451,7 +1451,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1479,7 +1479,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
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 87c96fa812aab05caa75c3c9d5eb3243e2ef9f55..798f6bfc0603ad0b76feb1bad53ea415
ServerGamePacketListenerImpl.LOGGER.warn("{} moved too quickly! {},{},{}", new Object[]{this.player.getName().getString(), d6, d7, d8}); ServerGamePacketListenerImpl.LOGGER.warn("{} moved too quickly! {},{},{}", new Object[]{this.player.getName().getString(), d6, d7, d8});
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());
return; return;
@@ -1520,7 +1520,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1549,7 +1549,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
d10 = d6 * d6 + d7 * d7 + d8 * d8; d10 = d6 * d6 + d7 * d7 + d8 * d8;
boolean movedWrongly = false; // Paper - Add fail move event; rename boolean movedWrongly = false; // Paper - Add fail move event; rename

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove useless creating stats json bases on player name logic
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 10364d2f34c601a00d8405b5a3f749565eb857a8..cebff1c2ff7f957a588d1eee9db44fad99a0ac68 100644 index 42fa51a01c33d525d6858d53811b204280d362e6..b94dfd585714ee103400221e3e6fb4d8261fa6f4 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1533,6 +1533,8 @@ public abstract class PlayerList { @@ -1536,6 +1536,8 @@ public abstract class PlayerList {
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, String.valueOf(uuid) + ".json"); File file1 = new File(file, String.valueOf(uuid) + ".json");
@@ -17,7 +17,7 @@ index 10364d2f34c601a00d8405b5a3f749565eb857a8..cebff1c2ff7f957a588d1eee9db44fad
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();
@@ -1541,6 +1543,8 @@ public abstract class PlayerList { @@ -1544,6 +1546,8 @@ public abstract class PlayerList {
file2.renameTo(file1); file2.renameTo(file1);
} }
} }

View File

@@ -19,10 +19,10 @@ index b6713361cd104786f52bd880418b8653e4126fda..94bb40c9932b0b7dd9fb8af680b63d13
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index d954c8e0cefe7337059bda5d5c1429a445a633d0..2f4096cb2bf93f880d01283df8d10bf996e72bb9 100644 index d05f687cc2a765058c8eabfcb50d1cc84a13073d..8cc6423928b191049a85c023af740a92950d2c00 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2411,6 +2411,8 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2410,6 +2410,8 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
// Purpur Start // Purpur Start
private boolean isAfk = false; private boolean isAfk = false;
@@ -31,7 +31,7 @@ index d954c8e0cefe7337059bda5d5c1429a445a633d0..2f4096cb2bf93f880d01283df8d10bf9
@Override @Override
public void setAfk(boolean afk) { public void setAfk(boolean afk) {
@@ -2448,6 +2450,20 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2447,6 +2449,20 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
String prefix = (split.length > 0 ? split[0] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix, ""); String prefix = (split.length > 0 ? split[0] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix, "");
String suffix = (split.length > 1 ? split[1] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, ""); String suffix = (split.length > 1 ? split[1] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, "");
if (afk) { if (afk) {
@@ -53,10 +53,10 @@ index d954c8e0cefe7337059bda5d5c1429a445a633d0..2f4096cb2bf93f880d01283df8d10bf9
} else { } else {
getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true); getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 798f6bfc0603ad0b76feb1bad53ea4154168f570..212074a4e26fd124705bbd4ac7bb4e25f3cbf2f9 100644 index d96511e9db78c73356a9f52f22c9d03c2a77e0ca..2b4994e3bf86392f4e4794d61c4653ef2cf714f1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2206,8 +2206,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2272,8 +2272,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
} }
@@ -86,7 +86,7 @@ index 798f6bfc0603ad0b76feb1bad53ea4154168f570..212074a4e26fd124705bbd4ac7bb4e25
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands // CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
if (this.player.hasDisconnected()) { if (this.player.hasDisconnected()) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index cebff1c2ff7f957a588d1eee9db44fad99a0ac68..c5c0494fde702e12c320bffe21530c2155766459 100644 index b94dfd585714ee103400221e3e6fb4d8261fa6f4..8ce41d394a2e60ec2c9411f4a3172a63edd15b12 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -615,6 +615,7 @@ public abstract class PlayerList { @@ -615,6 +615,7 @@ public abstract class PlayerList {

View File

@@ -117,10 +117,10 @@ index ae0d0310d50f1ada082e045a58a24a43f8079da8..eea19f895588c51bce86f20b3ec505fd
if (packet == null || this.processedDisconnect) { // Spigot if (packet == null || this.processedDisconnect) { // Spigot
return; return;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index c5c0494fde702e12c320bffe21530c2155766459..14d0a5468cb4502ed2def4e92fb70e70e929dbfe 100644 index 8ce41d394a2e60ec2c9411f4a3172a63edd15b12..3482c172685990f696797a954ef765fe2d0f6261 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1487,7 +1487,7 @@ public abstract class PlayerList { @@ -1490,7 +1490,7 @@ public abstract class PlayerList {
// Paper end // Paper end
boolean flag = this.verifyChatTrusted(message); boolean flag = this.verifyChatTrusted(message);
@@ -129,7 +129,7 @@ index c5c0494fde702e12c320bffe21530c2155766459..14d0a5468cb4502ed2def4e92fb70e70
OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message); OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message);
boolean flag1 = false; boolean flag1 = false;
@@ -1516,6 +1516,7 @@ public abstract class PlayerList { @@ -1519,6 +1519,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] Configurable connection message
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 14d0a5468cb4502ed2def4e92fb70e70e929dbfe..bd1b6f2aee3d79d9c6e21af6518bbf1800861a49 100644 index 3482c172685990f696797a954ef765fe2d0f6261..9d2faacd5c9c6e5439c6b8b2e2f7cb2bab4ad8f8 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -354,7 +354,7 @@ public abstract class PlayerList { @@ -354,7 +354,7 @@ public abstract class PlayerList {
@@ -35,7 +35,7 @@ index 14d0a5468cb4502ed2def4e92fb70e70e929dbfe..bd1b6f2aee3d79d9c6e21af6518bbf18
this.cserver.getPluginManager().callEvent(playerQuitEvent); this.cserver.getPluginManager().callEvent(playerQuitEvent);
entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
@@ -1660,4 +1660,29 @@ public abstract class PlayerList { @@ -1663,4 +1663,29 @@ public abstract class PlayerList {
public boolean isAllowCommandsForAllPlayers() { public boolean isAllowCommandsForAllPlayers() {
return this.allowCommandsForAllPlayers; return this.allowCommandsForAllPlayers;
} }

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Fix-MC-119417
Related MC issue: https://bugs.mojang.com/browse/MC-119417 Related MC issue: https://bugs.mojang.com/browse/MC-119417
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 0782cdddcb7e79260dd8c3b75760aaab95a378de..9941f0659b98ddb385172f7fb7d00ff3f723dff3 100644 index 8cc6423928b191049a85c023af740a92950d2c00..0bab919a9a47ce831818d97722874c2f67126c87 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2257,6 +2257,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2256,6 +2256,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId()));
if (gameMode == GameType.SPECTATOR) { if (gameMode == GameType.SPECTATOR) {
this.removeEntitiesOnShoulder(); this.removeEntitiesOnShoulder();

View File

@@ -65,10 +65,10 @@ index 573c380e123473e35c0b72c44b32c8d6ba8e61c6..feacc41ecf7f4028e0a1cce5d2012ced
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 091580c23138fc260f3aa898aa0f4a247c705293..0b9ee7be6172d6fbe3e2757ed8f88ad7f649919f 100644 index d7f92865bf81e2358246b11e4e3efe4bda02f6d5..0752b0e29f149438aa16a252ae1b2afc87218503 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2847,7 +2847,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2913,7 +2913,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
entity.refreshEntityData(ServerGamePacketListenerImpl.this.player); entity.refreshEntityData(ServerGamePacketListenerImpl.this.player);
// SPIGOT-7136 - Allays // SPIGOT-7136 - Allays
if (entity instanceof Allay) { if (entity instanceof Allay) {
@@ -100,7 +100,7 @@ index 3503423ee0d4ed13f7ebdb8272c8266a827ff4c1..341fad1609308fad6adf5b5f9ad289d5
case HAND: case HAND:
this.setLastHandItem(enumitemslot, itemstack1); this.setLastHandItem(enumitemslot, itemstack1);
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
index c491291b522aebf34c7d990d2b485d1a0d19cdcd..267f638bb704002a30b1f5cb4e33b6a89cf0773c 100644 index ecfa807e78c16a24099d40becd0c7916f239aed1..f1b4adeeb4dad5178a5e52870f420beaa8e13034 100644
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
@@ -295,7 +295,7 @@ public abstract class AbstractContainerMenu { @@ -295,7 +295,7 @@ public abstract class AbstractContainerMenu {

View File

@@ -31,10 +31,10 @@ vain. Throttling spawn attempts in suspected spawnproof chunks improves
performance without noticeably advantaging or disadvantaging the mob farm. performance without noticeably advantaging or disadvantaging the mob farm.
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
index 7509b17414f836e8b53fc62b02b386ba4e8c5ca9..f9a2bbd0aa64bd3a77f1dc80cbdc5ef52da89b5b 100644 index 95e96fe8aa93efbbb2e0a7dd98377fdc4fe0e6dd..b6728bb0c1974eb236a7e8429b936492ff490bdd 100644
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
@@ -186,6 +186,15 @@ public class WorldConfiguration extends ConfigurationPart { @@ -188,6 +188,15 @@ public class WorldConfiguration extends ConfigurationPart {
@MergeMap @MergeMap
public Reference2IntMap<MobCategory> ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); public Reference2IntMap<MobCategory> ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1)));
@@ -48,8 +48,8 @@ index 7509b17414f836e8b53fc62b02b386ba4e8c5ca9..f9a2bbd0aa64bd3a77f1dc80cbdc5ef5
+ } + }
+ +
@ConfigSerializable @ConfigSerializable
public record DespawnRange(@Required int soft, @Required int hard) { public record DespawnRangePair(@Required DespawnRange hard, @Required DespawnRange soft) {
} public static DespawnRangePair createDefault() {
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 7e1a007ed2f2c625f01fea210c9935cb02d119e0..8e9ada03e5134d2f776bbbf872087121f649c19d 100644 index 7e1a007ed2f2c625f01fea210c9935cb02d119e0..8e9ada03e5134d2f776bbbf872087121f649c19d 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java