From 82839ce34bf948798225aa7e3c290742985a2cba Mon Sep 17 00:00:00 2001 From: Warrior <50800980+Warriorrrr@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:09:38 +0200 Subject: [PATCH] Fix wind charge/add new egg throw logging --- .../listener/player/PlayerInteractListener.java | 5 ++++- .../listener/player/ProjectileLaunchListener.java | 2 +- src/main/java/net/coreprotect/utility/EntityUtils.java | 10 ++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java index 9f43ff5ea..f2310ef3a 100755 --- a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java +++ b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java @@ -1,5 +1,6 @@ package net.coreprotect.listener.player; +import java.util.ArrayList; import java.util.Arrays; import java.util.EnumSet; import java.util.List; @@ -595,9 +596,11 @@ else if (type == Material.DRAGON_EGG) { } if (event.useItemInHand() != Event.Result.DENY) { - List entityBlockTypes = Arrays.asList(Material.ARMOR_STAND, Material.END_CRYSTAL, Material.BOW, Material.CROSSBOW, Material.TRIDENT, Material.EXPERIENCE_BOTTLE, Material.SPLASH_POTION, Material.LINGERING_POTION, Material.ENDER_PEARL, Material.FIREWORK_ROCKET, Material.EGG, Material.SNOWBALL); + List entityBlockTypes = new ArrayList<>(Arrays.asList(Material.ARMOR_STAND, Material.END_CRYSTAL, Material.BOW, Material.CROSSBOW, Material.TRIDENT, Material.EXPERIENCE_BOTTLE, Material.SPLASH_POTION, Material.LINGERING_POTION, Material.ENDER_PEARL, Material.FIREWORK_ROCKET, Material.EGG, Material.SNOWBALL)); try { entityBlockTypes.add(Material.valueOf("WIND_CHARGE")); + entityBlockTypes.add(Material.valueOf("BLUE_EGG")); + entityBlockTypes.add(Material.valueOf("BROWN_EGG")); } catch (Exception e) { // not running MC 1.21+ diff --git a/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java b/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java index a81ea0881..101e69771 100644 --- a/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java +++ b/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java @@ -68,7 +68,7 @@ protected void onProjectileLaunch(ProjectileLaunchEvent event) { String name = pair.getKey(); Object[] data = pair.getValue(); ItemStack itemStack = (ItemStack) data[3]; - Material entityMaterial = EntityUtils.getEntityMaterial(event.getEntityType()); + Material entityMaterial = EntityUtils.getEntityMaterial(event.getEntity()); boolean isBow = BOWS.contains(itemStack.getType()); if ((data[1].equals(key) || data[2].equals(key)) && (entityMaterial == itemStack.getType() || (itemStack.getType() == Material.LINGERING_POTION && entityMaterial == Material.SPLASH_POTION) || isBow)) { boolean thrownItem = (itemStack.getType() != Material.FIREWORK_ROCKET && !isBow); diff --git a/src/main/java/net/coreprotect/utility/EntityUtils.java b/src/main/java/net/coreprotect/utility/EntityUtils.java index 7e1ab3767..f05a8b4b2 100644 --- a/src/main/java/net/coreprotect/utility/EntityUtils.java +++ b/src/main/java/net/coreprotect/utility/EntityUtils.java @@ -3,11 +3,13 @@ import java.util.Locale; import org.bukkit.Material; +import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import net.coreprotect.bukkit.BukkitAdapter; import net.coreprotect.config.ConfigHandler; import net.coreprotect.consumer.Queue; +import org.bukkit.entity.ThrowableProjectile; public class EntityUtils extends Queue { @@ -50,6 +52,14 @@ else if (internal) { return id; } + public static Material getEntityMaterial(final Entity entity) { + if (entity instanceof ThrowableProjectile) { + return ((ThrowableProjectile) entity).getItem().getType(); + } + + return getEntityMaterial(entity.getType()); + } + public static Material getEntityMaterial(EntityType type) { switch (type.name()) { case "ARMOR_STAND":