package tv.mineinthebox.essentials.events.customevents; import org.bukkit.GameMode; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; import org.bukkit.event.player.PlayerEvent; import org.bukkit.inventory.ItemStack; public class GameModeInventoryChangeEvent extends PlayerEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private ItemStack[] oldInventoryContents; private ItemStack[] newInventoryContents; private GameMode gmBefore; private GameMode gmNow; private boolean cancelled = false; public GameModeInventoryChangeEvent(Player who, ItemStack[] oldInventory, ItemStack[] newInventory, GameMode gmBefore, GameMode gmNow) { super(who); this.oldInventoryContents = oldInventory; this.newInventoryContents = newInventory; this.gmBefore = gmBefore; this.gmNow = gmNow; } @Override public boolean isCancelled() { return cancelled; } /** * @author xize * @param gets the old inventory * @return ItemStack[] */ public ItemStack[] getOldInventoryState() { return oldInventoryContents; } /** * @author xize * @param gets the new inventory * @return ItemStack[] */ public ItemStack[] getNewInventoryState() { return newInventoryContents; } /** * @author xize * @param while cancelled we return the old inventory back * @return void */ @Override public void setCancelled(boolean bol) { if(bol) { getPlayer().getInventory().setContents(oldInventoryContents); cancelled = true; } cancelled = false; } /** * @author xize * @param returns the older state from the gamemode * @return GameMode */ public GameMode getGameModeBeforeState() { return gmBefore; } /** * @author xize * @param gets the newest gamemode state * @return GameMOde */ public GameMode getGameModeNewState() { return gmNow; } public HandlerList getHandlers() { return handlers; } public static HandlerList getHandlerList() { return handlers; } }