src/main/java/vpd/bowandaero12/furnacelv/FurnaceLevels.java aktualisiert

This commit is contained in:
2025-11-26 15:43:19 +00:00
parent cd7e5c2987
commit 95fbdbc526

View File

@@ -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 final class FurnaceLevels extends JavaPlugin {
public ProtocolManager protocolManager;
public ProtocolManager protocolManager;
public Economy vaultEco;
public final Configs configs = new Configs(this);
public Economy vaultEco;
// Speichere die Event-Listener-Instanz hier
private FurnaceEvent furnaceEventListener;
private final FurnaceEvent furnaceEvent = new FurnaceEvent(this);
@Override
public void onEnable() {
this.configs.createConfigs();
public final ItemHandler itemhandler = new ItemHandler(this);
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();
public final LevelMenu lvmenu = new LevelMenu(this);
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()));
}
public final Configs configs = new Configs(this);
PluginManager pm = getServer().getPluginManager();
public final DebugCmd debug = new DebugCmd(this);
// Erstelle die Instanz und speichere sie
this.furnaceEventListener = new FurnaceEvent(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() }));
// 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!");
}
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();
@Override
public void onDisable() {
getLogger().info("FurnaceLevels wurde deaktiviert.");
}
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<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null)
return false;
this.vaultEco = (Economy)rsp.getProvider();
return (this.vaultEco != null);
}
private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
this.vaultEco = rsp.getProvider();
return (this.vaultEco != null);
}
}