NounsPicker/src/main/java/wtf/beatrice/nounspicker/NounsPicker.java

77 lines
2.3 KiB
Java
Raw Normal View History

2022-10-21 12:47:14 +02:00
package wtf.beatrice.nounspicker;
2022-10-21 23:58:52 +02:00
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
2022-10-22 00:47:57 +02:00
import wtf.beatrice.nounspicker.commands.NounsCommand;
2022-10-21 23:58:52 +02:00
import wtf.beatrice.nounspicker.objects.PAPIManager;
2022-10-24 20:35:57 +02:00
import wtf.beatrice.nounspicker.utils.Cache;
2022-10-22 00:14:33 +02:00
import wtf.beatrice.nounspicker.utils.ConsoleLogger;
import wtf.beatrice.nounspicker.utils.DatabaseManager;
import wtf.beatrice.nounspicker.utils.FileManager;
import java.io.File;
public class NounsPicker extends JavaPlugin
2022-10-21 12:47:14 +02:00
{
2022-10-21 23:58:52 +02:00
private static NounsPicker instance;
private PluginManager pluginManager;
2022-10-22 00:14:33 +02:00
private final ConsoleLogger logger = new ConsoleLogger(getClass());
@Override
public void onEnable()
2022-10-21 12:47:14 +02:00
{
2022-10-22 00:14:33 +02:00
logger.log("Loading plugin!");
pluginManager = getServer().getPluginManager();
2022-10-21 23:58:52 +02:00
instance = this;
2022-10-21 23:58:52 +02:00
// register PlaceholderAPI
if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
new PAPIManager(this).register();
2022-10-22 00:14:33 +02:00
logger.log("PlaceholderAPI integration loaded!");
2022-10-21 23:58:52 +02:00
} else {
2022-10-22 00:14:33 +02:00
logger.err("Missing PlaceholderAPI! The plugin cannot continue.");
disable();
2022-10-22 00:14:33 +02:00
return;
2022-10-21 23:58:52 +02:00
}
2022-10-22 00:47:57 +02:00
logger.log("Registering commands...");
getCommand("nouns").setExecutor(new NounsCommand(this));
logger.log("Commands registered!");
logger.log("Checking files...");
FileManager fileManager = new FileManager(this);
if (!fileManager.routineCheck())
{
logger.err("Error during routine file check! The plugin will halt.");
disable();
return;
}
logger.log("Files checked!");
logger.log("Connecting to database...");
String dbFilePath = getDataFolder().getAbsolutePath() + File.separator + "db.sqlite";
DatabaseManager dbManager = new DatabaseManager(dbFilePath);
2022-10-22 16:37:32 +02:00
if(dbManager.connect() && dbManager.initDb())
{
logger.log("Database connection initialized!");
2022-10-24 20:35:57 +02:00
Cache.dbManager = dbManager;
} else {
logger.err("Error initializing database connection!");
}
2022-10-22 00:14:33 +02:00
logger.log("Plugin loaded!");
2022-10-21 23:58:52 +02:00
}
public static NounsPicker getInstance()
{
return instance;
2022-10-21 12:47:14 +02:00
}
private void disable()
{
pluginManager.disablePlugin(this);
}
2022-10-21 12:47:14 +02:00
}