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;
|
package de.diddiz.LogBlock.listeners;
|
||||||
|
|
||||||
import de.diddiz.LogBlock.*;
|
import de.diddiz.LogBlock.*;
|
||||||
|
import de.diddiz.LogBlock.events.ToolUseEvent;
|
||||||
import de.diddiz.util.BukkitUtils;
|
import de.diddiz.util.BukkitUtils;
|
||||||
import de.diddiz.util.CuboidRegion;
|
import de.diddiz.util.CuboidRegion;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -65,6 +66,9 @@ public class ToolListener implements Listener {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
params.validate();
|
params.validate();
|
||||||
|
if (this.callToolUseEvent(new ToolUseEvent(player, tool, behavior, params))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (toolData.mode == ToolMode.ROLLBACK) {
|
if (toolData.mode == ToolMode.ROLLBACK) {
|
||||||
handler.new CommandRollback(player, params, true);
|
handler.new CommandRollback(player, params, true);
|
||||||
} else if (toolData.mode == ToolMode.REDO) {
|
} 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
|
@EventHandler
|
||||||
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
|
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
Reference in New Issue
Block a user