mirror of
https://github.com/songoda/EpicHoppers.git
synced 2024-07-01 09:05:09 +02:00
Added an event fired on hopper access.
This commit is contained in:
parent
1015090f95
commit
e74edb8027
|
@ -0,0 +1,40 @@
|
|||
package com.songoda.epichoppers.api.events;
|
||||
|
||||
import com.songoda.epichoppers.hopper.Hopper;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
/**
|
||||
* Called when a hopper is accessed by a player.
|
||||
*/
|
||||
public class HopperAccessEvent extends HopperEvent implements Cancellable {
|
||||
|
||||
private static final HandlerList HANDLERS = new HandlerList();
|
||||
|
||||
private boolean canceled = false;
|
||||
|
||||
public HopperAccessEvent(Player player, Hopper hopper) {
|
||||
super(player, hopper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return HANDLERS;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return HANDLERS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return canceled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean canceled) {
|
||||
this.canceled = canceled;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.songoda.epichoppers.api.events;
|
||||
|
||||
import com.songoda.epichoppers.hopper.Hopper;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.player.PlayerEvent;
|
||||
|
||||
/**
|
||||
* Represents an abstract {@link Event} given a {@link Player} and {@link Hopper} instance
|
||||
*/
|
||||
public abstract class HopperEvent extends PlayerEvent {
|
||||
|
||||
protected final Hopper hopper;
|
||||
|
||||
public HopperEvent(Player who, Hopper hopper) {
|
||||
super(who);
|
||||
this.hopper = hopper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the {@link Hopper} involved in this event
|
||||
*
|
||||
* @return the broken spawner
|
||||
*/
|
||||
public Hopper getHopper() {
|
||||
return hopper;
|
||||
}
|
||||
|
||||
}
|
|
@ -4,6 +4,7 @@ import com.songoda.core.compatibility.ServerVersion;
|
|||
import com.songoda.core.gui.GuiManager;
|
||||
import com.songoda.core.hooks.EconomyManager;
|
||||
import com.songoda.epichoppers.EpicHoppers;
|
||||
import com.songoda.epichoppers.api.events.HopperAccessEvent;
|
||||
import com.songoda.epichoppers.gui.GUIOverview;
|
||||
import com.songoda.epichoppers.hopper.levels.Level;
|
||||
import com.songoda.epichoppers.player.PlayerData;
|
||||
|
@ -44,6 +45,13 @@ public class Hopper {
|
|||
&& Bukkit.getPlayer(lastPlayerOpened) != null) {
|
||||
Bukkit.getPlayer(lastPlayerOpened).closeInventory();
|
||||
}
|
||||
|
||||
HopperAccessEvent accessEvent = new HopperAccessEvent(player, this);
|
||||
Bukkit.getPluginManager().callEvent(accessEvent);
|
||||
if (accessEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (placedBy == null) placedBy = player.getUniqueId();
|
||||
|
||||
EpicHoppers instance = EpicHoppers.getInstance();
|
||||
|
|
Loading…
Reference in New Issue
Block a user