CometSkyBlock/plugin/src/main/java/com/alttd/cometskyblock/CometSkyBlockPlugin.java

90 lines
3.2 KiB
Java
Raw Normal View History

2024-01-04 17:28:29 +00:00
package com.alttd.cometskyblock;
2024-01-25 14:49:04 +00:00
import com.alttd.cometskyblock.commands.challenges.ChallengeCommand;
import com.alttd.cometskyblock.commands.island.IslandCommand;
2024-01-22 18:00:25 +00:00
import com.alttd.cometskyblock.configuration.*;
2024-01-04 17:28:29 +00:00
import com.alttd.cometskyblock.listeners.PlayerJoinListener;
2024-01-22 18:00:25 +00:00
import com.alttd.cometskyblock.managers.IslandManager;
import com.alttd.cometskyblock.managers.PlayerManager;
import com.alttd.cometskyblock.worldgenerator.MasterWorldGenerator;
2024-01-22 18:00:25 +00:00
import lombok.Getter;
2024-01-04 17:28:29 +00:00
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
2024-01-22 18:00:25 +00:00
import org.slf4j.Logger;
import java.nio.file.Path;
2024-01-04 17:28:29 +00:00
public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI {
2024-01-22 18:00:25 +00:00
@Getter private static CometSkyBlockPlugin instance;
@Getter private ConfigurationContainer<PluginConfiguration> pluginConfiguration;
@Getter private ConfigurationContainer<DatabaseConfiguration> databaseConfiguration;
@Getter private ConfigurationContainer<MessageConfiguration> messagesConfiguration;
@Getter private ConfigurationContainer<ChallengesConfiguration> challengesConfiguration;
@Getter private IslandManager islandManager;
@Getter private PlayerManager playerManager;
@Getter private MasterWorldGenerator worldGenerator;
2024-01-04 17:28:29 +00:00
@Override
public void onLoad() {
instance = this;
CometSkyBlockAPI.Provider.register(instance);
}
@Override
public void onEnable() {
2024-01-22 18:00:25 +00:00
// Load configurations
loadConfiguration();
// Load commands
loadCommands();
// Load event listeners
loadEventListeners();
// load data from storage
// run cleanup tasks
// CleanupAndDeleteOldIslands and playerdata
// load worlds & manager
islandManager = new IslandManager(this);
playerManager = new PlayerManager(this);
worldGenerator = new MasterWorldGenerator(this);
2024-02-04 20:44:57 +00:00
worldGenerator.checkMasterIslandWorld();
2024-01-04 17:28:29 +00:00
}
@Override
public void onDisable() {
2024-01-22 18:00:25 +00:00
// Cancel all running tasks
getServer().getScheduler().cancelTasks(this);
// close data connection
}
public void loadConfiguration() {
Path path = this.getDataFolder().toPath();
Logger logger = this.getSLF4JLogger();
pluginConfiguration = ConfigurationContainer.load(logger, path, PluginConfiguration.class, "config");
databaseConfiguration = ConfigurationContainer.load(logger, path, DatabaseConfiguration.class, "database");
messagesConfiguration = ConfigurationContainer.load(logger, path, MessageConfiguration.class, "messages");
challengesConfiguration = ConfigurationContainer.load(logger, path, ChallengesConfiguration.class, "challenges");
}
2024-01-04 17:28:29 +00:00
2024-01-22 18:00:25 +00:00
public void loadCommands() {
2024-01-25 14:49:04 +00:00
getCommand("island").setExecutor(new IslandCommand(this));
getCommand("challenges").setExecutor(new ChallengeCommand(this));
// getCommand("cometskyblock").setExecutor( new AdminCommands(this));
2024-01-22 18:00:25 +00:00
}
public void loadEventListeners() {
// TODO - Use reflection to load all of these
final PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new PlayerJoinListener(this), this);
2024-01-04 17:28:29 +00:00
}
}