diff --git a/src/main/java/com/mviper/zenithjoin/Main.java b/src/main/java/com/mviper/zenithjoin/Main.java new file mode 100644 index 0000000..aa79c1a --- /dev/null +++ b/src/main/java/com/mviper/zenithjoin/Main.java @@ -0,0 +1,105 @@ +package com.mviper.zenithjoin; + +import com.mviper.zenithjoin.commands.ReloadCommand; +import com.mviper.zenithjoin.config.ConfigManager; +import com.mviper.zenithjoin.config.MessagesManager; +import com.mviper.zenithjoin.listeners.*; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.Arrays; +import java.util.List; + +public class Main extends JavaPlugin { + + private static Main instance; + private ConfigManager configManager; + private MessagesManager messagesManager; + + @Override + public void onEnable() { + instance = this; + + // Initialize managers + configManager = new ConfigManager(this); + messagesManager = new MessagesManager(this); + + // Load configurations + configManager.loadConfig(); + messagesManager.loadMessages(); + + // Send the ASCII Art logo to the console + sendAsciiLogo(); + + // Register commands + registerCommands(); + + // Register listeners + registerListeners(); + } + + @Override + public void onDisable() { + // Send a simple, clean disable message + String prefix = ChatColor.DARK_GRAY + "[" + ChatColor.AQUA + "ZenithJoin" + ChatColor.DARK_GRAY + "]"; + Bukkit.getConsoleSender().sendMessage(prefix + " " + ChatColor.RED + "Plugin has been disabled."); + } + + /** + * Sends a stylized ASCII Art logo to the console on startup. + */ + private void sendAsciiLogo() { + // Das von Ihnen bereitgestellte ASCII-Art-Logo + // Hinweis: Backslashes (\) müssen in Java als \\ geschrieben werden. + List logo = Arrays.asList( + " /$$$$$$$$ /$$ /$$ /$$ /$$$$$ /$$ ", + "|_____ $$ |__/ | $$ | $$ |__ $$ |__/ ", + " /$$/ /$$$$$$ /$$$$$$$ /$$ /$$$$$$ | $$$$$$$ | $$ /$$$$$$ /$$ /$$$$$$$ ", + " /$$/ /$$__ $$| $$__ $$| $$|_ $$_/ | $$__ $$ | $$ /$$__ $$| $$| $$__ $$", + " /$$/ | $$$$$$$$| $$ \\ $$| $$ | $$ | $$ \\ $$ /$$ | $$| $$ \\ $$| $$| $$ \\ $$", + " /$$/ | $$_____/| $$ | $$| $$ | $$ /$$| $$ | $$ | $$ | $$| $$ | $$| $$| $$ | $$", + " /$$$$$$$$| $$$$$$$| $$ | $$| $$ | $$$$/| $$ | $$ | $$$$$$/| $$$$$$/| $$| $$ | $$", + "|________/ \\_______/|__/ |__/|__/ \\___/ |__/ |__/ \\______/ \\______/ |__/|__/ |__/" + ); + + + String border = "_____________________________________________________________________________________"; + + // Sende die Nachrichtenblock an die Konsole + Bukkit.getConsoleSender().sendMessage(border); + for (String line : logo) { + Bukkit.getConsoleSender().sendMessage(line); + } + Bukkit.getConsoleSender().sendMessage(border); + } + + private void registerCommands() { + getCommand("ZenithJoin").setExecutor(new ReloadCommand(this)); + } + + private void registerListeners() { + PluginManager pm = Bukkit.getPluginManager(); + + pm.registerEvents(new FirstJoinListener(this), this); + pm.registerEvents(new ActionBarListener(this), this); + pm.registerEvents(new JoinLinksListener(this), this); + pm.registerEvents(new TitleListener(this), this); + pm.registerEvents(new JoinMessageListener(this), this); + pm.registerEvents(new LeaveMessageListener(this), this); + pm.registerEvents(new JoinFireworkListener(this), this); + } + + public static Main getInstance() { + return instance; + } + + public ConfigManager getConfigManager() { + return configManager; + } + + public MessagesManager getMessagesManager() { + return messagesManager; + } +} \ No newline at end of file