use of com.archyx.aureliumskills.modifier.ModifierManager in project AureliumSkills by Archy-X.
the class AureliumSkills method onEnable.
public void onEnable() {
// Registries
statRegistry = new StatRegistry();
registerStats();
skillRegistry = new SkillRegistry();
registerSkills();
sourceRegistry = new SourceRegistry();
itemRegistry = new ItemRegistry(this);
inventoryManager = new InventoryManager(this);
inventoryManager.init();
AureliumAPI.setPlugin(this);
// Checks for world guard
if (getServer().getPluginManager().isPluginEnabled("WorldGuard")) {
if (WorldGuardPlugin.inst().getDescription().getVersion().contains("7.0")) {
worldGuardEnabled = true;
worldGuardSupport = new WorldGuardSupport(this);
worldGuardSupport.loadRegions();
}
} else {
worldGuardEnabled = false;
}
// Checks for PlaceholderAPI
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
new PlaceholderSupport(this).register();
placeholderAPIEnabled = true;
getLogger().info("PlaceholderAPI Support Enabled!");
} else {
placeholderAPIEnabled = false;
}
// Checks for Vault
if (setupEconomy()) {
vaultEnabled = true;
getLogger().info("Vault Support Enabled!");
} else {
vaultEnabled = false;
}
// Check for protocol lib
protocolLibEnabled = Bukkit.getPluginManager().isPluginEnabled("ProtocolLib");
// Check towny
townyEnabled = Bukkit.getPluginManager().isPluginEnabled("Towny");
townySupport = new TownySupport(this);
// Check for LuckPerms
luckPermsEnabled = Bukkit.getPluginManager().isPluginEnabled("LuckPerms");
if (luckPermsEnabled) {
luckPermsSupport = new LuckPermsSupport();
}
// Check for Slimefun
slimefunEnabled = Bukkit.getPluginManager().isPluginEnabled("Slimefun");
if (slimefunEnabled) {
getServer().getPluginManager().registerEvents(new SlimefunSupport(this), this);
getLogger().info("Slimefun Support Enabled!");
}
// Load health
Health health = new Health(this);
this.health = health;
getServer().getPluginManager().registerEvents(health, this);
// Load config
loadConfig();
this.requirementManager = new RequirementManager(this);
optionLoader = new OptionL(this);
optionLoader.loadOptions();
requirementManager.load();
this.modifierManager = new ModifierManager(this);
// Load sources
sourceManager = new SourceManager(this);
sourceManager.loadSources();
// Load boss bar
bossBar = new SkillBossBar(this);
bossBar.loadOptions();
// Checks for holographic displays
if (Bukkit.getPluginManager().isPluginEnabled("HolographicDisplays")) {
holographicDisplaysEnabled = true;
getServer().getPluginManager().registerEvents(new HologramSupport(this), this);
getLogger().info("HolographicDisplays Support Enabled!");
} else {
holographicDisplaysEnabled = false;
}
commandManager = new PaperCommandManager(this);
// Load items
itemRegistry.loadFromFile();
// Load languages
lang = new Lang(this);
getServer().getPluginManager().registerEvents(lang, this);
lang.init();
lang.loadEmbeddedMessages(commandManager);
lang.loadLanguages(commandManager);
// Load rewards
rewardManager = new RewardManager(this);
rewardManager.loadRewards();
// Registers Commands
registerCommands();
// Load menu
menuLoader = new MenuLoader(this);
try {
menuLoader.load();
} catch (IllegalAccessException | InstantiationException | InvocationTargetException e) {
e.printStackTrace();
getLogger().warning("Error loading menus!");
}
// Region manager
this.regionManager = new RegionManager(this);
// Registers events
registerEvents();
// Load ability manager
manaAbilityManager = new ManaAbilityManager(this);
getServer().getPluginManager().registerEvents(manaAbilityManager, this);
manaAbilityManager.init();
// Load ability options
abilityManager = new AbilityManager(this);
abilityManager.loadOptions();
// Load stats
Regeneration regeneration = new Regeneration(this);
getServer().getPluginManager().registerEvents(regeneration, this);
regeneration.startRegen();
regeneration.startSaturationRegen();
// Load Action Bar
if (protocolLibEnabled) {
protocolLibSupport = new ProtocolLibSupport();
new ActionBarCompatHandler(this).registerListeners();
}
actionBar.startUpdateActionBar();
// Initialize storage
this.playerManager = new PlayerManager(this);
this.leaderboardManager = new LeaderboardManager();
// Set proper storage provider
if (OptionL.getBoolean(Option.MYSQL_ENABLED)) {
MySqlStorageProvider mySqlStorageProvider = new MySqlStorageProvider(this);
mySqlStorageProvider.init();
MysqlBackup mysqlBackup = new MysqlBackup(this, mySqlStorageProvider);
if (!mySqlStorageProvider.localeColumnExists()) {
mysqlBackup.saveBackup(Bukkit.getConsoleSender(), false);
}
new LegacyMysqlToMysqlConverter(this, mySqlStorageProvider).convert();
setStorageProvider(mySqlStorageProvider);
this.backupProvider = mysqlBackup;
} else {
// Try to backup and convert legacy files
new LegacyFileBackup(this).saveBackup(Bukkit.getConsoleSender(), false);
new LegacyFileToYamlConverter(this).convert();
setStorageProvider(new YamlStorageProvider(this));
this.backupProvider = new YamlBackup(this);
}
// Initialize leaderboards
new BukkitRunnable() {
@Override
public void run() {
if (leaderboardManager.isNotSorting()) {
storageProvider.updateLeaderboards();
}
}
}.runTaskTimerAsynchronously(this, 0, 12000);
// Load leveler
leveler = new Leveler(this);
leveler.loadLevelRequirements();
// Load loot tables
lootTableManager = new LootTableManager(this);
// Load world manager
worldManager = new WorldManager(this);
worldManager.loadWorlds();
// B-stats
int pluginId = 8629;
new Metrics(this, pluginId);
getLogger().info("Aurelium Skills has been enabled");
if (System.currentTimeMillis() > ReleaseData.RELEASE_TIME + 21600000L) {
checkUpdates();
}
MinecraftVersion.disableUpdateCheck();
// Check if NBT API is supported for the version
if (MinecraftVersion.getVersion() == MinecraftVersion.UNKNOWN) {
getLogger().warning("NBT API is not yet supported for your Minecraft version, item modifier, requirement, and some other functionality is disabled!");
nbtAPIEnabled = false;
} else {
nbtAPIEnabled = true;
}
}
Aggregations