118 lines
3.4 KiB
Java
118 lines
3.4 KiB
Java
package me.paradoxpixel.themepark;
|
|
|
|
import me.paradoxpixel.themepark.attraction.AttractionMenu;
|
|
import me.paradoxpixel.themepark.attraction.sign.SignManager;
|
|
import me.paradoxpixel.themepark.attraction.status.StatusManager;
|
|
import me.paradoxpixel.themepark.command.MenuCommand;
|
|
import me.paradoxpixel.themepark.command.ThemeParkCommand;
|
|
import me.paradoxpixel.themepark.config.YamlConfig;
|
|
import me.paradoxpixel.themepark.database.DatabaseHandler;
|
|
import me.paradoxpixel.themepark.gui.GUIListener;
|
|
import me.paradoxpixel.themepark.listener.ClickListener;
|
|
import me.paradoxpixel.themepark.listener.ChangeListener;
|
|
import me.paradoxpixel.themepark.listener.PlayerListener;
|
|
import me.paradoxpixel.themepark.listener.SignListener;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.command.CommandMap;
|
|
import org.bukkit.plugin.PluginManager;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import java.lang.reflect.Field;
|
|
|
|
public class ThemeParkPlugin extends JavaPlugin {
|
|
|
|
private static ThemeParkPlugin instance;
|
|
private YamlConfig settings, attraction, message, signs, data;
|
|
private DatabaseHandler database;
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
instance = this;
|
|
loadConfig();
|
|
loadListener();
|
|
loadCommand();
|
|
loadData();
|
|
loadDatabase();
|
|
}
|
|
|
|
private void loadConfig() {
|
|
settings = new YamlConfig("settings", this);
|
|
attraction = new YamlConfig("attraction", this);
|
|
message = new YamlConfig("message", this);
|
|
signs = new YamlConfig("signs", this);
|
|
data = new YamlConfig("data", this);
|
|
}
|
|
|
|
private void loadData() {
|
|
StatusManager.load();
|
|
AttractionMenu.load();
|
|
}
|
|
|
|
private void loadDatabase() {
|
|
database = new DatabaseHandler(settings);
|
|
}
|
|
|
|
private void loadCommand() {
|
|
getCommand("status").setExecutor(new MenuCommand());
|
|
|
|
String command = settings.getConfig().getString("command");
|
|
if(command == null || command.isEmpty())
|
|
return;
|
|
|
|
try {
|
|
final Field bukkitCommandMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
|
|
|
|
bukkitCommandMap.setAccessible(true);
|
|
CommandMap commandMap = (CommandMap) bukkitCommandMap.get(Bukkit.getServer());
|
|
|
|
commandMap.register(command, new ThemeParkCommand(command));
|
|
} catch(ReflectiveOperationException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
private void loadListener() {
|
|
PluginManager pm = Bukkit.getPluginManager();
|
|
pm.registerEvents(new GUIListener(), this);
|
|
pm.registerEvents(new ClickListener(), this);
|
|
pm.registerEvents(new ChangeListener(), this);
|
|
pm.registerEvents(new SignListener(), this);
|
|
pm.registerEvents(new PlayerListener(), this);
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
AttractionMenu.save();
|
|
SignManager.saveSigns();
|
|
database.disconnect();
|
|
instance = null;
|
|
}
|
|
|
|
public static ThemeParkPlugin getInstance() {
|
|
return instance;
|
|
}
|
|
|
|
public YamlConfig getSettings() {
|
|
return settings;
|
|
}
|
|
|
|
public YamlConfig getAttraction() {
|
|
return attraction;
|
|
}
|
|
|
|
public YamlConfig getMessage() {
|
|
return message;
|
|
}
|
|
|
|
public YamlConfig getSigns() {
|
|
return signs;
|
|
}
|
|
|
|
public YamlConfig getData() {
|
|
return data;
|
|
}
|
|
|
|
public DatabaseHandler getDatabaseHandler() {
|
|
return database;
|
|
}
|
|
|
|
}
|