From 95fbdbc52699f50ba42411bba1eb39443753f4e9 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Wed, 26 Nov 2025 15:43:19 +0000 Subject: [PATCH] src/main/java/vpd/bowandaero12/furnacelv/FurnaceLevels.java aktualisiert --- .../bowandaero12/furnacelv/FurnaceLevels.java | 127 +++++++++--------- 1 file changed, 62 insertions(+), 65 deletions(-) diff --git a/src/main/java/vpd/bowandaero12/furnacelv/FurnaceLevels.java b/src/main/java/vpd/bowandaero12/furnacelv/FurnaceLevels.java index df1bc68..63df1c2 100644 --- a/src/main/java/vpd/bowandaero12/furnacelv/FurnaceLevels.java +++ b/src/main/java/vpd/bowandaero12/furnacelv/FurnaceLevels.java @@ -2,76 +2,73 @@ package vpd.bowandaero12.furnacelv; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; -import java.util.logging.Logger; import net.milkbowl.vault.economy.Economy; -import org.bukkit.command.CommandExecutor; -import org.bukkit.event.Listener; -import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; import vpd.bowandaero12.furnacelv.commands.DebugCmd; +import vpd.bowandaero12.furnacelv.commands.GiveCommand; import vpd.bowandaero12.furnacelv.events.FurnaceEvent; -import vpd.bowandaero12.furnacelv.items.ItemHandler; -import vpd.bowandaero12.furnacelv.items.LevelMenu; import vpd.bowandaero12.furnacelv.utils.Configs; -public class FurnaceLevels extends JavaPlugin { - private static final Logger log = Logger.getLogger("FurnaceLevels"); - - public ProtocolManager protocolManager; - - public Economy vaultEco; - - private final FurnaceEvent furnaceEvent = new FurnaceEvent(this); - - public final ItemHandler itemhandler = new ItemHandler(this); - - public final LevelMenu lvmenu = new LevelMenu(this); - - public final Configs configs = new Configs(this); - - public final DebugCmd debug = new DebugCmd(this); - - public void onEnable() { - PluginManager pm = getServer().getPluginManager(); - this.protocolManager = ProtocolLibrary.getProtocolManager(); - this.configs.createConfigs(); - boolean useEco = true; - if (this.configs.getConfig().isSet("use-economy")) - useEco = this.configs.getConfig().getBoolean("use-economy"); - if (useEco && setupEconomy()) { - log.info(String.format("[%s] " + this.vaultEco.getName() + " has been detected and is in use!", new Object[] { getDescription().getName() })); - } else { - log.info(String.format("[%s] Using custom items for furnace upgrades.", new Object[] { getDescription().getName() })); - } - pm.registerEvents((Listener)this.furnaceEvent, (Plugin)this); - pm.registerEvents((Listener)this.itemhandler, (Plugin)this); - pm.registerEvents((Listener)this.lvmenu, (Plugin)this); - getCommand("fldebug").setExecutor((CommandExecutor)this.debug); - checkVer(getDescription().getVersion()); - this.itemhandler.registerFurnaces(); - this.furnaceEvent.setValues(); - } - - public void onDisable() {} - - private void checkVer(String ver) { - if (!this.configs.getConfig().isSet("version") || !this.configs.getConfig().getString("version").equals(ver)) { - log.warning(String.format("[%s] Your configuration file is outdated! Update it by renaming the new config file to config.yml and copying any changed settings.", new Object[] { getDescription().getName() })); - this.configs.createUpdatedConfig(); - } - if (!this.configs.getLang().isSet("version") || !this.configs.getLang().getString("version").equals(ver)) { - log.warning(String.format("[%s] Your lang.yml file is outdated! Update it by renaming the new lang file to lang.yml and copying any changed settings.", new Object[] { getDescription().getName() })); - this.configs.createUpdatedLang(); - } - } - - private boolean setupEconomy() { - RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Economy.class); - if (rsp == null) - return false; - this.vaultEco = (Economy)rsp.getProvider(); - return (this.vaultEco != null); - } -} +public final class FurnaceLevels extends JavaPlugin { + + public ProtocolManager protocolManager; + public Economy vaultEco; + public final Configs configs = new Configs(this); + + // Speichere die Event-Listener-Instanz hier + private FurnaceEvent furnaceEventListener; + + @Override + public void onEnable() { + this.configs.createConfigs(); + + if (getServer().getPluginManager().getPlugin("ProtocolLib") == null) { + getLogger().severe("ProtocolLib wurde nicht gefunden! Das Plugin wird deaktiviert."); + getServer().getPluginManager().disablePlugin(this); + return; + } + this.protocolManager = ProtocolLibrary.getProtocolManager(); + + boolean useEco = this.configs.getConfig().getBoolean("use-economy", true); + if (useEco && setupEconomy()) { + getLogger().info(String.format("[%s] %s wurde erkannt und wird verwendet.", getDescription().getName(), this.vaultEco.getName())); + } else { + getLogger().info(String.format("[%s] Verwendet benutzerdefinierte Items für Ofen-Upgrades.", getDescription().getName())); + } + + PluginManager pm = getServer().getPluginManager(); + + // Erstelle die Instanz und speichere sie + this.furnaceEventListener = new FurnaceEvent(this); + + // Registriere die gespeicherte Instanz + pm.registerEvents(this.furnaceEventListener, this); + + getCommand("fldebug").setExecutor(new DebugCmd(this)); + getCommand("flgive").setExecutor(new GiveCommand(this)); + + // Rufe setValues() auf der korrekten, gespeicherten Instanz auf + this.furnaceEventListener.setValues(); + + getLogger().info("FurnaceLevels wurde erfolgreich aktiviert!"); + } + + @Override + public void onDisable() { + getLogger().info("FurnaceLevels wurde deaktiviert."); + } + + private boolean setupEconomy() { + if (getServer().getPluginManager().getPlugin("Vault") == null) { + return false; + } + RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Economy.class); + if (rsp == null) { + return false; + } + this.vaultEco = rsp.getProvider(); + return (this.vaultEco != null); + } +} \ No newline at end of file