mirror of
https://github.com/SparklyPower/SparklyPaper.git
synced 2026-01-04 15:41:34 +00:00
Update to Paper e5a8ee849f6ed92f0593bf082bc84e158ee7c5f2
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: MrPowerGamerBR <git@mrpowergamerbr.com>
|
||||
Date: Sun, 23 Feb 2025 18:53:43 -0300
|
||||
Subject: [PATCH] Add EntityGetProjectileForWeaponEvent
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/Monster.java b/net/minecraft/world/entity/monster/Monster.java
|
||||
index d0d3c825cf8088df4794cf5bfde12a69f4d71754..4cad07ae00eb34b51b8ef3f25f0abf8ed0d267c5 100644
|
||||
--- a/net/minecraft/world/entity/monster/Monster.java
|
||||
+++ b/net/minecraft/world/entity/monster/Monster.java
|
||||
@@ -137,6 +137,12 @@ public abstract class Monster extends PathfinderMob implements Enemy {
|
||||
@Override
|
||||
public ItemStack getProjectile(ItemStack shootable) {
|
||||
if (shootable.getItem() instanceof ProjectileWeaponItem) {
|
||||
+ // SparklyPaper start - Add EntityGetProjectileForWeaponEvent
|
||||
+ net.sparklypower.sparklypaper.event.entity.EntityGetProjectileForWeaponEvent event = new net.sparklypower.sparklypaper.event.entity.EntityGetProjectileForWeaponEvent(this.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(shootable));
|
||||
+ event.callEvent();
|
||||
+ if (event.getArrow() != null)
|
||||
+ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getArrow());
|
||||
+ // SparklyPaper end
|
||||
Predicate<ItemStack> supportedHeldProjectiles = ((ProjectileWeaponItem)shootable.getItem()).getSupportedHeldProjectiles();
|
||||
ItemStack heldProjectile = ProjectileWeaponItem.getHeldProjectile(this, supportedHeldProjectiles);
|
||||
return heldProjectile.isEmpty() ? new ItemStack(Items.ARROW) : heldProjectile;
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index a0813aa9ebf5b32375b1bc9f294d8fc34cc867fe..3e89356b177b5033fb58de314b0cb0f591ec4e5b 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/net/minecraft/world/entity/player/Player.java
|
||||
@@ -2239,6 +2239,12 @@ public abstract class Player extends LivingEntity {
|
||||
if (!(shootable.getItem() instanceof ProjectileWeaponItem)) {
|
||||
return ItemStack.EMPTY;
|
||||
} else {
|
||||
+ // SparklyPaper start - Add EntityGetProjectileForWeaponEvent
|
||||
+ net.sparklypower.sparklypaper.event.entity.EntityGetProjectileForWeaponEvent event = new net.sparklypower.sparklypaper.event.entity.EntityGetProjectileForWeaponEvent(this.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(shootable));
|
||||
+ event.callEvent();
|
||||
+ if (event.getArrow() != null)
|
||||
+ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getArrow());
|
||||
+ // SparklyPaper end
|
||||
final org.apache.commons.lang3.mutable.MutableBoolean anyEventCancelled = new org.apache.commons.lang3.mutable.MutableBoolean(); // Paper - PlayerReadyArrowEvent
|
||||
Predicate<ItemStack> supportedHeldProjectiles = ((ProjectileWeaponItem)shootable.getItem()).getSupportedHeldProjectiles().and(item -> this.tryReadyArrow(shootable, item, anyEventCancelled)); // Paper - PlayerReadyArrowEvent
|
||||
ItemStack heldProjectile = ProjectileWeaponItem.getHeldProjectile(this, supportedHeldProjectiles);
|
||||
Reference in New Issue
Block a user