mirror of
https://github.com/SparklyPower/SparklyPaper.git
synced 2025-12-28 11:29:07 +00:00
Yes, the update is COMPLETELY borked, there are broken patches, it does not compile, there are even diff conflict things inside of patches This is still very unfinished and you should not use it
41 lines
3.2 KiB
Diff
41 lines
3.2 KiB
Diff
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 5ef9566b16a4d0300ee45a993c46e734db156416..023cc77b31c5e2ad651a51ccb6c7f6b13811beb3 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 2046c4d3ad5ea3254ad6bc83e6437e5c237c92b6..7c3219bf17d7724e2d91748034e4e63a96a1556f 100644
|
|
--- a/net/minecraft/world/entity/player/Player.java
|
|
+++ b/net/minecraft/world/entity/player/Player.java
|
|
@@ -2127,6 +2127,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);
|