// Generated by delombok at Tue Dec 16 19:34:32 UTC 2025
package net.md_5.bungee.api.dialog;

import lombok.NonNull;
import net.md_5.bungee.api.dialog.action.ActionButton;

/**
 * Represents a simple dialog with text and one action at the bottom (default:
 * "OK").
 */
public final class NoticeDialog implements Dialog {
    @NonNull
    private DialogBase base;
    /**
     * The "OK" action button for the dialog.
     */
    private ActionButton action;

    public NoticeDialog(DialogBase base) {
        this(base, null);
    }

    @NonNull
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public DialogBase getBase() {
        return this.base;
    }

    /**
     * The "OK" action button for the dialog.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public ActionButton action() {
        return this.action;
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setBase(@NonNull final DialogBase base) {
        if (base == null) {
            throw new java.lang.NullPointerException("base is marked non-null but is null");
        }
        this.base = base;
    }

    /**
     * The "OK" action button for the dialog.
     * @return {@code this}.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public NoticeDialog action(final ActionButton action) {
        this.action = action;
        return this;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public java.lang.String toString() {
        return "NoticeDialog(base=" + this.getBase() + ", action=" + this.action() + ")";
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public boolean equals(final java.lang.Object o) {
        if (o == this) return true;
        if (!(o instanceof NoticeDialog)) return false;
        final NoticeDialog other = (NoticeDialog) o;
        final java.lang.Object this$base = this.getBase();
        final java.lang.Object other$base = other.getBase();
        if (this$base == null ? other$base != null : !this$base.equals(other$base)) return false;
        final java.lang.Object this$action = this.action();
        final java.lang.Object other$action = other.action();
        if (this$action == null ? other$action != null : !this$action.equals(other$action)) return false;
        return true;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final java.lang.Object $base = this.getBase();
        result = result * PRIME + ($base == null ? 43 : $base.hashCode());
        final java.lang.Object $action = this.action();
        result = result * PRIME + ($action == null ? 43 : $action.hashCode());
        return result;
    }

    /**
     * Creates a new {@code NoticeDialog} instance.
     *
     * @param base
     * @param action The "OK" action button for the dialog.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public NoticeDialog(@NonNull final DialogBase base, final ActionButton action) {
        if (base == null) {
            throw new java.lang.NullPointerException("base is marked non-null but is null");
        }
        this.base = base;
        this.action = action;
    }
}
