Skip to content

Commit aec0ea8

Browse files
committed
Fix EnderPearl crash on remove with player
1 parent 2672aba commit aec0ea8

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

shreddedpaper-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,16 @@
2020
import net.minecraft.world.level.Level;
2121
import net.minecraft.world.level.block.Blocks;
2222
import net.minecraft.world.level.block.state.BlockState;
23+
@@ -490,7 +_,9 @@
24+
for (ThrownEnderpearl thrownEnderpearl : player.getEnderPearls()) {
25+
// Paper start - Allow using old ender pearl behavior
26+
if (!thrownEnderpearl.level().paperConfig().misc.legacyEnderPearlBehavior) {
27+
+ ShreddedPaper.ensureSync(thrownEnderpearl, () -> { // ShreddedPaper - run on ender pearl's thread
28+
thrownEnderpearl.setRemoved(Entity.RemovalReason.UNLOADED_WITH_PLAYER, org.bukkit.event.entity.EntityRemoveEvent.Cause.PLAYER_QUIT); // CraftBukkit - add Bukkit remove cause
29+
+ }); // ShreddedPaper - run on ender pearl's thread
30+
}
31+
// Paper end - Allow using old ender pearl behavior
32+
}
2333
@@ -515,8 +_,7 @@
2434
// CraftBukkit start
2535
// this.broadcastAll(new ClientboundPlayerInfoRemovePacket(List.of(player.getUUID())));

0 commit comments

Comments
 (0)