2022-10-21 12:47:14 +02:00
|
|
|
package wtf.beatrice.nounspicker;
|
|
|
|
|
2022-10-21 23:58:52 +02:00
|
|
|
import org.bukkit.Bukkit;
|
2022-10-21 12:57:41 +02:00
|
|
|
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-22 00:14:33 +02:00
|
|
|
import wtf.beatrice.nounspicker.utils.ConsoleLogger;
|
2022-10-22 16:29:32 +02:00
|
|
|
import wtf.beatrice.nounspicker.utils.DatabaseManager;
|
|
|
|
import wtf.beatrice.nounspicker.utils.FileManager;
|
|
|
|
|
|
|
|
import java.io.File;
|
2022-10-21 12:57:41 +02:00
|
|
|
|
|
|
|
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;
|
2022-10-21 12:57:41 +02:00
|
|
|
private PluginManager pluginManager;
|
2022-10-22 00:14:33 +02:00
|
|
|
private final ConsoleLogger logger = new ConsoleLogger(getClass());
|
2022-10-21 12:57:41 +02:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onEnable()
|
2022-10-21 12:47:14 +02:00
|
|
|
{
|
2022-10-22 00:14:33 +02:00
|
|
|
logger.log("Loading plugin!");
|
|
|
|
|
2022-10-21 12:57:41 +02:00
|
|
|
pluginManager = getServer().getPluginManager();
|
2022-10-21 23:58:52 +02:00
|
|
|
instance = this;
|
2022-10-21 12:57:41 +02:00
|
|
|
|
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.");
|
2022-10-22 16:29:32 +02:00
|
|
|
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!");
|
|
|
|
|
2022-10-22 16:29:32 +02:00
|
|
|
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())
|
2022-10-22 16:29:32 +02:00
|
|
|
{
|
|
|
|
logger.log("Database connection initialized!");
|
|
|
|
} 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
|
|
|
}
|
2022-10-22 16:29:32 +02:00
|
|
|
|
|
|
|
private void disable()
|
|
|
|
{
|
|
|
|
pluginManager.disablePlugin(this);
|
|
|
|
}
|
2022-10-21 12:47:14 +02:00
|
|
|
}
|