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

81 lines
2.6 KiB
Java

package wtf.beatrice.nounspicker;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import wtf.beatrice.nounspicker.commands.NounsCommand;
import wtf.beatrice.nounspicker.objects.PAPIManager;
import wtf.beatrice.nounspicker.objects.TabCompletion;
import wtf.beatrice.nounspicker.utils.Cache;
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
{
private static NounsPicker instance;
private PluginManager pluginManager;
private final ConsoleLogger logger = new ConsoleLogger(getClass());
@Override
public void onEnable()
{
logger.log("Loading plugin!");
pluginManager = getServer().getPluginManager();
instance = this;
// register PlaceholderAPI
if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
new PAPIManager(this).register();
logger.log("PlaceholderAPI integration loaded!");
} else {
logger.err("Missing PlaceholderAPI! The plugin cannot continue.");
disable();
return;
}
logger.log("Registering commands...");
getCommand("nouns").setExecutor(new NounsCommand(this));
getCommand("nouns").setTabCompleter(new TabCompletion());
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);
if(dbManager.connect() && dbManager.initDb())
{
logger.log("Database connection initialized!");
Cache.dbManager = dbManager;
Cache.pronouns = dbManager.getAllPronouns();
logger.log("Database data loaded into memory!");
} else {
logger.err("Error initializing database connection!");
}
logger.log("Plugin loaded!");
}
public static NounsPicker getInstance()
{
return instance;
}
private void disable()
{
pluginManager.disablePlugin(this);
}
}