Started api and events

This commit is contained in:
Sn0wStorm
2019-10-11 20:44:43 +02:00
parent 49fb0e3d82
commit 519c4821d9
32 changed files with 1400 additions and 264 deletions
@@ -0,0 +1,54 @@
package com.dre.brewery.api.events.barrel;
import com.dre.brewery.Barrel;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
/*
* A Player opens a Barrel by rightclicking it
* The PlayerInteractEvent on the Barrel may be cancelled. In that case this never gets called
* Can be cancelled to silently deny opening the Barrel
*/
public class BarrelAccessEvent extends BarrelEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private final Player player;
private final Block clickedBlock;
private boolean isCancelled;
public BarrelAccessEvent(Barrel barrel, Player player, Block clickedBlock) {
super(barrel);
this.player = player;
this.clickedBlock = clickedBlock;
}
// Gets the Block that was actually clicked.
// For access Permissions getSpigot() should be used
public Block getClickedBlock() {
return clickedBlock;
}
@Override
public boolean isCancelled() {
return isCancelled;
}
@Override
public void setCancelled(boolean cancelled) {
isCancelled = cancelled;
}
public Player getPlayer() {
return player;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}
@@ -0,0 +1,44 @@
package com.dre.brewery.api.events.barrel;
import com.dre.brewery.Barrel;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
/*
* Called when a Barrel is created by a Player by placing a Sign
* Cancelling this will silently fail the Barrel creation
*/
public class BarrelCreateEvent extends BarrelEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private final Player player;
private boolean cancelled;
public BarrelCreateEvent(Barrel barrel, Player player) {
super(barrel);
this.player = player;
}
public Player getPlayer() {
return player;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}
@@ -0,0 +1,71 @@
package com.dre.brewery.api.events.barrel;
import com.dre.brewery.Barrel;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
/*
* A Barrel is being destroyed by something, may not be by a Player
* A BarrelRemoveEvent will be called after this, if this is not cancelled
* Use the BarrelRemoveEvent to monitor any and all barrels being removed in a non cancellable way
*/
public class BarrelDestroyEvent extends BarrelEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private final Block broken;
private final Reason reason;
private final Player player;
private boolean cancelled;
public BarrelDestroyEvent(Barrel barrel, Block broken, Reason reason, Player player) {
super(barrel);
this.broken = broken;
this.player = player;
this.reason = reason;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
public Block getBroken() {
return broken;
}
public Reason getReason() {
return reason;
}
public boolean hasPlayer() {
return player != null;
}
// MAY BE NULL if no Player is involved
public Player getPlayerOptional() {
return player;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
public enum Reason {
PLAYER, // A Player Broke the Barrel
BROKEN, // A Block was broken by something
BURNED, // A Block burned away
EXPLODED, // The Barrel exploded somehow
UNKNOWN // The Barrel was broken somehow else
}
}
@@ -0,0 +1,27 @@
package com.dre.brewery.api.events.barrel;
import com.dre.brewery.Barrel;
import org.bukkit.block.Block;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.Inventory;
public abstract class BarrelEvent extends Event {
protected final Barrel barrel;
public BarrelEvent(Barrel barrel) {
this.barrel = barrel;
}
public Barrel getBarrel() {
return barrel;
}
public Inventory getInventory() {
return barrel.getInventory();
}
public Block getSpigot() {
return barrel.getSpigot();
}
}
@@ -0,0 +1,34 @@
package com.dre.brewery.api.events.barrel;
import com.dre.brewery.Barrel;
import org.bukkit.event.HandlerList;
/*
* A Barrel is being removed. There may have been a BarrelDestroyEvent before
* If not, Worldedit, other Plugins etc may be the cause for unexpected removal
*/
public class BarrelRemoveEvent extends BarrelEvent {
private static final HandlerList handlers = new HandlerList();
private boolean itemsDrop = true;
public BarrelRemoveEvent(Barrel barrel) {
super(barrel);
}
public boolean shouldItemsDrop() {
return itemsDrop;
}
public void setShouldItemsDrop(boolean itemsDrop) {
this.itemsDrop = itemsDrop;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}