LoChat/surce/gradientnick/GradientNick.java

113 lines
3.9 KiB
Java

package ru.lovar.gradientnick;
import org.black_ixx.playerpoints.PlayerPoints;
import org.black_ixx.playerpoints.PlayerPointsAPI;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import ru.lovar.gradientnick.commands.ColorCommand;
import ru.lovar.gradientnick.commands.GradientCommand;
import ru.lovar.gradientnick.commands.PrefixCommand;
import ru.lovar.gradientnick.config.ConfigManager;
import ru.lovar.gradientnick.config.MessagesManager;
import ru.lovar.gradientnick.data.DataManager;
import ru.lovar.gradientnick.hooks.LuckPermsHook;
import ru.lovar.gradientnick.hooks.PlaceholderAPIHook;
import ru.lovar.gradientnick.listeners.GUIListener;
import ru.lovar.gradientnick.listeners.PlayerListener;
public class GradientNick extends JavaPlugin {
private static GradientNick instance;
private PlayerPointsAPI playerPointsAPI;
private ConfigManager configManager;
private MessagesManager messagesManager;
private DataManager dataManager;
private LuckPermsHook luckPermsHook;
@Override
public void onEnable() {
instance = this;
// Инициализация конфигов
this.configManager = new ConfigManager(this);
this.messagesManager = new MessagesManager(this);
// Инициализация хранилища данных
this.dataManager = new DataManager(this);
// Подключение PlayerPoints
if (Bukkit.getPluginManager().isPluginEnabled("PlayerPoints")) {
this.playerPointsAPI = PlayerPoints.getInstance().getAPI();
getLogger().info("PlayerPoints подключен!");
} else {
getLogger().severe("PlayerPoints не найден! Плагин отключается.");
Bukkit.getPluginManager().disablePlugin(this);
return;
}
// Подключение LuckPerms
this.luckPermsHook = new LuckPermsHook(this);
// Подключение PlaceholderAPI
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
new PlaceholderAPIHook(this).register();
getLogger().info("PlaceholderAPI подключен!");
}
// Регистрация команд
ColorCommand colorCommand = new ColorCommand(this);
getCommand("color").setExecutor(colorCommand);
getCommand("color").setTabCompleter(colorCommand);
PrefixCommand prefixCommand = new PrefixCommand(this);
getCommand("prefix").setExecutor(prefixCommand);
getCommand("prefix").setTabCompleter(prefixCommand);
GradientCommand gradientCommand = new GradientCommand(this);
getCommand("aprefix").setExecutor(gradientCommand);
getCommand("aprefix").setTabCompleter(gradientCommand);
// Регистрация слушателей
Bukkit.getPluginManager().registerEvents(new PlayerListener(this), this);
Bukkit.getPluginManager().registerEvents(new GUIListener(this), this);
getLogger().info("LoPreff успешно запущен!");
}
@Override
public void onDisable() {
if (dataManager != null) {
dataManager.saveAll();
}
getLogger().info("LoPreff отключен!");
}
public static GradientNick getInstance() {
return instance;
}
public PlayerPointsAPI getPlayerPointsAPI() {
return playerPointsAPI;
}
public ConfigManager getConfigManager() {
return configManager;
}
public MessagesManager getMessagesManager() {
return messagesManager;
}
public DataManager getDataManager() {
return dataManager;
}
public LuckPermsHook getLuckPermsHook() {
return luckPermsHook;
}
public void reload() {
configManager.reload();
messagesManager.reload();
}
}