package me.gtacraft.npccore;
import me.gtacraft.npccore.controllers.ConfigController;
import me.gtacraft.npccore.controllers.EntityController;
import me.gtacraft.npccore.controllers.ThreadController;
import me.gtacraft.npccore.listeners.EntityListener;
import me.gtacraft.npccore.listeners.ServerListener;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import java.lang.reflect.Method;
/**
* Created by devan_000 on 4/28/2014.
*/
public class GTANPCCore extends JavaPlugin {
private static GTANPCCore plugin;
public static GTANPCCore get() {
return plugin;
}
private PluginDescriptionFile pdfFile = null;
public ConfigController configController = null;
public ThreadController threadController = null;
public EntityController entityController = null;
public BukkitTask aSyncCalculationThread = null;
public BukkitTask mobSpawnThread = null;
@Override
public void onEnable() {
plugin = this;
pdfFile = getDescription();
log("Plugin version " + pdfFile.getVersion() + " starting");
loadControllers();
this.configController.onEnable();
this.threadController.onEnable();
registerEvents();
log("Plugin version " + pdfFile.getVersion() + " started");
}
@Override
public void onDisable() {
log("Plugin version " + pdfFile.getVersion() + " stopping");
log("Plugin version " + pdfFile.getVersion() + " shutdown");
}
private void log(String message) {
getLogger().info(message);
}
private void loadControllers() {
this.configController = new ConfigController();
this.threadController = new ThreadController();
this.entityController = new EntityController();
}
private void registerEvents() {
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new ServerListener(), this);
pm.registerEvents(new EntityListener(), this);
}
}