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
version = 1.21.1-R0.1-SNAPSHOT
galeCommit = f2ee091748ade732ccc2c147a80ee064f03cffbe
galeCommit = e373e979d3bb951ad01f6e83d3cc09715528b6d6
org.gradle.caching = 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
index bdc8d830f54e4567ec0b03041221fdcd016ce76c..957f15a91f6aa1235c12b82079e32bb42449c78d 100644
index bdc8d830f54e4567ec0b03041221fdcd016ce76c..25ad7e9a9aa11049ad6ce2d2c829d3e75f8886c2 100644
--- a/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");
// Gale end - branding changes
+ // Leaf start
+ /**
+ * The brand id for Pufferfish.
+ */
+ Key BRAND_PUFFERFISH_ID = Key.key("pufferfish-gg", "pufferfish");
+ /**
+ * The brand id for 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 project: https://github.com/PurpurMC/Purpur
Commit: abf2f2109bd550623a8b3e9d398995aa0185e70c
Commit: f5303959cdb3274a2672962faaa3889592ed5b31
Patches below are removed in this patch:
Pufferfish-API-Changes.patch
@@ -17,7 +17,7 @@ Remove-Timings.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
index 957f15a91f6aa1235c12b82079e32bb42449c78d..9fa8d7fac5bf415b40c3a9a38108fa5476ed7619 100644
index 25ad7e9a9aa11049ad6ce2d2c829d3e75f8886c2..0cafbbcb8fe294bcd84b93da8fba96368971dffd 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java
@@ -25,6 +25,13 @@ public interface ServerBuildInfo {
@@ -33,7 +33,7 @@ index 957f15a91f6aa1235c12b82079e32bb42449c78d..9fa8d7fac5bf415b40c3a9a38108fa54
+
// 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
index cd191a6039717c70d2b8be0ae475d040cad54f96..c7e2dd4465334ab845e931ed14fbfde43b6d4ea4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
@@ -905,7 +905,7 @@ index bcc6ba95bd21c7972865838c636a03f50b6c1f1a..c3fcd8dd7dbb1e1a18e17c014c1e6411
+ // Purpur end
}
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
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -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 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
index 02411466bdcf4ff731f01ccebb2c99942e0db878..2718c0e5061838b01881bb231c53f4da348adce3 100644

View File

@@ -69,7 +69,7 @@ index cb61462d4691a055a4b25f7b953609d8a154fdfe..b2d8a858d8767bd6ca52e0b8db847579
private String descriptionId;
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 6e6095e8bfab28d8c1ac8bf65bb9a0c8ee19088e..96e7e9ef8bf9ab6902638ac4ba270a1f98a36cdf 100644
index 5f5265631641171345fc6564eb93b68dd8131b28..552b9f0ec8ab1aaea4cf0a212be628b49416c806 100644
--- a/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
@@ -85,7 +85,7 @@ index 6e6095e8bfab28d8c1ac8bf65bb9a0c8ee19088e..96e7e9ef8bf9ab6902638ac4ba270a1f
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();
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
Subject: [PATCH] Purpur Server Changes
TODO - Dreeam: Check Fix-pufferfish-issues.patch
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 930003b1d1826c083f3cee4db79621e6a7d726f1
Commit: f5303959cdb3274a2672962faaa3889592ed5b31
Patches below are removed in this patch:
Pufferfish-Server-Changes.patch
Fix-pufferfish-issues.patch
Brand changes in Rebrand.patch
Metrics changes in Purpur-config-files.patch
Fix-pufferfish-issues.patch
Fix-decompile-errors.patch
Configurable-server-mod-name.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
Remove-Timings.patch
Remove-Mojang-Profiler.patch
Make-pufferfish-config-relocatable.patch
MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch
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
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
+++ 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
@@ -1230,7 +1230,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && source.is(DamageTypeTags.IS_FALL);
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);
this.unsetRemoved();
// CraftBukkit end
@@ -1238,7 +1238,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
this.setServerLevel(worldserver);
this.connection.teleport(exit); // CraftBukkit - use internal teleport without event
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);
});
@@ -1247,7 +1247,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
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()) {
@@ -1268,7 +1268,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
}
((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
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 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
}
@@ -1303,7 +1303,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
@Override
public void displayClientMessage(Component message, boolean 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() {
this.lastActionTime = Util.getMillis();
@@ -1372,7 +1372,7 @@ index 0d92a3918e35217bba6aea00dce05ce386415f65..690c3347ff228f7d8e5134221f9a96d7
public ServerStatsCounter getStats() {
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();
}
// CraftBukkit end
@@ -1498,7 +1498,7 @@ index a720a05c47b2137a07515461960603cc5c939d16..b66fdb789fcb460d63fd81540112d655
try {
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
index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6eb053ad6 100644
index 73fb88a1c52aef0bc151b7857d1225884e81e9ae..46242ef7c5607780f84046fe039efc11732b011f 100644
--- a/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
@@ -1535,7 +1535,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
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
}
@@ -654,6 +674,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -663,6 +683,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -1544,7 +1544,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
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());
if (packet.getId() == this.awaitingTeleport) {
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
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;
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;
+ // Purpur start
+ int slot = packet.slot();
@@ -1562,21 +1562,18 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
+ // Purpur end
for (String testString : pageList) {
int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
if (byteLength > 256 * 4) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!");
+ 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;
byteTotal += byteLength;
@@ -1195,7 +1222,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
@@ -1167,6 +1195,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
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
this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause
return;
}
@@ -1191,10 +1220,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1220,10 +1248,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Objects.requireNonNull(list);
stream.forEach(list::add);
@@ -1593,7 +1590,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
};
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) {
@@ -1613,7 +1610,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
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)
@@ -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) {
@@ -1625,7 +1622,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
ItemStack itemstack = this.player.getInventory().getItem(slotId);
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);
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
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);
}
@@ -1655,7 +1652,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
@Override
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
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
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
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
} else {
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;
if (event.getLogWarning())
// Paper end
@@ -1681,7 +1678,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
} // Paper
}
@@ -1522,6 +1583,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1562,6 +1622,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -1690,7 +1687,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
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();
}
@@ -1704,7 +1701,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX();
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
+
private boolean isPlayerCollidingWithAnythingNew(LevelReader world, AABB box, double newX, double newY, double newZ) {
AABB axisalignedbb1 = this.player.getBoundingBox().move(newX - this.player.getX(), newY - this.player.getY(), newZ - this.player.getZ());
Iterable<VoxelShape> iterable = world.getCollisions(this.player, axisalignedbb1.deflate(9.999999747378752E-6D));
@@ -1945,6 +2023,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start - optimise out extra getCubes
private boolean hasNewCollision(final ServerLevel world, final Entity entity, final AABB oldBox, final AABB newBox) {
final List<AABB> collisionsBB = new java.util.ArrayList<>();
@@ -2012,6 +2089,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean cancelled;
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);
cancelled = event.useItemInHand() == Event.Result.DENY;
} else {
@@ -2714,6 +2793,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2781,6 +2859,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
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
@@ -1735,7 +1732,7 @@ index 08199435320f31421cd2b70b221fd519fdac0b59..785a2dcfad72126bff078bfd63649da6
packet.dispatch(new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
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);
@@ -1758,7 +1755,7 @@ index 1d11d0388b9763a0e0e5f3398425dafa2bb01488..72cf1372a7e685b3ff4cc852c3d38f7d
}
} 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
index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f477fcfde 100644
index f86d2644024f4b190e9bded08aa9b71d6d0c8235..0bba03116d4746515117574177abfc7b43326a43 100644
--- a/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 {
@@ -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
}
}
@@ -1079,6 +1081,20 @@ public abstract class PlayerList {
@@ -1082,6 +1084,20 @@ public abstract class PlayerList {
}
// CraftBukkit end
@@ -1807,7 +1804,7 @@ index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
Iterator iterator = this.players.iterator();
@@ -1182,6 +1198,7 @@ public abstract class PlayerList {
@@ -1185,6 +1201,7 @@ public abstract class PlayerList {
} else {
b0 = (byte) (24 + permissionLevel);
}
@@ -1815,7 +1812,7 @@ index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f
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
this.server.getCommands().sendCommands(player);
} // 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 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
index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eabd5c83316 100644
index 487c15ed7154a8fe117c982c2b9064ac9dc138f1..85d3da44ac575d26b9e6c522011e6b6288cce651 100644
--- a/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
@@ -2959,7 +2956,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
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));
}
@@ -2968,7 +2965,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
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 InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -2977,7 +2974,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
}
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();
}
@@ -2985,7 +2982,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
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
public boolean isSunBurnTick() {
@@ -3016,7 +3013,7 @@ index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eab
}
@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);
}
@@ -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
index c1bb44fd92ee4f3b900f29e3f9069841ca19fa5d..f096a9023fe0b54160e957dd5c6baa489ed0c410 100644
index b8dacff80c114a00b698b6fc29e4d6da2eaedb5e..9ef292d75160089b278ee38d41f65aeb221ea600 100644
--- a/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 {
@@ -12984,7 +12981,7 @@ index bd3f78e6453cfe18aa3da38176b04d734d83bb4b..c7ad716f607afe382436d088a2b2e622
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
index 32910f677b0522ac8ec513fa0d00b714b52cfae4..c491291b522aebf34c7d990d2b485d1a0d19cdcd 100644
index dd4218e108f87f3305b76fbc8d88f488b447c609..ecfa807e78c16a24099d40becd0c7916f239aed1 100644
--- a/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 {
@@ -13881,7 +13878,7 @@ index 06497b5141e611cc7a1b6030a7b9c54b5c4eda06..28df1b3230762e52b5458ac93a85c9a5
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
index 804297a04988b3e21092a42df6584b7fc3cff1bb..b341ce21de28b2ee829dcba64b7dd6952fc1c17d 100644
index 70df666abd3264f24e2f3c6480c6310e4500fdf0..2777b9379a547b29b9a300c1c549f33c1b2a7d07 100644
--- a/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 {
@@ -14614,7 +14611,7 @@ index 8240c32d676a88aa23dcd052ee0136767e54fb0d..372c4ab9d390d5afd98947f21c79aae0
if (i != -1) {
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
index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4673f4251 100644
index b807f4a5239f32e6b6080a58e055357b7341cf00..34d96e8bfebdee3bcc61071c6ec22b53baecec3f 100644
--- a/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 {
@@ -14628,7 +14625,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
// Paper start
public final boolean isDestroyable() {
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) {
if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity).forEach((itemstack) -> {
@@ -14637,7 +14634,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
});
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.callEvent();
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
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
if (world instanceof ServerLevel) {
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) {
double d0 = (double) EntityType.ITEM.getHeight() / 2.0D;
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
}
@@ -14699,7 +14696,7 @@ index 94246e6e05a83758059e933a036558eb47d2e84b..d9afbfb23536e180e2af5658de0bd1d4
public boolean isPossibleToRespawnInThis(BlockState state) {
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) {
@@ -15134,7 +15131,7 @@ index 3f5bb5c9ceb5b31fcc9ef0a7a6157e1e1cb2a09f..9bd56c48119fe630f272427a2ec99ffe
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
index 01333f69b622141b2eb53441c6cbd69e4a059d55..9c11a615fbfd4fcaff5df2a15d1b8578897ab2b4 100644
index a35a426cc7778a51523f26057b5d61b8a3e23d5d..28d8c8a879badc97cd1168e1847e2fafdc40e4bd 100644
--- a/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 {
@@ -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
index ddab7de1d376e9e486e2f920174397ea8804aa29..74d9a8a61365f1244471dbff8eb91dad3afaab51 100644
index 0fdbcab175b51a8b77646e0e4a267d987b133a35..d579132d1afd5c2edb9356c5601584bca2357f8f 100644
--- a/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 {
@@ -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
index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..66c17bdfecdfbcfb2d853e561432dd51a8f7ed46 100644
index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..80ee7a6f010cc838625674007a3ea908f2f9dadd 100644
--- a/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 {
@@ -15705,7 +15702,7 @@ index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..66c17bdfecdfbcfb2d853e561432dd51
@Override
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) {
int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15);
@@ -16303,7 +16300,7 @@ index d47bc2f54c4722a0b8c419b99ee57eb3cb25d750..fdeabdcc781b605d6f3ee18528fd380f
+ // Purpur
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
index a28be7a332659be655f419d969e0c64e659b6c21..8cd812a25b1cc05ea14675658bf9c1503ebebd51 100644
index 3070cd2b588f5a69fd8c0d3551e16251680d8c27..c9a1c071780351b584ad8e071ddc26f9a27e5964 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
@@ -201,16 +201,31 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
@@ -17376,7 +17373,7 @@ index 30d62ee4d5cd2ddacb8783b5bbbf475d592b3e02..5c1cda88080850314dac196dbe71ff12
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index d2bb0831394c03b620b2cbd8306cb82b621f34f7..9add2ba364e80815ec9c530b984e1619b6607bb8 100644
index beb6ad312028adb14053e3f019a4fcf6c9149373..a8568e16301f7fce4baea6942a02b9be94fe7ddc 100644
--- a/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 {
@@ -17388,7 +17385,7 @@ index d2bb0831394c03b620b2cbd8306cb82b621f34f7..9add2ba364e80815ec9c530b984e1619
}
// 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));
}
// Paper end - Expose canUseSlot
@@ -17427,7 +17424,7 @@ index 351f42842b780d053cd2e5bad9ae299449141b10..4860574e7fad7a9527dda599703c573c
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 992437a6e838f653f32d33b5b3f702c484640a97..e3100e65fea02374d4393bab48d63ddeaecef0ab 100644
index a0d5082590ee03060f0dbb4770d196efc316c328..37fc08d04ff3514d27ad25c8d774a6e96b30c3b1 100644
--- a/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 {
@@ -17645,10 +17642,10 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8dd85b9ca3b3e3429de4d0ec0654982589c6e93e..198a86fc9b8c4dba8c8de27bccc4de65690b84de 100644
index 77ef27f9254235180a8596c6c8c4af750dc759d1..3c533df90cf8b1a69b190ffee06c9254e4e4d764 100644
--- a/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
craftServer.getPluginManager().callEvent(event);
@@ -17664,7 +17661,7 @@ index 8dd85b9ca3b3e3429de4d0ec0654982589c6e93e..198a86fc9b8c4dba8c8de27bccc4de65
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);
} else if (source.getDirectBlock() != null) {
DamageCause cause;
@@ -17673,7 +17670,7 @@ index 8dd85b9ca3b3e3429de4d0ec0654982589c6e93e..198a86fc9b8c4dba8c8de27bccc4de65
cause = DamageCause.CONTACT;
} else if (source.is(DamageTypes.HOT_FLOOR)) {
cause = DamageCause.HOT_FLOOR;
@@ -1191,6 +1200,7 @@ public class CraftEventFactory {
@@ -1193,6 +1202,7 @@ public class CraftEventFactory {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
@@ -17820,13 +17817,14 @@ index e2d8d69c5ae8feb6840462ba8332344972658d83..d1505efcf861224f0b3c983707269015
+ // 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
index d7c8f26b21276d9ff1d5c7c9738cc1126ce7d4b9..f0471f92044612e3a2fd12a575b8b1f844790d3a 100644
index db8d8e2a07296d62c3097f02b03319e2e1ba9394..f32712907afd8ab2d0efe9ae4e162666a16fe2c7 100644
--- a/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 {
return ItemStack.of(material, amount);
@@ -708,4 +708,33 @@ public class MaterialRerouting {
meta.setCanPlaceOn(materials);
}
// Paper end
+
+ // Purpur start
+ // Method added post 1.13, no-op (https://github.com/PurpurMC/Purpur/pull/570)
+ 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
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
index 9d082b3c06281b0cafe455959d6ef20b8891110e..5071828f4ec318ca457d7c29d5ffaa3de2f43e48 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -136,7 +156,7 @@ index 06e5d3e2dfc762c640b5261b4962503e48c2a76f..164c126a61f550c09a7e114bf8947bde
}
// 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
index 65d475803716ea30453ec2397403581def8939fb..41a2254c5665b1a1ef770fe9f08271136cec2983 100644
index cb2d6bb3ab2d07dc0756591be0be76a3f6f8a5d6..27e7086b4e2c71b29aa4a1c825604395a5f35439 100644
--- a/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 {
@@ -164,7 +184,7 @@ index 65d475803716ea30453ec2397403581def8939fb..41a2254c5665b1a1ef770fe9f0827113
// Purpur start
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
index 9f50cd428bec118bf6317d90c66c0eabd5c83316..f43774ddcc6071ee2f61c57ac1a4596936194218 100644
index 85d3da44ac575d26b9e6c522011e6b6288cce651..e57d4f58401a93034a39e9ed27672ac265a6e4b9 100644
--- a/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
@@ -176,7 +196,7 @@ index 9f50cd428bec118bf6317d90c66c0eabd5c83316..f43774ddcc6071ee2f61c57ac1a45969
Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
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() {}
@@ -283,7 +303,7 @@ index 613ef7dc40f1f2819bb38fecd3793f1c42a8f791..482a0998a3d98ba145f33efdba598971
"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
index 85983dd81dbc9f2d187a224298b56613dab18f8a..c12ae7bd63b5f82b688ce0679dff3af9ca9be99a 100644
index 617043b24fbf073038ffc5252da75c4cfaf85d38..e40f6d244011f6444fbed3fa0f49994ff56f54ce 100644
--- a/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 {

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
index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0043e0d62 100644
index 0bba03116d4746515117574177abfc7b43326a43..03aa00fda048a634777dfc28a8b45599ae4c4b3b 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@
@@ -1335,7 +1335,7 @@ index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
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) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -1343,7 +1343,7 @@ index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0
int numSaved = 0;
long now = MinecraftServer.currentTick;
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
}
@@ -1559,10 +1559,10 @@ index 1da91797ddbaf2cee7124b3dbd0970acb1a23073..e33b39d369386d677cc15247846790b4
// 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
index d9afbfb23536e180e2af5658de0bd1d4673f4251..64f96850cad67c64c9c71b2c5d1cc68d2db4fafc 100644
index 34d96e8bfebdee3bcc61071c6ec22b53baecec3f..4eab34f932ae564aa038cecf4426b9f74a513ee7 100644
--- a/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.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.
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
+++ 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));
double d0 = 1.0000001D;

View File

@@ -7,7 +7,7 @@ Original license: MIT
Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 1d0044693dafce42921af0a44175b164d7321114..d954c8e0cefe7337059bda5d5c1429a445a633d0 100644
index e6d22346d37261751563b039ae2ad8629ff83d8e..d05f687cc2a765058c8eabfcb50d1cc84a13073d 100644
--- a/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
@@ -19,10 +19,10 @@ index 1d0044693dafce42921af0a44175b164d7321114..d954c8e0cefe7337059bda5d5c1429a4
// Paper start - rewrite chunk system
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
index adb9956f3350f1e58cbe5d26602412c0043e0d62..b309541c4a29015ad51e05bb341462bcf247f1eb 100644
index 03aa00fda048a634777dfc28a8b45599ae4c4b3b..6bf9d97992b17aa985e16d9367b64bbe1b0b6dfe 100644
--- a/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();
LevelData worlddata = worldserver1.getLevelData();
@@ -36,7 +36,7 @@ index adb9956f3350f1e58cbe5d26602412c0043e0d62..b309541c4a29015ad51e05bb341462bc
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1f70d832b0287f446722745a65062813e84be566..a5f00869d4636867ce54ddbe18ccabfecaad4d9a 100644
index d57cb8e3fec8db07dea328abeada47829eda111c..04aa0c7d2946a38427951217f2b865b005011ef5 100644
--- a/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 {

View File

@@ -9,10 +9,10 @@ Original project: https://github.com/LeavesMC/Leaves
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
index 3f127b7ca317c14ffeb1d8c3440848ad06efd5c8..10364d2f34c601a00d8405b5a3f749565eb857a8 100644
index 8e8346394ba5c48c551050725decbb7f6a91098a..42fa51a01c33d525d6858d53811b204280d362e6 100644
--- a/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 ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
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
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
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -593,7 +593,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -19,16 +19,16 @@ index 87c96fa812aab05caa75c3c9d5eb3243e2ef9f55..798f6bfc0603ad0b76feb1bad53ea415
// CraftBukkit end
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));
@@ -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;
boolean flag2 = false;
- 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
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)});
}
@@ -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,
toX, toY, toZ, toYaw, toPitch, true);
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});
this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot());
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;
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
index 10364d2f34c601a00d8405b5a3f749565eb857a8..cebff1c2ff7f957a588d1eee9db44fad99a0ac68 100644
index 42fa51a01c33d525d6858d53811b204280d362e6..b94dfd585714ee103400221e3e6fb4d8261fa6f4 100644
--- a/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 file1 = new File(file, String.valueOf(uuid) + ".json");
@@ -17,7 +17,7 @@ index 10364d2f34c601a00d8405b5a3f749565eb857a8..cebff1c2ff7f957a588d1eee9db44fad
if (!file1.exists()) {
File file2 = new File(file, displayName + ".json"); // CraftBukkit
Path path = file2.toPath();
@@ -1541,6 +1543,8 @@ public abstract class PlayerList {
@@ -1544,6 +1546,8 @@ public abstract class PlayerList {
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.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
index d954c8e0cefe7337059bda5d5c1429a445a633d0..2f4096cb2bf93f880d01283df8d10bf996e72bb9 100644
index d05f687cc2a765058c8eabfcb50d1cc84a13073d..8cc6423928b191049a85c023af740a92950d2c00 100644
--- a/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
private boolean isAfk = false;
@@ -31,7 +31,7 @@ index d954c8e0cefe7337059bda5d5c1429a445a633d0..2f4096cb2bf93f880d01283df8d10bf9
@Override
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 suffix = (split.length > 1 ? split[1] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, "");
if (afk) {
@@ -53,10 +53,10 @@ index d954c8e0cefe7337059bda5d5c1429a445a633d0..2f4096cb2bf93f880d01283df8d10bf9
} else {
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
index 798f6bfc0603ad0b76feb1bad53ea4154168f570..212074a4e26fd124705bbd4ac7bb4e25f3cbf2f9 100644
index d96511e9db78c73356a9f52f22c9d03c2a77e0ca..2b4994e3bf86392f4e4794d61c4653ef2cf714f1 100644
--- a/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
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
index cebff1c2ff7f957a588d1eee9db44fad99a0ac68..c5c0494fde702e12c320bffe21530c2155766459 100644
index b94dfd585714ee103400221e3e6fb4d8261fa6f4..8ce41d394a2e60ec2c9411f4a3172a63edd15b12 100644
--- a/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 {

View File

@@ -117,10 +117,10 @@ index ae0d0310d50f1ada082e045a58a24a43f8079da8..eea19f895588c51bce86f20b3ec505fd
if (packet == null || this.processedDisconnect) { // Spigot
return;
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
+++ 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
boolean flag = this.verifyChatTrusted(message);
@@ -129,7 +129,7 @@ index c5c0494fde702e12c320bffe21530c2155766459..14d0a5468cb4502ed2def4e92fb70e70
OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message);
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

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
index 14d0a5468cb4502ed2def4e92fb70e70e929dbfe..bd1b6f2aee3d79d9c6e21af6518bbf1800861a49 100644
index 3482c172685990f696797a954ef765fe2d0f6261..9d2faacd5c9c6e5439c6b8b2e2f7cb2bab4ad8f8 100644
--- a/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 {
@@ -35,7 +35,7 @@ index 14d0a5468cb4502ed2def4e92fb70e70e929dbfe..bd1b6f2aee3d79d9c6e21af6518bbf18
this.cserver.getPluginManager().callEvent(playerQuitEvent);
entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
@@ -1660,4 +1660,29 @@ public abstract class PlayerList {
@@ -1663,4 +1663,29 @@ public abstract class PlayerList {
public boolean isAllowCommandsForAllPlayers() {
return this.allowCommandsForAllPlayers;
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Fix-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
index 0782cdddcb7e79260dd8c3b75760aaab95a378de..9941f0659b98ddb385172f7fb7d00ff3f723dff3 100644
index 8cc6423928b191049a85c023af740a92950d2c00..0bab919a9a47ce831818d97722874c2f67126c87 100644
--- a/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()));
if (gameMode == GameType.SPECTATOR) {
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
index 091580c23138fc260f3aa898aa0f4a247c705293..0b9ee7be6172d6fbe3e2757ed8f88ad7f649919f 100644
index d7f92865bf81e2358246b11e4e3efe4bda02f6d5..0752b0e29f149438aa16a252ae1b2afc87218503 100644
--- a/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);
// SPIGOT-7136 - Allays
if (entity instanceof Allay) {
@@ -100,7 +100,7 @@ index 3503423ee0d4ed13f7ebdb8272c8266a827ff4c1..341fad1609308fad6adf5b5f9ad289d5
case HAND:
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
index c491291b522aebf34c7d990d2b485d1a0d19cdcd..267f638bb704002a30b1f5cb4e33b6a89cf0773c 100644
index ecfa807e78c16a24099d40becd0c7916f239aed1..f1b4adeeb4dad5178a5e52870f420beaa8e13034 100644
--- a/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 {

View File

@@ -31,10 +31,10 @@ vain. Throttling spawn attempts in suspected spawnproof chunks improves
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
index 7509b17414f836e8b53fc62b02b386ba4e8c5ca9..f9a2bbd0aa64bd3a77f1dc80cbdc5ef52da89b5b 100644
index 95e96fe8aa93efbbb2e0a7dd98377fdc4fe0e6dd..b6728bb0c1974eb236a7e8429b936492ff490bdd 100644
--- a/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
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
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
index 7e1a007ed2f2c625f01fea210c9935cb02d119e0..8e9ada03e5134d2f776bbbf872087121f649c19d 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java