From 73eb3226ee8a74d2e4061073bcfb58eb31752b7d Mon Sep 17 00:00:00 2001 From: ayunami2000 Date: Sat, 4 Jun 2022 09:59:35 -0400 Subject: [PATCH] allow spawn eggs to do SOMETHING (#219) * allow spawn eggs to do SOMETHING they now spawn a mob despite the mob having zero nbt from the spawn egg. "it's better than nothing" as one might say. * mushroom cow moment * formatting/style + remove extra change * :skull: :skull: * :skull: :skull: :skull: :skull: :skull: :skull: :skull: :skull: Co-authored-by: Paldiu Co-authored-by: Ryan --- .../blocking/InteractBlocker.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java index 2e53f9de..17f6c5fe 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java @@ -5,6 +5,8 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.util.Groups; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -79,9 +81,33 @@ public class InteractBlocker extends FreedomService if (Groups.SPAWN_EGGS.contains(event.getMaterial())) { - player.getInventory().clear(player.getInventory().getHeldItemSlot()); - player.sendMessage(ChatColor.GRAY + "Spawn eggs are currently disabled."); event.setCancelled(true); + Block clickedBlock = event.getClickedBlock(); + if (clickedBlock == null) + { + return; + } + EntityType eggType = null; + try + { + Material mat = event.getMaterial(); + if (mat == Material.MOOSHROOM_SPAWN_EGG) + { + eggType = EntityType.MUSHROOM_COW; + } + else + { + eggType = EntityType.valueOf(mat.name().substring(0, mat.name().length() - 10)); + } + } + catch (IllegalArgumentException ignored) + { + // + } + if (eggType != null) + { + clickedBlock.getWorld().spawnEntity(clickedBlock.getLocation().add(event.getBlockFace().getDirection()).add(0.5, 0.5, 0.5), eggType); + } return; }