Spigot Plugin

ZgloszeniaGUI

plugin Polski o zgloszeniu w gui gracz po wpisaniu /zglos (nick gracza samo daje nicki) wyswietla sie gui na ekranie i jest do wybrania opcja cheaty brak kultury promowanie i gracz wybiera i admin z permisja ktora ma byc zgloszenia psitulasek wyswietli sie na chat wiadomosc jest jedno aktywne zgloszenie sprawdz i po wpisaniu /zgloszenia daje mu gui z zgloszonymi greaczami oraz opcja i nickiem zgloszonego

src/main/java/eu/codexe/zgloszeniagui/ZgloszeniaGUIPlugin.java
package eu.codexe.zgloszeniagui;

import eu.codexe.zgloszeniagui.commands.ReportAdminCommand;
import eu.codexe.zgloszeniagui.commands.ReportCommand;
import eu.codexe.zgloszeniagui.gui.AdminReportsGui;
import eu.codexe.zgloszeniagui.gui.ReportReasonGui;
import eu.codexe.zgloszeniagui.listeners.InventoryClickListener;
import eu.codexe.zgloszeniagui.listeners.PlayerQuitListener;
import eu.codexe.zgloszeniagui.managers.ReportManager;
import eu.codexe.zgloszeniagui.utils.ConfigManager;
import eu.codexe.zgloszeniagui.utils.MessageUtil;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Objects;

public final class ZgloszeniaGUIPlugin extends JavaPlugin {

    private ConfigManager configManager;
    private MessageUtil messageUtil;
    private ReportManager reportManager;
    private ReportReasonGui reportReasonGui;
    private AdminReportsGui adminReportsGui;

    @Override
    public void onEnable() {
        saveDefaultConfig();

        this.configManager = new ConfigManager(this);
        this.messageUtil = new MessageUtil(this, configManager);
        this.reportManager = new ReportManager(this, configManager, messageUtil);
        this.reportReasonGui = new ReportReasonGui(this, configManager, messageUtil, reportManager);
        this.adminReportsGui = new AdminReportsGui(this, configManager, messageUtil, reportManager);

        registerCommands();
        registerListeners();

        getLogger().info("ZgloszeniaGUI zostal wlaczony.");
    }

    @Override
    public void onDisable() {
        if (reportManager != null) {
            reportManager.shutdown();
        }
    }

    private void registerCommands() {
        PluginCommand report = Objects.requireNonNull(getCommand("zglos"), "Brak komendy zglos w plugin.yml");
        ReportCommand reportCommand = new ReportCommand(this, configManager, messageUtil, reportReasonGui);
        report.setExecutor(reportCommand);
        report.setTabCompleter(reportCommand);

        PluginCommand reports = Objects.requireNonNull(getCommand("zgloszenia"), "Brak komendy zgloszenia w plugin.yml");
        ReportAdminCommand adminCommand = new ReportAdminCommand(this, configManager, messageUtil, adminReportsGui);
        reports.setExecutor(adminCommand);
        reports.setTabCompleter(adminCommand);
    }

    private void registerListeners() {