diff --git a/src/main/java/ru/tehkode/modifyworld/ModifyworldListener.java b/src/main/java/ru/tehkode/modifyworld/ModifyworldListener.java index 73e471b..5295a79 100644 --- a/src/main/java/ru/tehkode/modifyworld/ModifyworldListener.java +++ b/src/main/java/ru/tehkode/modifyworld/ModifyworldListener.java @@ -159,6 +159,8 @@ public abstract class ModifyworldListener implements Listener { protected String getObjectPermission(Object obj) { if (obj instanceof Entity) { return (getEntityName((Entity) obj)); + } else if (obj instanceof EntityType) { + return formatEnumString(((EntityType)obj).name()); } else if (obj instanceof BlockState) { return (getBlockPermission(((BlockState)obj).getBlock())); } else if (obj instanceof ItemStack) { diff --git a/src/main/java/ru/tehkode/modifyworld/handlers/PlayerListener.java b/src/main/java/ru/tehkode/modifyworld/handlers/PlayerListener.java index 327abc8..7ea2439 100644 --- a/src/main/java/ru/tehkode/modifyworld/handlers/PlayerListener.java +++ b/src/main/java/ru/tehkode/modifyworld/handlers/PlayerListener.java @@ -37,6 +37,7 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.material.SpawnEgg; import org.bukkit.plugin.Plugin; import org.bukkit.util.Vector; import ru.tehkode.modifyworld.ModifyworldListener; @@ -265,9 +266,13 @@ public class PlayerListener extends ModifyworldListener { event.getPlayer().updateInventory(); } } - if (action == Action.RIGHT_CLICK_AIR) { - return; + return; // no need to check further + case MONSTER_EGG: + case MONSTER_EGGS: + if (permissionDenied(player, "modifyworld.spawn", ((SpawnEgg)player.getItemInHand().getData()).getSpawnedType())) { + event.setUseItemInHand(Result.DENY); } + return; // no need to check further } }