package tc.oc.commons.bukkit.event;
import net.md_5.bungee.api.chat.BaseComponent;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import javax.annotation.Nullable;
/**
* Extension of Bukkit's {@link Cancellable} to allow for custom error messages to be specified when cancelling the
* event.
*/
public abstract class ExtendedCancellable extends Event implements Cancellable {
protected boolean cancelled;
protected @Nullable BaseComponent cancelMessage;
protected ExtendedCancellable() {
this(null);
}
protected ExtendedCancellable(@Nullable BaseComponent cancelMessage) {
this.cancelMessage = cancelMessage;
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
this.cancelMessage = null;
}
public void setCancelled(boolean cancel, BaseComponent message) {
this.setCancelled(cancel);
this.cancelMessage = message;
}
public @Nullable BaseComponent getCancelMessage() {
return this.cancelMessage;
}
}