diff --git a/src/main/java/uz/alex2276564/iafurniturebreakrestricter/events/PlayerIAFurnitureBreakEvent.java b/src/main/java/uz/alex2276564/iafurniturebreakrestricter/events/PlayerIAFurnitureBreakEvent.java new file mode 100644 index 0000000..5b64295 --- /dev/null +++ b/src/main/java/uz/alex2276564/iafurniturebreakrestricter/events/PlayerIAFurnitureBreakEvent.java @@ -0,0 +1,37 @@ +package uz.alex2276564.iafurniturebreakrestricter.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; +import org.jetbrains.annotations.NotNull; + +public class PlayerIAFurnitureBreakEvent extends PlayerEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + + private boolean cancel = false; + + public PlayerIAFurnitureBreakEvent(@NotNull Player player) { + super(player); + } + + @Override + public @NotNull HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + @Override + public boolean isCancelled() { + return cancel; + } + + @Override + public void setCancelled(boolean cancel) { + this.cancel = cancel; + } +} \ No newline at end of file diff --git a/src/main/java/uz/alex2276564/iafurniturebreakrestricter/listeners/IAFurnitureBreakListener.java b/src/main/java/uz/alex2276564/iafurniturebreakrestricter/listeners/IAFurnitureBreakListener.java index 934abb9..da30c6a 100644 --- a/src/main/java/uz/alex2276564/iafurniturebreakrestricter/listeners/IAFurnitureBreakListener.java +++ b/src/main/java/uz/alex2276564/iafurniturebreakrestricter/listeners/IAFurnitureBreakListener.java @@ -1,16 +1,31 @@ package uz.alex2276564.iafurniturebreakrestricter.listeners; import dev.lone.itemsadder.api.Events.FurnitureBreakEvent; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import uz.alex2276564.iafurniturebreakrestricter.events.PlayerIAFurnitureBreakEvent; public class IAFurnitureBreakListener implements Listener { @EventHandler - private void onIA(FurnitureBreakEvent event) { + public void onIA(FurnitureBreakEvent event) { + Player player = event.getPlayer(); - if (!event.getPlayer().hasPermission("ia.furniture.break")) { + final PlayerIAFurnitureBreakEvent e = new PlayerIAFurnitureBreakEvent(player); + Bukkit.getPluginManager().callEvent(e); + if(e.isCancelled()) { + event.setCancelled(true); + } + } + + @EventHandler + public void on(PlayerIAFurnitureBreakEvent event) { + Player player = event.getPlayer(); + if (!player.hasPermission("ia.furniture.break")) { event.setCancelled(true); } }