package net.t2code.t2codelib.SPIGOT.system; import lombok.Getter; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.permission.Permission; import net.t2code.t2codelib.SPIGOT.api.bungeePlayers.T2CbungeePlayers; import net.t2code.t2codelib.SPIGOT.api.items.T2CitemVersion; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate; import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion; import net.t2code.t2codelib.SPIGOT.api.plugins.T2CpluginCheck; import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI; import net.t2code.t2codelib.SPIGOT.system.bstats.Metrics; import net.t2code.t2codelib.SPIGOT.system.cmd.CmdExecuter; import net.t2code.t2codelib.SPIGOT.system.cmd.ReportLogStorage; import net.t2code.t2codelib.SPIGOT.system.config.config.ConfigCreate; import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig; import net.t2code.t2codelib.SPIGOT.system.config.languages.LanguagesCreate; import net.t2code.t2codelib.SPIGOT.system.config.languages.SelectLibMsg; import net.t2code.t2codelib.Util; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; import java.util.List; public final class T2CodeLibMain extends JavaPlugin { private static T2CodeLibMain plugin; private static Economy eco = null; private static Permission perm = null; private static List autor; private static String version; @Getter private static Boolean mmIsLoad = true; private static Boolean load = false; @Override public void onEnable() { // Plugin startup logic plugin = this; autor = plugin.getDescription().getAuthors(); version = plugin.getDescription().getVersion(); try { adventure = BukkitAudiences.create(this); } catch (Exception e) { mmIsLoad = false; } long long_ = T2Ctemplate.onLoadHeader(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord()); checkIsBungee(); String prefix = Util.getPrefix(); try { Vault.loadVault(); } catch (InterruptedException e) { e.printStackTrace(); } T2CmcVersion.onCheck(); if (T2CmcVersion.isNms1_20_R2()) { T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!"); T2Csend.console(prefix); T2Csend.warning(plugin, "The 1.20.* (R2) is a very fresh / new version. If there are any bugs in our plugins, please report them to us via our Discord: http://dc.t2code.net"); T2Csend.console(prefix); T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!"); if (!SelectLibConfig.getT2cTestDevelopment()) { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } } } T2Csend.console(prefix + " §3Server run on: §6" + T2CmcVersion.getMcVersion() + " / " + T2CmcVersion.getNms()); if (eco != null) { String st = eco.getName(); if (eco.getName().equals("CMIEconomy")) st = "CMI"; if (Bukkit.getPluginManager().getPlugin(st) != null) { T2Csend.console(prefix + " §3Economy: §6" + eco.getName() + " - " + Bukkit.getPluginManager().getPlugin(st).getDescription().getVersion() + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } else T2Csend.console(prefix + " §3Economy: §6" + eco.getName() + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } else T2Csend.console(prefix + " §3Economy: §4not connected via vault!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); if (perm != null) { if (Bukkit.getPluginManager().getPlugin(perm.getName()) != null) { T2Csend.console(prefix + " §3Permission plugin: §6" + perm.getName() + " - " + Bukkit.getPluginManager().getPlugin(perm.getName()).getDescription().getVersion() + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } else T2Csend.console(prefix + " §3Permission plugin: §6" + perm.getName() + " - §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } else T2Csend.console(prefix + " §3Permission plugin: §4not connected via vault!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); if (T2CpluginCheck.papi()) { T2Csend.console(prefix + " §3PlaceholderAPI: §6connected" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } T2Csend.console(prefix + " §3Kyori MiniMessage Support: "+ (getMmIsLoad() ? "§2load" : "§4not load") + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); plugin.getCommand("t2code").setExecutor(new CmdExecuter()); ConfigCreate.configCreate(); T2CitemVersion.scan(); LanguagesCreate.langCreate(); SelectLibConfig.onSelect(); SelectLibMsg.onSelect(); T2CupdateAPI.onUpdateCheck(plugin, prefix, Util.getGit(), Util.getSpigotID(), Util.getDiscord(), SelectLibConfig.getUpdateCheckOnJoin(), SelectLibConfig.getSeePreReleaseUpdates(), SelectLibConfig.getUpdateCheckTimeInterval()); Metrics.Bstats(plugin, Util.getBstatsID()); if (SelectLibConfig.getBungee()) { Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, "t2c:bcmd"); T2Csend.debug(plugin, "registerIncomingPluginChannel §et2c:bcmd"); Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, "t2c:bonlp"); if (!Bukkit.getMessenger().isIncomingChannelRegistered(plugin, "t2c:bonlp")) { T2Csend.debug(plugin, "registerIncomingPluginChannel §et2c:bonlp"); Bukkit.getMessenger().registerIncomingPluginChannel(plugin, "t2c:bonlp", new T2CbungeePlayers()); T2CbungeePlayers.callAllBungeePlayers(); } } ReportLogStorage.load(); Bukkit.getServer().getPluginManager().registerEvents(new JoinEvent(), plugin); T2Ctemplate.onLoadFooter(prefix, long_); load = true; } @Override public void onDisable() { // Plugin shutdown logic if (!load) return; ReportLogStorage.save(); if (SelectLibConfig.getInventoriesCloseByServerStop()) { for (Player player : Bukkit.getOnlinePlayers()) { player.closeInventory(); } } Vault.vaultDisable(); T2Ctemplate.onDisable(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord()); if (mmIsLoad) { if (this.adventure != null) { this.adventure.close(); this.adventure = null; } } } public static File getPath() { return plugin.getDataFolder(); } static void setEco(Economy eco) { T2CodeLibMain.eco = eco; } static void setPerm(Permission perm) { T2CodeLibMain.perm = perm; } public static T2CodeLibMain getPlugin() { return plugin; } public static Economy getEco() { return eco; } public static Permission getPerm() { return perm; } public static List getAutor() { return autor; } public static String getVersion() { return version; } private static BukkitAudiences adventure; public BukkitAudiences getAdventure() { if (adventure == null) { throw new IllegalStateException("Tried to access Adventure when the plugin was disabled!"); } return adventure; } private static void checkIsBungee() { File config = new File("spigot.yml"); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); isBungee = yamlConfiguration.getBoolean("settings.bungeecord"); } private static Boolean isBungee; public static Boolean getIsBungee() { return isBungee; } public static Boolean getMmIsLoad() { return mmIsLoad; } }