Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@a9399451 Fixup sendAllDataToRemote calls
PaperMC/Paper@cb47e018 Remove more dead code, fix pre-existing desync when cancelling and closing container
PaperMC/Paper@40764534 Specify the class loader when loading services (#12829)
PaperMC/Paper@1bf6364b Update Mache for horse decompile fix
This commit is contained in:
granny
2025-07-11 21:43:37 -07:00
parent 7dbe41536b
commit 11c030a8f8
11 changed files with 32 additions and 32 deletions

View File

@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
version = 1.21.7-R0.1-SNAPSHOT version = 1.21.7-R0.1-SNAPSHOT
mcVersion = 1.21.7 mcVersion = 1.21.7
paperCommit = b4466ec981d104c4756d1a3b90c2ee0d6ce4e6bd paperCommit = 1bf6364b97de3202348df8b3c0c522cc54be5bbb
org.gradle.configuration-cache = true org.gradle.configuration-cache = true
org.gradle.caching = true org.gradle.caching = true

View File

@@ -42,7 +42,7 @@ index 83eff33884bffddfafc85eeb4a2900104a396e2e..3c7159d0981c948e71a5612ba4083acc
@Override @Override
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) { public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index ee8f785ec897950a3ac3026ee0a5093502a1ec75..b89ef2c981d48e40d1c278f90891e36f7fc9a5bc 100644 index 76ee1d113046c9ff7da4a77bf42732325401c1d8..c70c02ba949a56010e25167bdf8649024e334b9a 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -794,6 +794,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -794,6 +794,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -62,7 +62,7 @@ index ee8f785ec897950a3ac3026ee0a5093502a1ec75..b89ef2c981d48e40d1c278f90891e36f
private void updatePlayerAttributes() { private void updatePlayerAttributes() {
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 8c34c10e3de60188c9a8719def63225c0a3c44bb..a8b2c19cc9803058b421b07c739166afdf291e47 100644 index d09627c10e3a4e51aa7e2bb746e4c3f568091134..a63ade75461b68a780c56bfb5ff7c61f99f76744 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
@@ -2854,6 +2854,8 @@ public class ServerGamePacketListenerImpl @@ -2854,6 +2854,8 @@ public class ServerGamePacketListenerImpl
@@ -71,14 +71,14 @@ index 8c34c10e3de60188c9a8719def63225c0a3c44bb..a8b2c19cc9803058b421b07c739166af
+ player.processClick(hand); // Purpur - Ridables + player.processClick(hand); // Purpur - Ridables
+ +
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a // Entity in bucket - SPIGOT-4048 and SPIGOT-6859
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))) { 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 target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 1d8ba25d542c49a687414a8b6d1d2fa16ca695d5..34e0fbef06b0c7aededf27fe9dc64f3f6f33e3ae 100644 index e5676044132d6d003533ff3bd5b1232727cee0f7..725612ca589b15679126178a5bf95123ae334007 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -3303,6 +3303,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3302,6 +3302,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -92,7 +92,7 @@ index 1d8ba25d542c49a687414a8b6d1d2fa16ca695d5..34e0fbef06b0c7aededf27fe9dc64f3f
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3344,6 +3351,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3343,6 +3350,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -107,7 +107,7 @@ index 1d8ba25d542c49a687414a8b6d1d2fa16ca695d5..34e0fbef06b0c7aededf27fe9dc64f3f
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) { if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -5398,4 +5413,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5397,4 +5412,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition()); return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -177,7 +177,7 @@ index f0c452ddc4b299a930de261722cc41a89aa78eeb..8e8ddab59de508c84c4182e105a11554
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 96e47e6145a4cce8c154a05f9b155c1ba74bfa6a..9342765509beb740aec2d6079c9a7a98bc66ba77 100644 index 4638003724e826b27ab26fc1aec4825e7ab5fa3e..844e24c162a67bbc488d4dd83e2c076befd871cb 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -238,9 +238,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -238,9 +238,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -2313,7 +2313,7 @@ index d5e5ea2a20739b81742b1a5323d19f2d01baec25..f106d5bbbe9227b2c7cc4cc24ade57d8
profilerFiller.pop(); profilerFiller.pop();
profilerFiller.push("goatActivityUpdate"); profilerFiller.push("goatActivityUpdate");
diff --git a/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java diff --git a/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index 31ed5d7cfbda1a1f98ebfc89f5cbc65332cabdae..ba56d68737cedabcddafafb18022f7c106631ca4 100644 index e7e4558d0f018a0c975d12d77287cda4df5a500a..d3140f2c1fcc49431422e2eb9d1f8af066707141 100644
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java --- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -127,11 +127,21 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory @@ -127,11 +127,21 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
@@ -5100,7 +5100,7 @@ index 93ed977260f369677028bbd8396862f344dfeaa3..e5d6d8bd30876832e6219969849e8260
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
this.setTradingPlayer(player); this.setTradingPlayer(player);
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index cc29c094f81f16e6b4d74877e31fabd4a0e62435..65d981d26c729d63aa9bad1bbe90cef35207e832 100644 index fd0322685f17f188d19ccc5fc8d2995bfab17f6e..b12bd1f756b91a1168eb8ac4959152dcca01c5b5 100644
--- a/net/minecraft/world/entity/player/Player.java --- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java
@@ -239,6 +239,19 @@ public abstract class Player extends LivingEntity { @@ -239,6 +239,19 @@ public abstract class Player extends LivingEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 1b45fa392d3c3b58e232e6364d344354cf82f2c3..388bd20aeafbcedb8a7cf579bb2b1a038b93ac8f 100644 index 177333f6c375eac51e0468e337806987fc7ada0f..24dda86c8f03b5876bc0afc827829da78ec85850 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3713,7 +3713,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -3713,7 +3713,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -29,7 +29,7 @@ index 1b45fa392d3c3b58e232e6364d344354cf82f2c3..388bd20aeafbcedb8a7cf579bb2b1a03
this.gameEvent(GameEvent.ELYTRA_GLIDE); this.gameEvent(GameEvent.ELYTRA_GLIDE);
diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java
index 83cfe63b0245f79d0873477ab3aae75f690ecb68..f32370217735b5e9556a0df7652682d89f23c595 100644 index f86b0579e707ecfa5c2074ea22bbe383b5e11841..43a6d9bd3a2e301e3957e9933663c3aff43722d6 100644
--- a/net/minecraft/world/item/FireworkRocketItem.java --- a/net/minecraft/world/item/FireworkRocketItem.java
+++ b/net/minecraft/world/item/FireworkRocketItem.java +++ b/net/minecraft/world/item/FireworkRocketItem.java
@@ -72,6 +72,17 @@ public class FireworkRocketItem extends Item implements ProjectileItem { @@ -72,6 +72,17 @@ public class FireworkRocketItem extends Item implements ProjectileItem {
@@ -51,10 +51,10 @@ index 83cfe63b0245f79d0873477ab3aae75f690ecb68..f32370217735b5e9556a0df7652682d8
itemInHand.shrink(1); // Moved up from below itemInHand.shrink(1); // Moved up from below
} else { } else {
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index 7041e93158ffab707f14ff6e48c3977bebf275a9..b95acf4c688a9113a34e9be2639536245c66c83e 100644 index 373822831e3025e0365f2bf1a41013450f8b0e00..d3892cc9ef3ab66a45fe3ab72e8a5ef8b904b7c0 100644
--- a/net/minecraft/world/item/ItemStack.java --- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java +++ b/net/minecraft/world/item/ItemStack.java
@@ -700,6 +700,14 @@ public final class ItemStack implements DataComponentHolder { @@ -696,6 +696,14 @@ public final class ItemStack implements DataComponentHolder {
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent(serverPlayer, this); // Paper - Add EntityDamageItemEvent org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent(serverPlayer, this); // Paper - Add EntityDamageItemEvent
} }
// CraftBukkit end // CraftBukkit end
@@ -70,10 +70,10 @@ index 7041e93158ffab707f14ff6e48c3977bebf275a9..b95acf4c688a9113a34e9be263953624
onBreak.accept(item); onBreak.accept(item);
} }
diff --git a/net/minecraft/world/item/TridentItem.java b/net/minecraft/world/item/TridentItem.java diff --git a/net/minecraft/world/item/TridentItem.java b/net/minecraft/world/item/TridentItem.java
index 122e24ed6fb319c951841ac8ef328c5eb70514d4..34d15412b8f68ed1bae45b81ecf759c9c4d7e20c 100644 index 37720f5f8a680201db5ba78ca43ee59f72cb2e9a..7fe10d298a1204d87c0484f97f3767de6779c687 100644
--- a/net/minecraft/world/item/TridentItem.java --- a/net/minecraft/world/item/TridentItem.java
+++ b/net/minecraft/world/item/TridentItem.java +++ b/net/minecraft/world/item/TridentItem.java
@@ -127,6 +127,18 @@ public class TridentItem extends Item implements ProjectileItem { @@ -126,6 +126,18 @@ public class TridentItem extends Item implements ProjectileItem {
f1 *= tridentSpinAttackStrength / squareRoot; f1 *= tridentSpinAttackStrength / squareRoot;
f2 *= tridentSpinAttackStrength / squareRoot; f2 *= tridentSpinAttackStrength / squareRoot;
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(player, stack, f, f1, f2); // CraftBukkit org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(player, stack, f, f1, f2); // CraftBukkit

View File

@@ -222,7 +222,7 @@
packet.dispatch( packet.dispatch(
new ServerboundInteractPacket.Handler() { new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
@@ -3548,7 +_,7 @@ @@ -3490,7 +_,7 @@
@Override @Override
public void handleChangeGameMode(ServerboundChangeGameModePacket packet) { public void handleChangeGameMode(ServerboundChangeGameModePacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());

View File

@@ -107,7 +107,7 @@
// Paper start - EntityUnleashEvent // Paper start - EntityUnleashEvent
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent( if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
leashable2, player, hand, !player.hasInfiniteMaterials(), true leashable2, player, hand, !player.hasInfiniteMaterials(), true
@@ -3389,15 +_,18 @@ @@ -3388,15 +_,18 @@
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }
@@ -127,7 +127,7 @@
} }
} }
} }
@@ -3602,7 +_,7 @@ @@ -3601,7 +_,7 @@
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -136,7 +136,7 @@
} }
public int getAirSupply() { public int getAirSupply() {
@@ -4156,7 +_,7 @@ @@ -4155,7 +_,7 @@
// CraftBukkit end // CraftBukkit end
public boolean canUsePortal(boolean allowPassengers) { public boolean canUsePortal(boolean allowPassengers) {
@@ -145,7 +145,7 @@
} }
public boolean canTeleport(Level fromLevel, Level toLevel) { public boolean canTeleport(Level fromLevel, Level toLevel) {
@@ -4681,6 +_,12 @@ @@ -4680,6 +_,12 @@
return Mth.lerp(partialTick, this.yRotO, this.yRot); return Mth.lerp(partialTick, this.yRotO, this.yRot);
} }
@@ -158,7 +158,7 @@
// Paper start - optimise collisions // Paper start - optimise collisions
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) { public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
if (this.touchingUnloadedChunk()) { if (this.touchingUnloadedChunk()) {
@@ -5107,7 +_,7 @@ @@ -5106,7 +_,7 @@
} }
public float maxUpStep() { public float maxUpStep() {

View File

@@ -156,7 +156,7 @@
this.hurt(this.damageSources().flyIntoWall(), f); this.hurt(this.damageSources().flyIntoWall(), f);
} }
} }
@@ -4507,6 +_,12 @@ @@ -4501,6 +_,12 @@
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND) ? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType()); : slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
} }

View File

@@ -70,7 +70,7 @@
} }
float f2 = f + f1; float f2 = f + f1;
@@ -1823,7 +_,23 @@ @@ -1822,7 +_,23 @@
@Override @Override
protected int getBaseExperienceReward(ServerLevel level) { protected int getBaseExperienceReward(ServerLevel level) {
@@ -95,7 +95,7 @@
} }
@Override @Override
@@ -1861,6 +_,13 @@ @@ -1860,6 +_,13 @@
public boolean addItem(ItemStack stack) { public boolean addItem(ItemStack stack) {
return this.inventory.add(stack); return this.inventory.add(stack);
} }

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/item/BlockItem.java --- a/net/minecraft/world/item/BlockItem.java
+++ b/net/minecraft/world/item/BlockItem.java +++ b/net/minecraft/world/item/BlockItem.java
@@ -145,7 +_,16 @@ @@ -144,7 +_,16 @@
} }
protected boolean updateCustomBlockEntityTag(BlockPos pos, Level level, @Nullable Player player, ItemStack stack, BlockState state) { protected boolean updateCustomBlockEntityTag(BlockPos pos, Level level, @Nullable Player player, ItemStack stack, BlockState state) {
@@ -18,7 +18,7 @@
} }
@Nullable @Nullable
@@ -212,6 +_,7 @@ @@ -211,6 +_,7 @@
} }
if (!type.onlyOpCanSetNbt() || player != null && (player.canUseGameMasterBlocks() || (player.getAbilities().instabuild && player.getBukkitEntity().hasPermission("minecraft.nbt.place")))) { // Spigot - add permission if (!type.onlyOpCanSetNbt() || player != null && (player.canUseGameMasterBlocks() || (player.getAbilities().instabuild && player.getBukkitEntity().hasPermission("minecraft.nbt.place")))) { // Spigot - add permission
@@ -26,7 +26,7 @@
return customData.loadInto(blockEntity, level.registryAccess()); return customData.loadInto(blockEntity, level.registryAccess());
} }
@@ -253,6 +_,7 @@ @@ -252,6 +_,7 @@
public void onDestroyed(ItemEntity itemEntity) { public void onDestroyed(ItemEntity itemEntity) {
ItemContainerContents itemContainerContents = itemEntity.getItem().set(DataComponents.CONTAINER, ItemContainerContents.EMPTY); ItemContainerContents itemContainerContents = itemEntity.getItem().set(DataComponents.CONTAINER, ItemContainerContents.EMPTY);
if (itemContainerContents != null) { if (itemContainerContents != null) {

View File

@@ -43,7 +43,7 @@
public int getDamageValue() { public int getDamageValue() {
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage()); return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
} }
@@ -1209,6 +_,12 @@ @@ -1205,6 +_,12 @@
public boolean isEnchanted() { public boolean isEnchanted() {
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty(); return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
} }

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/item/ProjectileWeaponItem.java --- a/net/minecraft/world/item/ProjectileWeaponItem.java
+++ b/net/minecraft/world/item/ProjectileWeaponItem.java +++ b/net/minecraft/world/item/ProjectileWeaponItem.java
@@ -109,6 +_,8 @@ @@ -106,6 +_,8 @@
abstractArrow.setCritArrow(true); abstractArrow.setCritArrow(true);
} }

View File

@@ -9,7 +9,7 @@
); );
// Paper start - PlayerLaunchProjectileEvent // Paper start - PlayerLaunchProjectileEvent
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) player.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) tridentDelayed.projectile().getBukkitEntity()); com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) player.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) tridentDelayed.projectile().getBukkitEntity());
@@ -94,6 +_,7 @@ @@ -93,6 +_,7 @@
return false; return false;
} }
ThrownTrident thrownTrident = tridentDelayed.projectile(); // Paper - PlayerLaunchProjectileEvent ThrownTrident thrownTrident = tridentDelayed.projectile(); // Paper - PlayerLaunchProjectileEvent