Compare commits

..

1 Commits

3 changed files with 38 additions and 39 deletions

View File

@ -13121,7 +13121,7 @@ index bd07e6a5aa1883786d789ea71711a0c0c0a95c26..09469ad131622158fe5579216fc41642
} }
// Spigot end // Spigot end
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514af768dc37 100644 index 4068132a33f87dd07d6df1033ed11ba16a57313b..4e3cb90558533ea7ca0c838745e91ec5860c11ce 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -292,10 +292,10 @@ public class ServerGamePacketListenerImpl @@ -292,10 +292,10 @@ public class ServerGamePacketListenerImpl
@ -13138,14 +13138,13 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
private int dropCount = 0; private int dropCount = 0;
private boolean hasMoved = false; private boolean hasMoved = false;
@@ -313,10 +313,17 @@ public class ServerGamePacketListenerImpl @@ -313,9 +313,16 @@ public class ServerGamePacketListenerImpl
private final LastSeenMessagesValidator lastSeenMessages = new LastSeenMessagesValidator(20); private final LastSeenMessagesValidator lastSeenMessages = new LastSeenMessagesValidator(20);
private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault(); private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault();
private final FutureChain chatMessageChain; private final FutureChain chatMessageChain;
- private boolean waitingForSwitchToConfig; - private boolean waitingForSwitchToConfig;
+ public volatile boolean waitingForSwitchToConfig; // Folia - rewrite login process - fix bad ordering of this field write + public + public volatile boolean waitingForSwitchToConfig; // Folia - rewrite login process - fix bad ordering of this field write + public
private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper - Limit client sign length private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper - Limit client sign length
private final io.papermc.paper.event.packet.ClientTickEndEvent tickEndEvent; // Paper - add client tick end event
+ // Folia start - region threading + // Folia start - region threading
+ public net.minecraft.world.level.ChunkPos disconnectPos; + public net.minecraft.world.level.ChunkPos disconnectPos;
@ -13157,7 +13156,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie cookie) { public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie cookie) {
super(server, connection, cookie, player); // CraftBukkit super(server, connection, cookie, player); // CraftBukkit
this.chunkSender = new PlayerChunkSender(connection.isMemoryConnection()); this.chunkSender = new PlayerChunkSender(connection.isMemoryConnection());
@@ -330,6 +337,12 @@ public class ServerGamePacketListenerImpl @@ -328,6 +335,12 @@ public class ServerGamePacketListenerImpl
@Override @Override
public void tick() { public void tick() {
@ -13170,7 +13169,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
if (this.ackBlockChangesUpTo > -1) { if (this.ackBlockChangesUpTo > -1) {
this.send(new ClientboundBlockChangedAckPacket(this.ackBlockChangesUpTo)); this.send(new ClientboundBlockChangedAckPacket(this.ackBlockChangesUpTo));
this.ackBlockChangesUpTo = -1; this.ackBlockChangesUpTo = -1;
@@ -378,7 +391,7 @@ public class ServerGamePacketListenerImpl @@ -376,7 +389,7 @@ public class ServerGamePacketListenerImpl
this.aboveGroundVehicleTickCount = 0; this.aboveGroundVehicleTickCount = 0;
} }
@ -13179,7 +13178,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
this.chatSpamThrottler.tick(); this.chatSpamThrottler.tick();
this.dropSpamThrottler.tick(); this.dropSpamThrottler.tick();
this.tabSpamThrottler.tick(); // Paper - configurable tab spam limits this.tabSpamThrottler.tick(); // Paper - configurable tab spam limits
@@ -414,6 +427,19 @@ public class ServerGamePacketListenerImpl @@ -412,6 +425,19 @@ public class ServerGamePacketListenerImpl
this.lastGoodX = this.player.getX(); this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY(); this.lastGoodY = this.player.getY();
this.lastGoodZ = this.player.getZ(); this.lastGoodZ = this.player.getZ();
@ -13199,7 +13198,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
} }
@Override @Override
@@ -521,9 +547,10 @@ public class ServerGamePacketListenerImpl @@ -519,9 +545,10 @@ public class ServerGamePacketListenerImpl
// Paper end - fix large move vectors killing the server // Paper end - fix large move vectors killing the server
// CraftBukkit start - handle custom speeds and skipped ticks // CraftBukkit start - handle custom speeds and skipped ticks
@ -13212,7 +13211,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
++this.receivedMovePacketCount; ++this.receivedMovePacketCount;
int i = this.receivedMovePacketCount - this.knownMovePacketCount; int i = this.receivedMovePacketCount - this.knownMovePacketCount;
@@ -590,7 +617,7 @@ public class ServerGamePacketListenerImpl @@ -588,7 +615,7 @@ public class ServerGamePacketListenerImpl
} }
rootVehicle.absMoveTo(d, d1, d2, f, f1); rootVehicle.absMoveTo(d, d1, d2, f, f1);
@ -13221,7 +13220,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
// Paper start - optimise out extra getCubes // Paper start - optimise out extra getCubes
boolean teleportBack = flag2; // violating this is always a fail boolean teleportBack = flag2; // violating this is always a fail
if (!teleportBack) { if (!teleportBack) {
@@ -602,11 +629,19 @@ public class ServerGamePacketListenerImpl @@ -600,11 +627,19 @@ public class ServerGamePacketListenerImpl
} }
if (teleportBack) { // Paper end - optimise out extra getCubes if (teleportBack) { // Paper end - optimise out extra getCubes
rootVehicle.absMoveTo(x, y, z, f, f1); rootVehicle.absMoveTo(x, y, z, f, f1);
@ -13242,7 +13241,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
// CraftBukkit start - fire PlayerMoveEvent // CraftBukkit start - fire PlayerMoveEvent
org.bukkit.entity.Player player = this.getCraftPlayer(); org.bukkit.entity.Player player = this.getCraftPlayer();
if (!this.hasMoved) { if (!this.hasMoved) {
@@ -637,7 +672,7 @@ public class ServerGamePacketListenerImpl @@ -635,7 +670,7 @@ public class ServerGamePacketListenerImpl
// If the event is cancelled we move the player back to their old location. // If the event is cancelled we move the player back to their old location.
if (event.isCancelled()) { if (event.isCancelled()) {
@ -13251,7 +13250,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
return; return;
} }
@@ -645,7 +680,7 @@ public class ServerGamePacketListenerImpl @@ -643,7 +678,7 @@ public class ServerGamePacketListenerImpl
// there to avoid any 'Moved wrongly' or 'Moved too quickly' errors. // there to avoid any 'Moved wrongly' or 'Moved too quickly' errors.
// We only do this if the Event was not cancelled. // We only do this if the Event was not cancelled.
if (!oldTo.equals(event.getTo()) && !event.isCancelled()) { if (!oldTo.equals(event.getTo()) && !event.isCancelled()) {
@ -13260,7 +13259,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
return; return;
} }
@@ -826,7 +861,7 @@ public class ServerGamePacketListenerImpl @@ -824,7 +859,7 @@ public class ServerGamePacketListenerImpl
} }
// This needs to be on main // This needs to be on main
@ -13269,7 +13268,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
} else if (!completions.isEmpty()) { } else if (!completions.isEmpty()) {
final com.mojang.brigadier.suggestion.SuggestionsBuilder builder0 = new com.mojang.brigadier.suggestion.SuggestionsBuilder(packet.getCommand(), stringReader.getTotalLength()); final com.mojang.brigadier.suggestion.SuggestionsBuilder builder0 = new com.mojang.brigadier.suggestion.SuggestionsBuilder(packet.getCommand(), stringReader.getTotalLength());
final com.mojang.brigadier.suggestion.SuggestionsBuilder builder = builder0.createOffset(builder0.getInput().lastIndexOf(' ') + 1); final com.mojang.brigadier.suggestion.SuggestionsBuilder builder = builder0.createOffset(builder0.getInput().lastIndexOf(' ') + 1);
@@ -1210,11 +1245,11 @@ public class ServerGamePacketListenerImpl @@ -1207,11 +1242,11 @@ public class ServerGamePacketListenerImpl
} }
// Paper end - Book size limits // Paper end - Book size limits
// CraftBukkit start // CraftBukkit start
@ -13283,7 +13282,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
// CraftBukkit end // CraftBukkit end
int slot = packet.slot(); int slot = packet.slot();
if (Inventory.isHotbarSlot(slot) || slot == 40) { if (Inventory.isHotbarSlot(slot) || slot == 40) {
@@ -1225,7 +1260,22 @@ public class ServerGamePacketListenerImpl @@ -1222,7 +1257,22 @@ public class ServerGamePacketListenerImpl
Consumer<List<FilteredText>> consumer = optional.isPresent() Consumer<List<FilteredText>> consumer = optional.isPresent()
? texts -> this.signBook(texts.get(0), texts.subList(1, texts.size()), slot) ? texts -> this.signBook(texts.get(0), texts.subList(1, texts.size()), slot)
: texts -> this.updateBookContents(texts, slot); : texts -> this.updateBookContents(texts, slot);
@ -13307,7 +13306,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
} }
} }
@@ -1351,9 +1401,10 @@ public class ServerGamePacketListenerImpl @@ -1348,9 +1398,10 @@ public class ServerGamePacketListenerImpl
int i = this.receivedMovePacketCount - this.knownMovePacketCount; int i = this.receivedMovePacketCount - this.knownMovePacketCount;
// CraftBukkit start - handle custom speeds and skipped ticks // CraftBukkit start - handle custom speeds and skipped ticks
@ -13320,7 +13319,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
if (i > Math.max(this.allowedPlayerTicks, 5)) { if (i > Math.max(this.allowedPlayerTicks, 5)) {
LOGGER.debug("{} is sending move packets too frequently ({} packets since last tick)", this.player.getName().getString(), i); LOGGER.debug("{} is sending move packets too frequently ({} packets since last tick)", this.player.getName().getString(), i);
@@ -1542,7 +1593,7 @@ public class ServerGamePacketListenerImpl @@ -1539,7 +1590,7 @@ public class ServerGamePacketListenerImpl
// If the event is cancelled we move the player back to their old location. // If the event is cancelled we move the player back to their old location.
if (event.isCancelled()) { if (event.isCancelled()) {
@ -13329,7 +13328,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
return; return;
} }
@@ -1550,7 +1601,7 @@ public class ServerGamePacketListenerImpl @@ -1547,7 +1598,7 @@ public class ServerGamePacketListenerImpl
// there to avoid any 'Moved wrongly' or 'Moved too quickly' errors. // there to avoid any 'Moved wrongly' or 'Moved too quickly' errors.
// We only do this if the Event was not cancelled. // We only do this if the Event was not cancelled.
if (!oldTo.equals(event.getTo()) && !event.isCancelled()) { if (!oldTo.equals(event.getTo()) && !event.isCancelled()) {
@ -13338,7 +13337,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
return; return;
} }
@@ -1810,9 +1861,9 @@ public class ServerGamePacketListenerImpl @@ -1806,9 +1857,9 @@ public class ServerGamePacketListenerImpl
if (!this.player.isSpectator()) { if (!this.player.isSpectator()) {
// limit how quickly items can be dropped // limit how quickly items can be dropped
// If the ticks aren't the same then the count starts from 0 and we update the lastDropTick. // If the ticks aren't the same then the count starts from 0 and we update the lastDropTick.
@ -13350,16 +13349,16 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
} else { } else {
// Else we increment the drop count and check the amount. // Else we increment the drop count and check the amount.
this.dropCount++; this.dropCount++;
@@ -1843,7 +1894,7 @@ public class ServerGamePacketListenerImpl @@ -1836,7 +1887,7 @@ public class ServerGamePacketListenerImpl
case ABORT_DESTROY_BLOCK: case ABORT_DESTROY_BLOCK:
case STOP_DESTROY_BLOCK: case STOP_DESTROY_BLOCK:
// Paper start - Don't allow digging into unloaded chunks // Paper start - Don't allow digging into unloaded chunks
- if (this.player.level().getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4) == null || !this.player.canInteractWithBlock(pos, 1.0)) { - if (this.player.level().getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4) == null) {
+ if (!ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(this.player.serverLevel(), pos.getX() >> 4, pos.getZ() >> 4, 8) || this.player.level().getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4) == null || !this.player.canInteractWithBlock(pos, 1.0)) { // Folia - region threading - don't destroy blocks not owned + if (!ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(this.player.serverLevel(), pos.getX() >> 4, pos.getZ() >> 4, 8) || this.player.level().getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4) == null) { // Folia - region threading - don't destroy blocks not owned
this.player.connection.ackBlockChangesUpTo(packet.getSequence()); this.player.connection.ackBlockChangesUpTo(packet.getSequence());
return; return;
} }
@@ -1926,7 +1977,7 @@ public class ServerGamePacketListenerImpl @@ -1918,7 +1969,7 @@ public class ServerGamePacketListenerImpl
} }
// Paper end - improve distance check // Paper end - improve distance check
BlockPos blockPos = hitResult.getBlockPos(); BlockPos blockPos = hitResult.getBlockPos();
@ -13368,7 +13367,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos)); Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos));
double d = 1.0000001; double d = 1.0000001;
if (Math.abs(vec3.x()) < 1.0000001 && Math.abs(vec3.y()) < 1.0000001 && Math.abs(vec3.z()) < 1.0000001) { if (Math.abs(vec3.x()) < 1.0000001 && Math.abs(vec3.y()) < 1.0000001 && Math.abs(vec3.z()) < 1.0000001) {
@@ -2048,7 +2099,7 @@ public class ServerGamePacketListenerImpl @@ -2039,7 +2090,7 @@ public class ServerGamePacketListenerImpl
for (ServerLevel serverLevel : this.server.getAllLevels()) { for (ServerLevel serverLevel : this.server.getAllLevels()) {
Entity entity = packet.getEntity(serverLevel); Entity entity = packet.getEntity(serverLevel);
if (entity != null) { if (entity != null) {
@ -13377,7 +13376,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
return; return;
} }
} }
@@ -2080,7 +2131,7 @@ public class ServerGamePacketListenerImpl @@ -2071,7 +2122,7 @@ public class ServerGamePacketListenerImpl
} }
// CraftBukkit end // CraftBukkit end
LOGGER.info("{} lost connection: {}", this.player.getName().getString(), details.reason().getString()); LOGGER.info("{} lost connection: {}", this.player.getName().getString(), details.reason().getString());
@ -13386,7 +13385,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
super.onDisconnect(details, quitMessage); // Paper - Fix kick event leave message not being sent super.onDisconnect(details, quitMessage); // Paper - Fix kick event leave message not being sent
} }
@@ -2089,6 +2140,8 @@ public class ServerGamePacketListenerImpl @@ -2080,6 +2131,8 @@ public class ServerGamePacketListenerImpl
this.removePlayerFromWorld(null); this.removePlayerFromWorld(null);
} }
@ -13395,7 +13394,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
private void removePlayerFromWorld(@Nullable net.kyori.adventure.text.Component quitMessage) { private void removePlayerFromWorld(@Nullable net.kyori.adventure.text.Component quitMessage) {
// Paper end - Fix kick event leave message not being sent // Paper end - Fix kick event leave message not being sent
this.chatMessageChain.close(); this.chatMessageChain.close();
@@ -2102,6 +2155,8 @@ public class ServerGamePacketListenerImpl @@ -2093,6 +2146,8 @@ public class ServerGamePacketListenerImpl
this.player.disconnect(); this.player.disconnect();
// Paper start - Adventure // Paper start - Adventure
quitMessage = quitMessage == null ? this.server.getPlayerList().remove(this.player) : this.server.getPlayerList().remove(this.player, quitMessage); // Paper - pass in quitMessage to fix kick message not being used quitMessage = quitMessage == null ? this.server.getPlayerList().remove(this.player) : this.server.getPlayerList().remove(this.player, quitMessage); // Paper - pass in quitMessage to fix kick message not being used
@ -13404,7 +13403,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
if ((quitMessage != null) && !quitMessage.equals(net.kyori.adventure.text.Component.empty())) { if ((quitMessage != null) && !quitMessage.equals(net.kyori.adventure.text.Component.empty())) {
this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false);
// Paper end - Adventure // Paper end - Adventure
@@ -2341,7 +2396,7 @@ public class ServerGamePacketListenerImpl @@ -2331,7 +2386,7 @@ public class ServerGamePacketListenerImpl
this.player.resetLastActionTime(); this.player.resetLastActionTime();
// CraftBukkit start // CraftBukkit start
if (sync) { if (sync) {
@ -13413,7 +13412,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
} else { } else {
handler.run(); handler.run();
} }
@@ -2396,7 +2451,7 @@ public class ServerGamePacketListenerImpl @@ -2386,7 +2441,7 @@ public class ServerGamePacketListenerImpl
String originalFormat = event.getFormat(), originalMessage = event.getMessage(); String originalFormat = event.getFormat(), originalMessage = event.getMessage();
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@ -13422,7 +13421,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
// Evil plugins still listening to deprecated event // Evil plugins still listening to deprecated event
final PlayerChatEvent queueEvent = new PlayerChatEvent(player, event.getMessage(), event.getFormat(), event.getRecipients()); final PlayerChatEvent queueEvent = new PlayerChatEvent(player, event.getMessage(), event.getFormat(), event.getRecipients());
queueEvent.setCancelled(event.isCancelled()); queueEvent.setCancelled(event.isCancelled());
@@ -2493,6 +2548,7 @@ public class ServerGamePacketListenerImpl @@ -2483,6 +2538,7 @@ public class ServerGamePacketListenerImpl
if (rawMessage.isEmpty()) { if (rawMessage.isEmpty()) {
LOGGER.warn("{} tried to send an empty message", this.player.getScoreboardName()); LOGGER.warn("{} tried to send an empty message", this.player.getScoreboardName());
} else if (this.getCraftPlayer().isConversing()) { } else if (this.getCraftPlayer().isConversing()) {
@ -13430,7 +13429,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
final String conversationInput = rawMessage; final String conversationInput = rawMessage;
this.server.processQueue.add(() -> ServerGamePacketListenerImpl.this.getCraftPlayer().acceptConversationInput(conversationInput)); this.server.processQueue.add(() -> ServerGamePacketListenerImpl.this.getCraftPlayer().acceptConversationInput(conversationInput));
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check } else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check
@@ -2718,8 +2774,25 @@ public class ServerGamePacketListenerImpl @@ -2708,8 +2764,25 @@ public class ServerGamePacketListenerImpl
// Spigot end // Spigot end
public void switchToConfig() { public void switchToConfig() {
@ -13457,7 +13456,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
this.send(ClientboundStartConfigurationPacket.INSTANCE); this.send(ClientboundStartConfigurationPacket.INSTANCE);
this.connection.setupOutboundProtocol(ConfigurationProtocols.CLIENTBOUND); this.connection.setupOutboundProtocol(ConfigurationProtocols.CLIENTBOUND);
} }
@@ -2744,7 +2817,7 @@ public class ServerGamePacketListenerImpl @@ -2734,7 +2807,7 @@ public class ServerGamePacketListenerImpl
// Spigot end // Spigot end
this.player.resetLastActionTime(); this.player.resetLastActionTime();
this.player.setShiftKeyDown(packet.isUsingSecondaryAction()); this.player.setShiftKeyDown(packet.isUsingSecondaryAction());
@ -13466,7 +13465,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
if (!serverLevel.getWorldBorder().isWithinBounds(target.blockPosition())) { if (!serverLevel.getWorldBorder().isWithinBounds(target.blockPosition())) {
return; return;
} }
@@ -2877,6 +2950,12 @@ public class ServerGamePacketListenerImpl @@ -2866,6 +2939,12 @@ public class ServerGamePacketListenerImpl
switch (action) { switch (action) {
case PERFORM_RESPAWN: case PERFORM_RESPAWN:
if (this.player.wonGame) { if (this.player.wonGame) {
@ -13479,7 +13478,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
this.player.wonGame = false; this.player.wonGame = false;
this.player = this.server.getPlayerList().respawn(this.player, true, Entity.RemovalReason.CHANGED_DIMENSION, RespawnReason.END_PORTAL); // CraftBukkit this.player = this.server.getPlayerList().respawn(this.player, true, Entity.RemovalReason.CHANGED_DIMENSION, RespawnReason.END_PORTAL); // CraftBukkit
this.resetPosition(); this.resetPosition();
@@ -2886,6 +2965,17 @@ public class ServerGamePacketListenerImpl @@ -2875,6 +2954,17 @@ public class ServerGamePacketListenerImpl
return; return;
} }
@ -13497,7 +13496,7 @@ index 1205307b7d2336fa6c5395a65be6643228c49d72..a2fe9286d432909ba0cb3731a166514a
this.player = this.server.getPlayerList().respawn(this.player, false, Entity.RemovalReason.KILLED, RespawnReason.DEATH); // CraftBukkit this.player = this.server.getPlayerList().respawn(this.player, false, Entity.RemovalReason.KILLED, RespawnReason.DEATH); // CraftBukkit
this.resetPosition(); this.resetPosition();
if (this.server.isHardcore()) { if (this.server.isHardcore()) {
@@ -3462,7 +3552,21 @@ public class ServerGamePacketListenerImpl @@ -3448,7 +3538,21 @@ public class ServerGamePacketListenerImpl
} }
List<String> list = Stream.of(lines).map(ChatFormatting::stripFormatting).collect(Collectors.toList()); List<String> list = Stream.of(lines).map(ChatFormatting::stripFormatting).collect(Collectors.toList());
// Paper end - Limit client sign length // Paper end - Limit client sign length
@ -17943,7 +17942,7 @@ index 84a1bd5e40e635962d795506861447851e443eee..a7b8e2b702fbe512c9633075515da6a4
protected RenderShape getRenderShape(BlockState state) { protected RenderShape getRenderShape(BlockState state) {
return RenderShape.INVISIBLE; return RenderShape.INVISIBLE;
diff --git a/net/minecraft/world/level/block/EndPortalBlock.java b/net/minecraft/world/level/block/EndPortalBlock.java diff --git a/net/minecraft/world/level/block/EndPortalBlock.java b/net/minecraft/world/level/block/EndPortalBlock.java
index c11366dd69e1c51bdab45c625b07c15ce2e42cb6..554d75ac1374d7d93977a10e06fcf51259830c97 100644 index 01cddd7001b4a7f99c1b1d147fac904d3064d733..177735cf744e564081e4c140a0f8210c3a07e037 100644
--- a/net/minecraft/world/level/block/EndPortalBlock.java --- a/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/net/minecraft/world/level/block/EndPortalBlock.java +++ b/net/minecraft/world/level/block/EndPortalBlock.java
@@ -63,7 +63,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { @@ -63,7 +63,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
@ -17955,7 +17954,7 @@ index c11366dd69e1c51bdab45c625b07c15ce2e42cb6..554d75ac1374d7d93977a10e06fcf512
if (level.paperConfig().misc.disableEndCredits) {serverPlayer.seenCredits = true; return;} // Paper - Option to disable end credits if (level.paperConfig().misc.disableEndCredits) {serverPlayer.seenCredits = true; return;} // Paper - Option to disable end credits
serverPlayer.showEndCredits(); serverPlayer.showEndCredits();
} else { } else {
@@ -115,6 +115,20 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { @@ -113,6 +113,20 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
} }
} }

View File

@ -4026,7 +4026,7 @@ index 2638c341bc02f201f7ab17fdebcdbdf3a7ec05bf..074b2919be2b5544b0a46e6cd32f6c57
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0e0abc233f6425a6303672d87429bcdfaf04f842..c9afcd46f6a1b74b82ed68f1df6188369cf53a73 100644 index 218a27def751fb657cdeee102d9ec4b26025bb30..2d1b672fc152054d7b6abf47f443b87f5a2ea3de 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -673,7 +673,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -673,7 +673,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -4095,7 +4095,7 @@ index 0e0abc233f6425a6303672d87429bcdfaf04f842..c9afcd46f6a1b74b82ed68f1df618836
} }
public void setHandle(final ServerPlayer entity) { public void setHandle(final ServerPlayer entity) {
@@ -3352,7 +3364,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3355,7 +3367,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
{ {
if ( CraftPlayer.this.getHealth() <= 0 && CraftPlayer.this.isOnline() ) if ( CraftPlayer.this.getHealth() <= 0 && CraftPlayer.this.isOnline() )
{ {

View File

@ -2,7 +2,7 @@ group=dev.folia
version=1.21.4-R0.1-SNAPSHOT version=1.21.4-R0.1-SNAPSHOT
mcVersion=1.21.4 mcVersion=1.21.4
paperRef=1a7288aa05cfb0a168850a7cc879f55235fe5934 paperRef=4519857817618fc5e678b9e44e2bd3450f3afa53
org.gradle.configuration-cache=true org.gradle.configuration-cache=true
org.gradle.caching=true org.gradle.caching=true