Skip to content

Commit

Permalink
Call ToolUseEvent when a tool is about to be used
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMolkaPL committed Jan 21, 2020
1 parent cdf6c1d commit 5b0e2d9
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
59 changes: 59 additions & 0 deletions src/main/java/de/diddiz/LogBlock/events/ToolUseEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package de.diddiz.LogBlock.events;

import de.diddiz.LogBlock.QueryParams;
import de.diddiz.LogBlock.Tool;
import de.diddiz.LogBlock.ToolBehavior;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;

/**
* Fired whether a tool is about to be used by a player.
*/
public class ToolUseEvent extends PlayerEvent implements Cancellable {

private static final HandlerList handlers = new HandlerList();
private boolean cancel;
private final Tool tool;
private final ToolBehavior behavior;
private final QueryParams params;

public ToolUseEvent(Player who, Tool tool, ToolBehavior behavior, QueryParams params) {
super(who);
this.tool = tool;
this.behavior = behavior;
this.params = params;
}

@Override
public boolean isCancelled() {
return cancel;
}

@Override
public void setCancelled(boolean cancel) {
this.cancel = cancel;
}

public Tool getTool() {
return tool;
}

public ToolBehavior getBehavior() {
return behavior;
}

public QueryParams getParams() {
return params;
}

@Override
public HandlerList getHandlers() {
return handlers;
}

public static HandlerList getHandlerList() {
return handlers;
}
}
9 changes: 9 additions & 0 deletions src/main/java/de/diddiz/LogBlock/listeners/ToolListener.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.diddiz.LogBlock.listeners;

import de.diddiz.LogBlock.*;
import de.diddiz.LogBlock.events.ToolUseEvent;
import de.diddiz.util.BukkitUtils;
import de.diddiz.util.CuboidRegion;
import org.bukkit.ChatColor;
Expand Down Expand Up @@ -65,6 +66,9 @@ public void onPlayerInteract(PlayerInteractEvent event) {
}
try {
params.validate();
if (this.callToolUseEvent(new ToolUseEvent(player, tool, behavior, params))) {
return;
}
if (toolData.mode == ToolMode.ROLLBACK) {
handler.new CommandRollback(player, params, true);
} else if (toolData.mode == ToolMode.REDO) {
Expand All @@ -85,6 +89,11 @@ public void onPlayerInteract(PlayerInteractEvent event) {
}
}

private boolean callToolUseEvent(ToolUseEvent event) {
this.logblock.getServer().getPluginManager().callEvent(event);
return event.isCancelled();
}

@EventHandler
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
final Player player = event.getPlayer();
Expand Down

0 comments on commit 5b0e2d9

Please sign in to comment.