forked from LogBlock/LogBlock
Call ToolUseEvent when a tool is about to be used
This commit is contained in:
59
src/main/java/de/diddiz/LogBlock/events/ToolUseEvent.java
Normal file
59
src/main/java/de/diddiz/LogBlock/events/ToolUseEvent.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
@ -65,6 +66,9 @@ public class ToolListener implements Listener {
|
||||
}
|
||||
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) {
|
||||
@ -85,6 +89,11 @@ public class ToolListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
|
Reference in New Issue
Block a user