package gq.unurled.raxen;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import gq.unurled.raxen.config.Config;
import gq.unurled.raxen.config.PlayerConfig;
import gq.unurled.raxen.manager.*;
import gq.unurled.raxen.utils.LuckPerm;
import gq.unurled.raxen.utils.Reload;
import gq.unurled.raxen.utils.Vault;
import lombok.Getter;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;
import static gq.unurled.raxen.utils.Utils.colorTextComp;
public final class Raxen extends JavaPlugin {
private static final TextComponent prefix = colorTextComp("Rx> ");
@Getter
private static String version = "0.4.7";
private final PluginManager pm = getServer().getPluginManager();
private static Raxen plugin;
private static Logger logger;
private static Config config;
private static WorldManager worldManager;
@Getter
private static StorageManager storageManager;
private static PlayerManager playerManager;
private static PlayerConfig playerConfig;
private static ListenerManager listenerManager;
@Getter
private static CommandManager commandManager;
@Getter
private gq.unurled.raxen.manager.ProtocolManager protoManager;
@Getter
private ItemManager itemManager;
@Getter
private ResourcePackManager resourcePackManager;
@Getter
private LootManager lootManager;
@Getter
private ProtocolManager protocolManager;
@Getter
public LuckPerm luckPerm;
@Getter
public Vault vault;
@Override
public void onEnable() {
plugin = this;
logger = getLogger();
version = plugin.getDescription().getVersion();
//Config and storage sruff
config = new Config(this);
worldManager = new WorldManager(this);
storageManager = new StorageManager(this);
//Managers
itemManager = new ItemManager(this);
playerManager = new PlayerManager(this);
listenerManager = new ListenerManager(this);
commandManager = new CommandManager(this);
protocolManager = ProtocolLibrary.getProtocolManager();
protoManager = new gq.unurled.raxen.manager.ProtocolManager(this);
resourcePackManager = new ResourcePackManager(this);
lootManager = new LootManager(this);
playerConfig = new PlayerConfig(this);
luckPerm = new LuckPerm(this);
luckPerm.register();
vault = new Vault(this);
//register Commands and Events
registerCommands();
registerEvents();
getServer().getConsoleSender().sendMessage(colorTextComp(prefix +"Server Started Successfully!"));
listenerManager.getServerPingEvent().setLoading(false);
}
private void registerCommands() {
commandManager.register();
getServer().getConsoleSender().sendMessage(colorTextComp(prefix +"Commands Registered!"));
}
private void registerEvents() {
listenerManager.register();
getServer().getConsoleSender().sendMessage(colorTextComp(prefix +"Events Registered!"));
}
@Override
public void onDisable() {
listenerManager.getServerPingEvent().setLoading(true);
Reload.kickAll();
playerConfig.close();
getServer().getConsoleSender().sendMessage(colorTextComp(prefix +"Server Stopped Successfully!"));
}
public static Logger getPluginLogger() {
return logger;
}
public PluginManager getPm() {
return pm;
}
public static Raxen getPlugin() {
return plugin;
}
public static TextComponent getPrefix() {
return prefix;
}
public static PlayerManager getPlayerManager() {
return playerManager;
}
public static PlayerConfig getPlayerConfig() {
return playerConfig;
}
public static Config getConf() {
return config;
}
}