diff --git a/src/me/ryanhamshire/GriefPrevention/PlayerKickBanTask.java b/src/me/ryanhamshire/GriefPrevention/PlayerKickBanTask.java index 27ca2fb..a06eb8d 100644 --- a/src/me/ryanhamshire/GriefPrevention/PlayerKickBanTask.java +++ b/src/me/ryanhamshire/GriefPrevention/PlayerKickBanTask.java @@ -18,6 +18,8 @@ package me.ryanhamshire.GriefPrevention; +import me.ryanhamshire.GriefPrevention.events.PlayerKickBanEvent; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; //kicks or bans a player @@ -48,6 +50,14 @@ class PlayerKickBanTask implements Runnable @Override public void run() { + PlayerKickBanEvent kickBanEvent = new PlayerKickBanEvent(player, reason, source, ban); + Bukkit.getPluginManager().callEvent(kickBanEvent); + + if (kickBanEvent.isCancelled()) + { + return; // cancelled by a plugin + } + if(this.ban) { //ban diff --git a/src/me/ryanhamshire/GriefPrevention/events/PlayerKickBanEvent.java b/src/me/ryanhamshire/GriefPrevention/events/PlayerKickBanEvent.java new file mode 100644 index 0000000..601dca0 --- /dev/null +++ b/src/me/ryanhamshire/GriefPrevention/events/PlayerKickBanEvent.java @@ -0,0 +1,89 @@ +package me.ryanhamshire.GriefPrevention.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * Called when GP is about to kick or ban a player + * + * @author BillyGalbreath + * 03/10/2017. + */ +public class PlayerKickBanEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public HandlerList getHandlers() + { + return handlers; + } + + private Player player; + private String reason; + private String source; + private boolean ban; + private boolean cancelled = false; + + /** + * @param player Player getting kicked and/or banned + * @param reason Reason message for kick/ban + * @param source What caused the kick/ban + * @param ban True if player is getting banned + */ + public PlayerKickBanEvent(Player player, String reason, String source, boolean ban) + { + this.player = player; + this.reason = reason; + this.source = source; + this.ban = ban; + } + + /** + * @return player getting kicked/banned + */ + public Player getPlayer() + { + return this.player; + } + + /** + * @return reason player is getting kicked/banned + */ + public String getReason() + { + return this.reason; + } + + /** + * @return source that is kicking/banning the player + */ + public String getSource() + { + return this.source; + } + + /** + * @return is player getting banned + */ + public boolean getBan() + { + return this.ban; + } + + public boolean isCancelled() + { + return this.cancelled; + } + + public void setCancelled(boolean cancel) + { + this.cancelled = cancel; + } +}