mirror of
https://github.com/songoda/EpicHoppers.git
synced 2024-10-03 01:58:17 +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.gui.GuiManager;
|
||||||
import com.songoda.core.hooks.EconomyManager;
|
import com.songoda.core.hooks.EconomyManager;
|
||||||
import com.songoda.epichoppers.EpicHoppers;
|
import com.songoda.epichoppers.EpicHoppers;
|
||||||
|
import com.songoda.epichoppers.api.events.HopperAccessEvent;
|
||||||
import com.songoda.epichoppers.gui.GUIOverview;
|
import com.songoda.epichoppers.gui.GUIOverview;
|
||||||
import com.songoda.epichoppers.hopper.levels.Level;
|
import com.songoda.epichoppers.hopper.levels.Level;
|
||||||
import com.songoda.epichoppers.player.PlayerData;
|
import com.songoda.epichoppers.player.PlayerData;
|
||||||
@ -44,6 +45,13 @@ public class Hopper {
|
|||||||
&& Bukkit.getPlayer(lastPlayerOpened) != null) {
|
&& Bukkit.getPlayer(lastPlayerOpened) != null) {
|
||||||
Bukkit.getPlayer(lastPlayerOpened).closeInventory();
|
Bukkit.getPlayer(lastPlayerOpened).closeInventory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HopperAccessEvent accessEvent = new HopperAccessEvent(player, this);
|
||||||
|
Bukkit.getPluginManager().callEvent(accessEvent);
|
||||||
|
if (accessEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (placedBy == null) placedBy = player.getUniqueId();
|
if (placedBy == null) placedBy = player.getUniqueId();
|
||||||
|
|
||||||
EpicHoppers instance = EpicHoppers.getInstance();
|
EpicHoppers instance = EpicHoppers.getInstance();
|
||||||
|
Loading…
Reference in New Issue
Block a user