Skip to content

Commit 26f8aec

Browse files
committed
fix FireworkDeathEvent
1 parent d1a4584 commit 26f8aec

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/main/java/de/fanta/fancyfirework/events/FireworkDeathEvent.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.fanta.fancyfirework.events;
22

3+
import org.bukkit.damage.DamageSource;
34
import org.bukkit.entity.ArmorStand;
45
import org.bukkit.event.Cancellable;
56
import org.bukkit.event.entity.EntityDeathEvent;
@@ -11,8 +12,8 @@ public class FireworkDeathEvent extends EntityDeathEvent implements Cancellable
1112

1213
private boolean cancelled;
1314

14-
public FireworkDeathEvent(ArmorStand stand, List<ItemStack> drops) {
15-
super(stand, drops);
15+
public FireworkDeathEvent(ArmorStand stand, List<ItemStack> drops, DamageSource damageSource) {
16+
super(stand, damageSource, drops);
1617
}
1718

1819
@Override

src/main/java/de/fanta/fancyfirework/listners/FireworkListener.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import org.bukkit.block.Block;
1919
import org.bukkit.block.BlockFace;
2020
import org.bukkit.block.DoubleChest;
21+
import org.bukkit.damage.DamageSource;
22+
import org.bukkit.damage.DamageType;
2123
import org.bukkit.enchantments.Enchantment;
2224
import org.bukkit.entity.ArmorStand;
2325
import org.bukkit.entity.Entity;
@@ -253,7 +255,7 @@ public void onInteractItem(PlayerInteractEvent e) {
253255

254256
private void damageFNS(Player player, EquipmentSlot slot) {
255257
ItemStack stack = player.getEquipment().getItem(slot);
256-
if (player.getGameMode() != GameMode.CREATIVE) {
258+
if (player.getGameMode() != GameMode.CREATIVE || stack.getItemMeta().isUnbreakable()) {
257259
ItemMeta meta = stack.getItemMeta();
258260
int maxDurability = stack.getType().getMaxDurability();
259261
if (maxDurability > 0) {
@@ -307,7 +309,8 @@ public void onDamage(EntityDamageByEntityEvent e) {
307309
List<ItemStack> stackList = new ArrayList<>();
308310
stackList.add(stack);
309311
stand.setLastDamageCause(e);
310-
FireworkDeathEvent fireworkDeathEvent = new FireworkDeathEvent(stand, stackList);
312+
DamageSource damageSource = DamageSource.builder(DamageType.PLAYER_ATTACK).withCausingEntity(player).withDirectEntity(player).withDamageLocation(stand.getLocation()).build();
313+
FireworkDeathEvent fireworkDeathEvent = new FireworkDeathEvent(stand, stackList, damageSource);
311314
player.getServer().getPluginManager().callEvent(fireworkDeathEvent);
312315
if (fireworkDeathEvent.isCancelled()) {
313316
e.setCancelled(true);

0 commit comments

Comments
 (0)