// Generated by delombok at Tue Dec 16 19:35:27 UTC 2025
package net.md_5.bungee.api.plugin;

import java.io.File;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

/**
 * POJO representing the plugin.yml file.
 */
public class PluginDescription {
    /**
     * Friendly name of the plugin.
     */
    private String name;
    /**
     * Plugin main class. Needs to extend {@link Plugin}.
     */
    private String main;
    /**
     * Plugin version.
     */
    private String version;
    /**
     * Plugin author.
     */
    private String author;
    /**
     * Plugin hard dependencies.
     */
    private Set<String> depends = new HashSet<>();
    /**
     * Plugin soft dependencies.
     */
    private Set<String> softDepends = new HashSet<>();
    /**
     * File we were loaded from.
     */
    private File file = null;
    /**
     * Optional description.
     */
    private String description = null;
    /**
     * Optional libraries.
     */
    private List<String> libraries = new LinkedList<>();

    /**
     * Friendly name of the plugin.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getName() {
        return this.name;
    }

    /**
     * Plugin main class. Needs to extend {@link Plugin}.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getMain() {
        return this.main;
    }

    /**
     * Plugin version.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getVersion() {
        return this.version;
    }

    /**
     * Plugin author.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAuthor() {
        return this.author;
    }

    /**
     * Plugin hard dependencies.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Set<String> getDepends() {
        return this.depends;
    }

    /**
     * Plugin soft dependencies.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Set<String> getSoftDepends() {
        return this.softDepends;
    }

    /**
     * File we were loaded from.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public File getFile() {
        return this.file;
    }

    /**
     * Optional description.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getDescription() {
        return this.description;
    }

    /**
     * Optional libraries.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public List<String> getLibraries() {
        return this.libraries;
    }

    /**
     * Friendly name of the plugin.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setName(final String name) {
        this.name = name;
    }

    /**
     * Plugin main class. Needs to extend {@link Plugin}.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setMain(final String main) {
        this.main = main;
    }

    /**
     * Plugin version.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setVersion(final String version) {
        this.version = version;
    }

    /**
     * Plugin author.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setAuthor(final String author) {
        this.author = author;
    }

    /**
     * Plugin hard dependencies.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setDepends(final Set<String> depends) {
        this.depends = depends;
    }

    /**
     * Plugin soft dependencies.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setSoftDepends(final Set<String> softDepends) {
        this.softDepends = softDepends;
    }

    /**
     * File we were loaded from.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setFile(final File file) {
        this.file = file;
    }

    /**
     * Optional description.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setDescription(final String description) {
        this.description = description;
    }

    /**
     * Optional libraries.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public void setLibraries(final List<String> libraries) {
        this.libraries = libraries;
    }

    @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 PluginDescription)) return false;
        final PluginDescription other = (PluginDescription) o;
        if (!other.canEqual((java.lang.Object) this)) return false;
        final java.lang.Object this$name = this.getName();
        final java.lang.Object other$name = other.getName();
        if (this$name == null ? other$name != null : !this$name.equals(other$name)) return false;
        final java.lang.Object this$main = this.getMain();
        final java.lang.Object other$main = other.getMain();
        if (this$main == null ? other$main != null : !this$main.equals(other$main)) return false;
        final java.lang.Object this$version = this.getVersion();
        final java.lang.Object other$version = other.getVersion();
        if (this$version == null ? other$version != null : !this$version.equals(other$version)) return false;
        final java.lang.Object this$author = this.getAuthor();
        final java.lang.Object other$author = other.getAuthor();
        if (this$author == null ? other$author != null : !this$author.equals(other$author)) return false;
        final java.lang.Object this$depends = this.getDepends();
        final java.lang.Object other$depends = other.getDepends();
        if (this$depends == null ? other$depends != null : !this$depends.equals(other$depends)) return false;
        final java.lang.Object this$softDepends = this.getSoftDepends();
        final java.lang.Object other$softDepends = other.getSoftDepends();
        if (this$softDepends == null ? other$softDepends != null : !this$softDepends.equals(other$softDepends)) return false;
        final java.lang.Object this$file = this.getFile();
        final java.lang.Object other$file = other.getFile();
        if (this$file == null ? other$file != null : !this$file.equals(other$file)) return false;
        final java.lang.Object this$description = this.getDescription();
        final java.lang.Object other$description = other.getDescription();
        if (this$description == null ? other$description != null : !this$description.equals(other$description)) return false;
        final java.lang.Object this$libraries = this.getLibraries();
        final java.lang.Object other$libraries = other.getLibraries();
        if (this$libraries == null ? other$libraries != null : !this$libraries.equals(other$libraries)) return false;
        return true;
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    protected boolean canEqual(final java.lang.Object other) {
        return other instanceof PluginDescription;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final java.lang.Object $name = this.getName();
        result = result * PRIME + ($name == null ? 43 : $name.hashCode());
        final java.lang.Object $main = this.getMain();
        result = result * PRIME + ($main == null ? 43 : $main.hashCode());
        final java.lang.Object $version = this.getVersion();
        result = result * PRIME + ($version == null ? 43 : $version.hashCode());
        final java.lang.Object $author = this.getAuthor();
        result = result * PRIME + ($author == null ? 43 : $author.hashCode());
        final java.lang.Object $depends = this.getDepends();
        result = result * PRIME + ($depends == null ? 43 : $depends.hashCode());
        final java.lang.Object $softDepends = this.getSoftDepends();
        result = result * PRIME + ($softDepends == null ? 43 : $softDepends.hashCode());
        final java.lang.Object $file = this.getFile();
        result = result * PRIME + ($file == null ? 43 : $file.hashCode());
        final java.lang.Object $description = this.getDescription();
        result = result * PRIME + ($description == null ? 43 : $description.hashCode());
        final java.lang.Object $libraries = this.getLibraries();
        result = result * PRIME + ($libraries == null ? 43 : $libraries.hashCode());
        return result;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public java.lang.String toString() {
        return "PluginDescription(name=" + this.getName() + ", main=" + this.getMain() + ", version=" + this.getVersion() + ", author=" + this.getAuthor() + ", depends=" + this.getDepends() + ", softDepends=" + this.getSoftDepends() + ", file=" + this.getFile() + ", description=" + this.getDescription() + ", libraries=" + this.getLibraries() + ")";
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public PluginDescription() {
    }

    /**
     * Creates a new {@code PluginDescription} instance.
     *
     * @param name Friendly name of the plugin.
     * @param main Plugin main class. Needs to extend {@link Plugin}.
     * @param version Plugin version.
     * @param author Plugin author.
     * @param depends Plugin hard dependencies.
     * @param softDepends Plugin soft dependencies.
     * @param file File we were loaded from.
     * @param description Optional description.
     * @param libraries Optional libraries.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public PluginDescription(final String name, final String main, final String version, final String author, final Set<String> depends, final Set<String> softDepends, final File file, final String description, final List<String> libraries) {
        this.name = name;
        this.main = main;
        this.version = version;
        this.author = author;
        this.depends = depends;
        this.softDepends = softDepends;
        this.file = file;
        this.description = description;
        this.libraries = libraries;
    }
}
