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

Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@f7d5a0a0 [ci/skip] Add remote build cache configuration through Gradle properties (#12797)
PaperMC/Paper@b4466ec9 Dialog API (#12671)
This commit is contained in:
Dreeam
2025-07-07 22:42:05 +08:00
parent 69c285eb4c
commit b095bee8df
29 changed files with 124 additions and 124 deletions

View File

@@ -169,7 +169,7 @@ index 18071dcc69cc28471dddb7de94e803ec1e5fc2e4..e30bb9c4046200c1a6e4e917d15b205f
}
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95bf82f86c8 100644
index 6713b462c8fc182f18f19a997037d337f78ff096..470e9f7570d1fa6b1328052e59ecd1324ec58825 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -114,19 +114,8 @@ import net.minecraft.util.TimeUtil;
@@ -320,17 +320,17 @@ index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95b
this.getPlayerList().getPlayers().forEach(serverPlayer1 -> serverPlayer1.connection.suspendFlushing());
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
// Paper start - optimise Folia entity scheduler
@@ -1674,9 +1630,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
@@ -1675,9 +1631,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - optimise Folia entity scheduler
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.ADVENTURE_CLICK_MANAGER.handleQueue(this.tickCount); // Paper
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.DIALOG_CLICK_MANAGER.handleQueue(this.tickCount); // Paper
- profilerFiller.push("commandFunctions");
this.getFunctions().tick();
- profilerFiller.popPush("levels");
// CraftBukkit start
// Run tasks that are waiting on processing
@@ -1711,17 +1665,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1712,17 +1666,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
@@ -348,7 +348,7 @@ index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95b
try {
serverLevel.tick(hasTimeLeft);
} catch (Throwable var7) {
@@ -1730,34 +1679,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1731,34 +1680,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw new ReportedException(crashReport);
}
@@ -383,7 +383,7 @@ index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95b
}
public void tickConnection() {
@@ -1773,14 +1712,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1774,14 +1713,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void forceTimeSynchronization() {
@@ -398,7 +398,7 @@ index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95b
}
public boolean isLevelEnabled(Level level) {
@@ -2596,55 +2530,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2597,55 +2531,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// CraftBukkit end
@@ -454,7 +454,7 @@ index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95b
public Path getWorldPath(LevelResource levelResource) {
return this.storageSource.getLevelPath(levelResource);
}
@@ -2694,24 +2579,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2695,24 +2580,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return this.isSaving;
}
@@ -479,7 +479,7 @@ index 89b7af92f9d8e4e449d9eb1a3ddfe2ec89fd63a4..4deffef83bc7afe688127b9cf184c95b
public int getMaxChainedNeighborUpdates() {
return 1000000;
}
@@ -2821,55 +2688,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2822,55 +2689,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public record ServerResourcePackInfo(UUID id, String url, String hash, boolean isRequired, @Nullable Component prompt) {
}
@@ -1115,7 +1115,7 @@ index 21ae237a94232090029539652310f7d1e4aba381..4132ebc316af92aedd3b5f21d291e7d5
this.stopUsingItem();
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 2e7c4c74818befd25e296b58ef9f20319544c2fb..29f19fef7fdefa345b862cd2d5776c2655085c1f 100644
index 08c59d603fca038fc2dde36384eea1b6c971e659..5e7f2c9bc266074aa661a8f8fe38bf311150fc4a 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -26,7 +26,6 @@ import net.minecraft.network.protocol.cookie.ServerboundCookieResponsePacket;
@@ -1126,7 +1126,7 @@ index 2e7c4c74818befd25e296b58ef9f20319544c2fb..29f19fef7fdefa345b862cd2d5776c26
import org.slf4j.Logger;
public abstract class ServerCommonPacketListenerImpl implements ServerCommonPacketListener {
@@ -248,7 +247,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -260,7 +259,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
protected void keepConnectionAlive() {
@@ -1134,7 +1134,7 @@ index 2e7c4c74818befd25e296b58ef9f20319544c2fb..29f19fef7fdefa345b862cd2d5776c26
long millis = Util.getMillis();
// Paper start - improve keepalives
if (this.checkIfClosed(millis) && !this.processedDisconnect) {
@@ -269,8 +267,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -281,8 +279,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
// Paper end - improve keepalives
}
}

View File

@@ -22,10 +22,10 @@ you to easily disable books, should you want to preemptively remove this
functionality before additional exploits are found.
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 04c991964364a9bcf87d9f6a8d3ef0a0dd8f1deb..128fd9c5a44f05d3556f280f43151695da0665b8 100644
index c61e8b5202a6ac6fcca8d1d7cbe8addecd42778e..1204f5833ebceebe17e95fb6c9563e658047fba7 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1257,6 +1257,11 @@ public class ServerGamePacketListenerImpl
@@ -1269,6 +1269,11 @@ public class ServerGamePacketListenerImpl
@Override
public void handleEditBook(ServerboundEditBookPacket packet) {

View File

@@ -25,10 +25,10 @@ index 4132ebc316af92aedd3b5f21d291e7d57560e985..8df0dbadca1dc72ac8d267654414044e
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 128fd9c5a44f05d3556f280f43151695da0665b8..ab0598fffccaf1ea628ab38c68d75399d73d897e 100644
index 1204f5833ebceebe17e95fb6c9563e658047fba7..85eb002679ab395aba52757a84d968342231d792 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2431,7 +2431,7 @@ public class ServerGamePacketListenerImpl
@@ -2443,7 +2443,7 @@ public class ServerGamePacketListenerImpl
this.disconnectAsync(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper - add proper async disconnect
} else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false));

View File

@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ab0598fffccaf1ea628ab38c68d75399d73d897e..5dba2bdd91e5dc775e0727b99aff02c892eff733 100644
index 85eb002679ab395aba52757a84d968342231d792..1729f36ec81f0f7ac0bf494513e6b0ceba87e063 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2513,7 +2513,7 @@ public class ServerGamePacketListenerImpl
@@ -2525,7 +2525,7 @@ public class ServerGamePacketListenerImpl
// CraftBukkit start
String rawMessage = message.signedContent();
if (rawMessage.isEmpty()) {

View File

@@ -165,10 +165,10 @@ index 8df0dbadca1dc72ac8d267654414044eb988ee43..784a08d0aed30fd0362e408aaa577200
this.getInventory().equipment.set(value, net.minecraft.world.item.ItemStack.EMPTY);
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 5dba2bdd91e5dc775e0727b99aff02c892eff733..38376506f8b886ed66ec48b1a78dede2a7cabe99 100644
index 1729f36ec81f0f7ac0bf494513e6b0ceba87e063..b1d2e52c04cdc7285bc732e91006f76c3552d35f 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2782,7 +2782,7 @@ public class ServerGamePacketListenerImpl
@@ -2794,7 +2794,7 @@ public class ServerGamePacketListenerImpl
// SPIGOT-7136 - Allays
if (target instanceof net.minecraft.world.entity.animal.allay.Allay || target instanceof net.minecraft.world.entity.animal.horse.AbstractHorse) { // Paper - Fix horse armor desync
ServerGamePacketListenerImpl.this.send(new net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket(

View File

@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 29f19fef7fdefa345b862cd2d5776c2655085c1f..3d14ca26938d8b74a456ab4b27849a992bbf8b74 100644
index 5e7f2c9bc266074aa661a8f8fe38bf311150fc4a..de630a692291926c52a0947f9943e59433ab130a 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -38,10 +38,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -65,7 +65,7 @@ index 29f19fef7fdefa345b862cd2d5776c2655085c1f..3d14ca26938d8b74a456ab4b27849a99
protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
// Paper start - retain certain values
public @Nullable String playerBrand;
@@ -97,6 +101,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -103,6 +107,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
// Paper start - improve keepalives
long now = System.nanoTime();
io.papermc.paper.util.KeepAlive.PendingKeepAlive pending = this.keepAlive.pendingKeepAlives.peek();
@@ -84,7 +84,7 @@ index 29f19fef7fdefa345b862cd2d5776c2655085c1f..3d14ca26938d8b74a456ab4b27849a99
if (pending != null && pending.challengeId() == packet.getId()) {
this.keepAlive.pendingKeepAlives.remove(pending);
@@ -108,6 +124,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -114,6 +130,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
this.latency = this.keepAlive.pingCalculator5s.getAvgLatencyMS();
return;
}
@@ -92,7 +92,7 @@ index 29f19fef7fdefa345b862cd2d5776c2655085c1f..3d14ca26938d8b74a456ab4b27849a99
for (java.util.Iterator<io.papermc.paper.util.KeepAlive.PendingKeepAlive> itr = this.keepAlive.pendingKeepAlives.iterator(); itr.hasNext();) {
io.papermc.paper.util.KeepAlive.PendingKeepAlive ka = itr.next();
@@ -249,6 +266,23 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -261,6 +278,23 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
protected void keepConnectionAlive() {
long millis = Util.getMillis();
// Paper start - improve keepalives
@@ -116,7 +116,7 @@ index 29f19fef7fdefa345b862cd2d5776c2655085c1f..3d14ca26938d8b74a456ab4b27849a99
if (this.checkIfClosed(millis) && !this.processedDisconnect) {
long currTime = System.nanoTime();
@@ -267,6 +301,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -279,6 +313,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
// Paper end - improve keepalives
}
}

View File

@@ -320,7 +320,7 @@ index b16f3f515a76ddbbd74d73464396cf094cb30599..dd6ae338fa48d52962ee0af5b1572077
io.papermc.paper.plugin.PluginInitializerManager.load(optionSet); // Paper
Bootstrap.bootStrap();
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 9ab4e38d6dd278b9ed7c43bf448c32983135a547..f05fa801f35f4afcc93fcace6a98cee0fa3ec531 100644
index 4119cfb1de8bbb0c5c1287f70cffc6660dc9e8e4..6ae53701e2b8ed3a8ab89e940c817245a14ea35b 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -266,6 +266,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -403,7 +403,7 @@ index 9ab4e38d6dd278b9ed7c43bf448c32983135a547..f05fa801f35f4afcc93fcace6a98cee0
this.startMeasuringTaskExecutionTime();
this.waitUntilNextTick();
this.finishMeasuringTaskExecutionTime();
@@ -1659,7 +1690,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1660,7 +1691,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) {
@@ -412,7 +412,7 @@ index 9ab4e38d6dd278b9ed7c43bf448c32983135a547..f05fa801f35f4afcc93fcace6a98cee0
continue;
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
@@ -1678,6 +1709,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1679,6 +1710,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
@@ -1271,7 +1271,7 @@ index 6734756d7a51e635a50a47577f9e6b6f8111db51..c4a4f08272b34f72dea4feaaeb66d153
+ // Purpur end - Shift right click to use exp for mending
}
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 3d14ca26938d8b74a456ab4b27849a992bbf8b74..52408680113135ff019d09b90fbe80b8187941fd 100644
index de630a692291926c52a0947f9943e59433ab130a..ca9ba2a2535eab66622230778efdf941f540f6d2 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -56,6 +56,10 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -1285,7 +1285,7 @@ index 3d14ca26938d8b74a456ab4b27849a992bbf8b74..52408680113135ff019d09b90fbe80b8
// Paper start - retain certain values
public @Nullable String playerBrand;
public final java.util.Set<String> pluginMessagerChannels;
@@ -188,6 +192,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -194,6 +198,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
return;
}
@@ -1299,12 +1299,12 @@ index 3d14ca26938d8b74a456ab4b27849a992bbf8b74..52408680113135ff019d09b90fbe80b8
this.playerBrand = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4db56ddfa 100644
index b1d2e52c04cdc7285bc732e91006f76c3552d35f..cb646939cc6465135030b715d203ba2211981b8e 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl
this.playerGameConnection = new io.papermc.paper.connection.PaperPlayerGameConnection(this); // Paper
@@ -338,6 +338,20 @@ public class ServerGamePacketListenerImpl
}
// Paper end - configuration phase API
+ // Purpur start - AFK API
+ private final com.google.common.cache.LoadingCache<org.bukkit.craftbukkit.entity.CraftPlayer, Boolean> kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder()
@@ -1323,7 +1323,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
@Override
public void tick() {
if (this.ackBlockChangesUpTo > -1) {
@@ -384,6 +398,12 @@ public class ServerGamePacketListenerImpl
@@ -396,6 +410,12 @@ public class ServerGamePacketListenerImpl
if (this.player.getLastActionTime() > 0L
&& this.server.getPlayerIdleTimeout() > 0
&& Util.getMillis() - this.player.getLastActionTime() > this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
@@ -1336,7 +1336,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
}
@@ -653,6 +673,8 @@ public class ServerGamePacketListenerImpl
@@ -665,6 +685,8 @@ public class ServerGamePacketListenerImpl
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -1345,7 +1345,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event);
@@ -732,6 +754,7 @@ public class ServerGamePacketListenerImpl
@@ -744,6 +766,7 @@ public class ServerGamePacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) {
@@ -1353,7 +1353,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
return;
}
@@ -1270,6 +1293,10 @@ public class ServerGamePacketListenerImpl
@@ -1282,6 +1305,10 @@ public class ServerGamePacketListenerImpl
final int maxBookPageSize = pageMax.intValue();
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
long byteAllowed = maxBookPageSize;
@@ -1364,7 +1364,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
for (final String page : pageList) {
final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
byteTotal += byteLength;
@@ -1294,7 +1321,8 @@ public class ServerGamePacketListenerImpl
@@ -1306,7 +1333,8 @@ public class ServerGamePacketListenerImpl
}
if (byteTotal > byteAllowed) {
@@ -1374,7 +1374,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
return;
}
@@ -1313,31 +1341,45 @@ public class ServerGamePacketListenerImpl
@@ -1325,31 +1353,45 @@ public class ServerGamePacketListenerImpl
Optional<String> optional = packet.title();
optional.ifPresent(list::add);
list.addAll(packet.pages());
@@ -1424,7 +1424,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
itemStack.set(
DataComponents.WRITTEN_BOOK_CONTENT,
new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getName().getString(), 0, list, true)
@@ -1351,6 +1393,16 @@ public class ServerGamePacketListenerImpl
@@ -1363,6 +1405,16 @@ public class ServerGamePacketListenerImpl
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText);
}
@@ -1441,7 +1441,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
@Override
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -1390,7 +1442,15 @@ public class ServerGamePacketListenerImpl
@@ -1402,7 +1454,15 @@ public class ServerGamePacketListenerImpl
@Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -1458,7 +1458,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
} else {
ServerLevel serverLevel = this.player.level();
@@ -1572,7 +1632,7 @@ public class ServerGamePacketListenerImpl
@@ -1584,7 +1644,7 @@ public class ServerGamePacketListenerImpl
movedWrongly = true;
if (event.getLogWarning())
// Paper end
@@ -1467,7 +1467,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
} // Paper
}
@@ -1637,6 +1697,8 @@ public class ServerGamePacketListenerImpl
@@ -1649,6 +1709,8 @@ public class ServerGamePacketListenerImpl
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -1476,7 +1476,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event);
@@ -1692,6 +1754,13 @@ public class ServerGamePacketListenerImpl
@@ -1704,6 +1766,13 @@ public class ServerGamePacketListenerImpl
this.player.tryResetCurrentImpulseContext();
}
@@ -1490,7 +1490,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY();
@@ -1709,6 +1778,17 @@ public class ServerGamePacketListenerImpl
@@ -1721,6 +1790,17 @@ public class ServerGamePacketListenerImpl
}
}
@@ -1508,7 +1508,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
private boolean shouldCheckPlayerMovement(boolean isElytraMovement) {
if (this.isSingleplayerOwner()) {
return false;
@@ -2106,6 +2186,7 @@ public class ServerGamePacketListenerImpl
@@ -2118,6 +2198,7 @@ public class ServerGamePacketListenerImpl
boolean cancelled;
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
@@ -1516,7 +1516,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand);
cancelled = event.useItemInHand() == Event.Result.DENY;
} else {
@@ -2753,6 +2834,7 @@ public class ServerGamePacketListenerImpl
@@ -2765,6 +2846,7 @@ public class ServerGamePacketListenerImpl
AABB boundingBox = target.getBoundingBox();
if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range
@@ -1524,7 +1524,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
packet.dispatch(
new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
@@ -2765,6 +2847,8 @@ public class ServerGamePacketListenerImpl
@@ -2777,6 +2859,8 @@ public class ServerGamePacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -1533,7 +1533,7 @@ index b23a8a69902a04cbfc389b779e0cf5de1dc89523..a22038bb3e78f7308ba2ae00a71deac4
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) {
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
@@ -3541,7 +3625,7 @@ public class ServerGamePacketListenerImpl
@@ -3553,7 +3637,7 @@ public class ServerGamePacketListenerImpl
@Override
public void handleChangeGameMode(ServerboundChangeGameModePacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index f05fa801f35f4afcc93fcace6a98cee0fa3ec531..b567eed9e07e281c56ff707ad938661f37f4ee3f 100644
index 6ae53701e2b8ed3a8ab89e940c817245a14ea35b..19e65eaf77dd8fa5eaa23e4db9af1adee7280fff 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -277,7 +277,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -65,10 +65,10 @@ index 35fd539eb2bfe60ad17ab1e558a01273666acc54..445bbdc8da7f1fdbddfc4d8787d78fea
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint();
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e4114d44d089f8434461f2653a787ff0d3595a04..4674760a18926e2e83c481defccf1a06df358b7d 100644
index cb646939cc6465135030b715d203ba2211981b8e..53200e2f90d76a54254f819a2f419e298975a367 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1321,7 +1321,7 @@ public class ServerGamePacketListenerImpl
@@ -1333,7 +1333,7 @@ public class ServerGamePacketListenerImpl
}
if (byteTotal > byteAllowed) {

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index b567eed9e07e281c56ff707ad938661f37f4ee3f..54bb75a2a128e7747ab01cb0d40c81fb4340ffd1 100644
index 19e65eaf77dd8fa5eaa23e4db9af1adee7280fff..12e697a626ce68127ac2157fca0e5408beb13f0b 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1839,7 +1839,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1840,7 +1840,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {

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/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 4674760a18926e2e83c481defccf1a06df358b7d..6f7094004e2d38d3471c3582b3a10dfc7fce3b32 100644
index 53200e2f90d76a54254f819a2f419e298975a367..1fda5f9d285a51fd642369b4cc32826c38019c69 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2110,8 +2110,13 @@ public class ServerGamePacketListenerImpl
@@ -2122,8 +2122,13 @@ public class ServerGamePacketListenerImpl
BlockPos blockPos = hitResult.getBlockPos();
if (this.player.canInteractWithBlock(blockPos, 1.0)) {
Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos));

View File

@@ -56,10 +56,10 @@ index 62b9d9486c15a1ec6527f786df4e9fc483390bcb..5384bbc6bb3dbe5481f9d8cb10282551
int i = buffer.readableBytes();
if (i >= 0 && i <= maxSize) {
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 54bb75a2a128e7747ab01cb0d40c81fb4340ffd1..0fed0f181c4d1f31d01bdaa5dc9417ccd68b3f03 100644
index 12e697a626ce68127ac2157fca0e5408beb13f0b..46118a63b721d445623c4d831881652d845df96d 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1737,6 +1737,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1738,6 +1738,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick();
}
@@ -82,10 +82,10 @@ index c746d86439d45e60903248438a23cc1463154645..849428f5ad870ac93f29cec8bc7d3d33
public final boolean moonrise$isRealPlayer() {
return this.isRealPlayer;
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 52408680113135ff019d09b90fbe80b8187941fd..87f5e88ff6e557d51d7ce4942413215e371b6b29 100644
index ca9ba2a2535eab66622230778efdf941f540f6d2..95f89a415f7f7b9d4d7823744cb6bcc6b3886aa5 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -228,6 +228,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -234,6 +234,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
final String channel = new String(data, from, length, java.nio.charset.StandardCharsets.US_ASCII);
if (register) {
bridge.addChannel(channel);
@@ -94,10 +94,10 @@ index 52408680113135ff019d09b90fbe80b8187941fd..87f5e88ff6e557d51d7ce4942413215e
bridge.removeChannel(channel);
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index de74a5e6c3bcc26617ad0bb8bc387d4a740cb4a6..1ba09787d768c36d590c5b39f1367cd07e051c62 100644
index 1fda5f9d285a51fd642369b4cc32826c38019c69..aefe56847cab77cfc83ef24e965a1be9d9454107 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3723,6 +3723,17 @@ public class ServerGamePacketListenerImpl
@@ -3735,6 +3735,17 @@ public class ServerGamePacketListenerImpl
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {

View File

@@ -9,7 +9,7 @@ Original project: https://github.com/LeavesMC/Leaves
This patch is Powered by Syncmatica (https://github.com/End-Tech/syncmatica)
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 76ad04e021b840b1595bfe01d07f1d7943937281..f8572720e4bf7b2b0b64fbe39a5a068d715b6e01 100644
index aefe56847cab77cfc83ef24e965a1be9d9454107..c6b871037f9dea8c6cbe9d0a2acff2cb2a960c09 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -324,8 +324,11 @@ public class ServerGamePacketListenerImpl
@@ -21,6 +21,6 @@ index 76ad04e021b840b1595bfe01d07f1d7943937281..f8572720e4bf7b2b0b64fbe39a5a068d
+ public final org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget exchangeTarget; // Leaves - Syncmatica Protocol
+
// Purpur start - AFK API
private final com.google.common.cache.LoadingCache<org.bukkit.craftbukkit.entity.CraftPlayer, Boolean> kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder()
.maximumSize(1000)
// Paper start - configuration phase API
@Override
public io.papermc.paper.connection.PlayerCommonConnection getApiConnection() {

View File

@@ -53,10 +53,10 @@ index 77ca4f505dc0a1aa6292cfcd957b734ab107f657..5f4dcb645670dd1b07ff865d50530b73
} else {
getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index fbace6411c0d34a524a8a0517e47f3437a99c4a2..1d05b4336768c972a267ffec8ecc4d69e0e3c340 100644
index c6b871037f9dea8c6cbe9d0a2acff2cb2a960c09..b3c138e78552ba348d67c37343c6684d37f2e10f 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2359,6 +2359,7 @@ public class ServerGamePacketListenerImpl
@@ -2371,6 +2371,7 @@ public class ServerGamePacketListenerImpl
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
@@ -64,7 +64,7 @@ index fbace6411c0d34a524a8a0517e47f3437a99c4a2..1d05b4336768c972a267ffec8ecc4d69
this.tryHandleChat(packet.command(), () -> {
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
if (this.player.hasDisconnected()) {
@@ -2367,7 +2368,7 @@ public class ServerGamePacketListenerImpl
@@ -2379,7 +2380,7 @@ public class ServerGamePacketListenerImpl
// CraftBukkit end
this.performUnsignedChatCommand(packet.command());
this.detectRateSpam("/" + packet.command()); // Spigot
@@ -73,7 +73,7 @@ index fbace6411c0d34a524a8a0517e47f3437a99c4a2..1d05b4336768c972a267ffec8ecc4d69
}
private void performUnsignedChatCommand(String command) {
@@ -2400,6 +2401,7 @@ public class ServerGamePacketListenerImpl
@@ -2412,6 +2413,7 @@ public class ServerGamePacketListenerImpl
public void handleSignedChatCommand(ServerboundChatCommandSignedPacket packet) {
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(packet.lastSeenMessages());
if (!optional.isEmpty()) {
@@ -81,7 +81,7 @@ index fbace6411c0d34a524a8a0517e47f3437a99c4a2..1d05b4336768c972a267ffec8ecc4d69
this.tryHandleChat(packet.command(), () -> {
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
if (this.player.hasDisconnected()) {
@@ -2408,7 +2410,7 @@ public class ServerGamePacketListenerImpl
@@ -2420,7 +2422,7 @@ public class ServerGamePacketListenerImpl
// CraftBukkit end
this.performSignedChatCommand(packet, optional.get());
this.detectRateSpam("/" + packet.command()); // Spigot
@@ -90,7 +90,7 @@ index fbace6411c0d34a524a8a0517e47f3437a99c4a2..1d05b4336768c972a267ffec8ecc4d69
}
}
@@ -2515,12 +2517,17 @@ public class ServerGamePacketListenerImpl
@@ -2527,12 +2529,17 @@ public class ServerGamePacketListenerImpl
return dispatcher.parse(command, this.player.createCommandSourceStack());
}
@@ -110,7 +110,7 @@ index fbace6411c0d34a524a8a0517e47f3437a99c4a2..1d05b4336768c972a267ffec8ecc4d69
this.player.resetLastActionTime();
// CraftBukkit start
if (sync) {
@@ -2532,6 +2539,40 @@ public class ServerGamePacketListenerImpl
@@ -2544,6 +2551,40 @@ public class ServerGamePacketListenerImpl
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Virtual thread for chat executor
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 534082a0441dcde9115652cb67dbc8310529ecee..5251e0b274ab5c182f89e52013a542c2b8f30304 100644
index b79ca0e1083520a7b24536cf04fec883181d17a0..07943aa3be4222ab7a63b09a6625f7a003da8725 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -2645,7 +2645,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2646,7 +2646,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public final java.util.concurrent.ExecutorService chatExecutor = java.util.concurrent.Executors.newCachedThreadPool(

View File

@@ -103,10 +103,10 @@ index 87fc8861948b50361ec04c5a23406d3abdec6eac..77f11179836636424927843f5f10c3fd
// Paper start - Add setting for proxy online mode status
return properties.enforceSecureProfile
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 87f5e88ff6e557d51d7ce4942413215e371b6b29..c66207aaa3f62bac1d2c2707654a473a69e38b73 100644
index 95f89a415f7f7b9d4d7823744cb6bcc6b3886aa5..7f4257870c5fca902403e246b9ce569b20dbb364 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -337,10 +337,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -349,10 +349,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
public void send(Packet<?> packet) {

View File

@@ -23,11 +23,11 @@ See the License for the specific language governing permissions and
limitations under the License.
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index c038ceb441897157a0c240a9970e676a297e40c3..3173922dbb478e46f892304fb17b0f662fe62b40 100644
index b3c138e78552ba348d67c37343c6684d37f2e10f..3f8b0c9f0d2172b1ffaee6c1065a91ff34b35953 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -330,17 +330,12 @@ public class ServerGamePacketListenerImpl
public final org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget exchangeTarget; // Leaves - Syncmatica Protocol
@@ -342,17 +342,12 @@ public class ServerGamePacketListenerImpl
// Paper end - configuration phase API
// Purpur start - AFK API
- private final com.google.common.cache.LoadingCache<org.bukkit.craftbukkit.entity.CraftPlayer, Boolean> kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder()
@@ -48,7 +48,7 @@ index c038ceb441897157a0c240a9970e676a297e40c3..3173922dbb478e46f892304fb17b0f66
// Purpur end - AFK API
@Override
@@ -403,7 +398,7 @@ public class ServerGamePacketListenerImpl
@@ -415,7 +410,7 @@ public class ServerGamePacketListenerImpl
&& Util.getMillis() - this.player.getLastActionTime() > this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
// Purpur start - AFK API
this.player.setAfk(true);

View File

@@ -400,10 +400,10 @@ index 08d12a1acc3a672a77daa15f82392cd603c30283..c5949a0e852ca6de84e8dd12e3d4ed85
}
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 3173922dbb478e46f892304fb17b0f662fe62b40..baa703a89583f72fab0ebbc40c85399022185c29 100644
index 3f8b0c9f0d2172b1ffaee6c1065a91ff34b35953..608324d13514063b48ae250d3aaf11c433438ce6 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1916,7 +1916,7 @@ public class ServerGamePacketListenerImpl
@@ -1928,7 +1928,7 @@ public class ServerGamePacketListenerImpl
}
public void internalTeleport(PositionMoveRotation posMoveRotation, Set<Relative> relatives) {

View File

@@ -95,7 +95,7 @@ index 582e012222123e5001c34153f2ee1ab1d08935fd..c0bce2293d07ca58cc5bc9e036ab8dca
List<org.bukkit.block.BlockState> states = new java.util.ArrayList<>(level.capturedBlockStates.values());
level.capturedBlockStates.clear();
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 07c9a7105de7111de73b6a786a860f8676015897..15bf079e1d634505c78f345dbef06c2c19eee393 100644
index 3c45e6eac0403c9cb13409c8e0e9c1653fd531ba..15b01ff019e48ce9434b1f538d712601c3fe65c8 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -290,6 +290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -188,7 +188,7 @@ index 07c9a7105de7111de73b6a786a860f8676015897..15bf079e1d634505c78f345dbef06c2c
protected void tickChildren(BooleanSupplier hasTimeLeft) {
this.getPlayerList().getPlayers().forEach(serverPlayer1 -> serverPlayer1.connection.suspendFlushing());
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
@@ -1708,28 +1739,50 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1709,28 +1740,50 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
@@ -257,7 +257,7 @@ index 07c9a7105de7111de73b6a786a860f8676015897..15bf079e1d634505c78f345dbef06c2c
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
this.tickConnection();
@@ -1809,6 +1862,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1810,6 +1863,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Map<ResourceKey<Level>, ServerLevel> oldLevels = this.levels;
Map<ResourceKey<Level>, ServerLevel> newLevels = Maps.newLinkedHashMap(oldLevels);
newLevels.remove(level.dimension());

View File

@@ -22,10 +22,10 @@ index 56fd1ed7ccaf96e7eedea60fbdbf7f934939d563..d2f522ea6d0a209496848af073c9af1c
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 42dbd6d9e82130cfc5ae4669c460373631061451..b3356ad173027afafba931f31952c5b5ddc57891 100644
index a73969d68b51a6996ae59073360051f447ce42a8..9eb35364757b5748f7228c1557e9350edc805440 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1802,6 +1802,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1803,6 +1803,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(tickCount); // Leaves - protocol
@@ -34,7 +34,7 @@ index 42dbd6d9e82130cfc5ae4669c460373631061451..b3356ad173027afafba931f31952c5b5
for (int i = 0; i < this.tickables.size(); i++) {
this.tickables.get(i).run();
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 9906244ab2e447de25546f25ec5f6ef6c4b221ab..b2776aa49319a6ed46a8770091f8d8225f393eaa 100644
index 4140d5beb01b530e97ae308eedc639de70df696f..7eb59771ac977aeeca33abd8d359b180a22215c5 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -808,6 +808,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -46,10 +46,10 @@ index 9906244ab2e447de25546f25ec5f6ef6c4b221ab..b2776aa49319a6ed46a8770091f8d822
private void updatePlayerAttributes() {
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index c66207aaa3f62bac1d2c2707654a473a69e38b73..e448d791a4350427c86addff486cc8060795be2d 100644
index 7f4257870c5fca902403e246b9ce569b20dbb364..70eb3ea8094bbbd460452935f62579b027a7925f 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -170,6 +170,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -176,6 +176,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(packet, this, this.server);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Reduce PlayerChunk Updates
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 7c12d65849a975aedfb94fc135bad7071908a02b..d6078ccf648c77717291e784200f952633fbbacf 100644
index 608324d13514063b48ae250d3aaf11c433438ce6..09818ac59077a6a81f2f7c46d37d81b34e9ee3ab 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1734,7 +1734,7 @@ public class ServerGamePacketListenerImpl
@@ -1746,7 +1746,7 @@ public class ServerGamePacketListenerImpl
&& !isFallFlying
&& !isAutoSpinAttack
&& this.noBlocksAround(this.player);

View File

@@ -69,10 +69,10 @@ index 01fb1bf0eba70b740b12731c79feadefc8fe96f0..a6077984e139be5cbcc00f8f0828f199
if (this.packetListener != null) {
throw new IllegalStateException("Listener already set");
diff --git a/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
index 91ca446e6e1d895d818fc7f844375101be6af5e8..8e24d76e24ad9788868934909a3c5e53823a5b13 100644
index ea892dd1d23d0f16c11381d1e8d75164a2791a3d..25c6e9f1b88ea7bfa2c7f1d130d56c581202960e 100644
--- a/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
@@ -140,11 +140,34 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
@@ -152,11 +152,34 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
}
}

View File

@@ -1068,10 +1068,10 @@ index 02deb9c37250144be9afa0fe55df2a49017a7070..dfb597fcb8d01ed6cf20eae57e260949
+ // Purpur end - Llama API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..218556fdaf4ea4993864e22530b4bad3335a535d 100644
index 9d6235390c530b4f3780ac8d088ad8f6ee3db58e..ab454a7c53b074c8c60bab38c0544aa3b69d5c6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -562,10 +562,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -682,10 +682,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@Override
public void setPlayerListName(String name) {
@@ -1088,7 +1088,7 @@ index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..218556fdaf4ea4993864e22530b4bad3
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
@@ -1379,6 +1384,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -1486,6 +1491,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
// Paper start - Teleport passenger API
// Don't allow teleporting between worlds while keeping passengers
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
@@ -1096,7 +1096,7 @@ index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..218556fdaf4ea4993864e22530b4bad3
return false;
}
@@ -1400,6 +1406,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -1507,6 +1513,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
}
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
@@ -1104,8 +1104,8 @@ index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..218556fdaf4ea4993864e22530b4bad3
return false;
}
@@ -2655,6 +2662,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
return this.getHandle().getAbilities().walkingSpeed * 2f;
@@ -2793,6 +2800,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
this.getHandle().getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(player.getAbilities().walkingSpeed); // SPIGOT-5833: combination of the two in 1.16+
}
+ // Purpur start - OfflinePlayer API
@@ -1133,9 +1133,9 @@ index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..218556fdaf4ea4993864e22530b4bad3
private void validateSpeed(float value) {
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
}
@@ -3503,4 +3532,76 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
public PlayerGameConnection getConnection() {
return this.getHandle().connection.playerGameConnection;
@@ -3601,4 +3630,76 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
this(new ShortArraySet(), new ArrayList<>());
}
}
+
+ // Purpur start - Purpur client support
@@ -1233,7 +1233,7 @@ index f03f9f94c51ef2f2eb24e4f65ec69b542b1c0a07..af60e3ef00ce1e98708d9963d466e72b
+ // Purpur end - Summoner API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
index 66f0089ee33c36b9d13fb0b87303d33f08021ed1..26f056294e19f509bfd4986b9650e13f92a8feaf 100644
index df332b6938b81822ba0436a7999ee448913e7c22..b366e40bf63e580b065c6917e17fd5c1eca5cedb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
@@ -258,4 +258,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
@@ -1272,7 +1272,7 @@ index 2e11df97e5c8ff5fbf22ba87946d6018ac8bbbed..83b779eb0adcaf2e6d5658cddc2607f6
+ // Purpur end - Summoner API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
index 33866c5a5591150de4c1d8f4c175122db3bd5bd4..5fd656f43985e3972c9f572d5b05bf5c81da2678 100644
index 723a8e659485850632adf173e52669e6e4f3fcc0..98880f082af386f2a1dc64bc13667030d2824d25 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
@@ -135,4 +135,15 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf {

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1c5128b0d2984ce47e2fce200790d4b87bcf94c9..9d7591609889c62583a6406e58c38e82d4e5b627 100644
index ab454a7c53b074c8c60bab38c0544aa3b69d5c6d..8c7f2e8a07a55b5e0ac7ddc955ca2f3376f85af5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3604,4 +3604,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -3702,4 +3702,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message)));
}
// Purpur end - Death screen API

View File

@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 9d7591609889c62583a6406e58c38e82d4e5b627..f382beb475d2f4a28fbd276dfa6da70119cbe5ab 100644
index 8c7f2e8a07a55b5e0ac7ddc955ca2f3376f85af5..6cdfbba18deb2429d7478649821d8815511f8fa2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1329,6 +1329,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -1455,6 +1455,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
// Paper end - Teleportation API
}

View File

@@ -73,10 +73,10 @@ index 476eefebace887064b728f08af40c746b6f70787..beae8a57a0ce9b8e7d81619efe4c39d9
if (entity instanceof EnderDragonPart complexPart) {
if (complexPart.parentMob instanceof EnderDragon) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f382beb475d2f4a28fbd276dfa6da70119cbe5ab..3e42efe805c185f387b343a925e74260e27cffa7 100644
index 6cdfbba18deb2429d7478649821d8815511f8fa2..e855ddb7f81124ccd0d1c8cc474777cca3056ad8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2231,7 +2231,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -2357,7 +2357,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@Override
public boolean canSee(Player player) {

View File

@@ -16,19 +16,19 @@ This seems stupid, but it does seem that it improves the performance a bit, and
We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3e42efe805c185f387b343a925e74260e27cffa7..3d215494bf74fd06a31367a3bf955e9d13c63ecb 100644
index e855ddb7f81124ccd0d1c8cc474777cca3056ad8..1e08ac054947b1a0a6cce2f886be1ed83c74a642 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -216,7 +216,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
private long lastPlayed = 0;
private boolean hasPlayedBefore = false;
@@ -217,7 +217,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
private static final net.kyori.adventure.text.Component DEFAULT_KICK_COMPONENT = net.kyori.adventure.text.Component.translatable("multiplayer.disconnect.kicked");
private final ConversationTracker conversationTracker = new ConversationTracker();
- private final Map<UUID, Set<WeakReference<Plugin>>> invertedVisibilityEntities = new HashMap<>();
+ private final Map<UUID, Set<WeakReference<Plugin>>> invertedVisibilityEntities = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(); // SparklyPaper - optimize canSee checks
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
private int hash = 0;
@@ -2236,9 +2236,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
private long firstPlayed = 0;
@@ -2362,9 +2362,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {

View File

@@ -72,10 +72,10 @@ index beae8a57a0ce9b8e7d81619efe4c39d908869319..6b1926080eddf61ff9c0156a6846f7f0
}
return set;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3d215494bf74fd06a31367a3bf955e9d13c63ecb..79e1e65c02b348bd2787bdc82d571a6d591553e1 100644
index 1e08ac054947b1a0a6cce2f886be1ed83c74a642..d4b7b7747dda687fe3d12b85b7eccc96a0b825f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2824,7 +2824,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
@@ -2962,7 +2962,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
Iterator<AttributeInstance> iterator = collection.iterator();
while (iterator.hasNext()) {
AttributeInstance genericInstance = iterator.next();