GUIItemAction.java
package it.fulminazzo.yagl.action;
import it.fulminazzo.yagl.SerializableFunction;
import it.fulminazzo.yagl.content.GUIContent;
import it.fulminazzo.yagl.event.ClickItemEvent;
import it.fulminazzo.yagl.event.ClickType;
import it.fulminazzo.yagl.gui.GUI;
import it.fulminazzo.yagl.viewer.Viewer;
import org.jetbrains.annotations.NotNull;
/**
* A general functional interface accepting a {@link ClickItemEvent}.
*/
@FunctionalInterface
public interface GUIItemAction extends SerializableFunction {
/**
* Execute.
*
* @param event the event
*/
void execute(final @NotNull ClickItemEvent event);
/**
* Execute.
*
* @param viewer the viewer
* @param gui the gui
* @param content the content
*/
default void execute(final @NotNull Viewer viewer, final @NotNull GUI gui, final @NotNull GUIContent content) {
execute(ClickItemEvent.builder()
.viewer(viewer)
.gui(gui)
.content(content)
.clickType(ClickType.LEFT)
.build());
}
}