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.Manager;
import gq.unurled.raxen.utils.Reload;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;
import static gq.unurled.raxen.utils.Utils.colorComp;
public final class Raxen extends JavaPlugin {
private static final String prefix = "Rx> ";
@Getter
private static String version = "0.4.9";
private final PluginManager pm = getServer().getPluginManager();
private static Raxen plugin;
private static Logger logger;
private static Config config;
private static PlayerConfig playerConfig;
@Getter
private ProtocolManager protocolManager;
@Getter
private Manager manager;
@Override
public void onEnable() {
plugin = this;
logger = getLogger();
version = plugin.getDescription().getVersion();
manager = new Manager();
manager.set(plugin);
// Config
config = new Config(plugin);
protocolManager = ProtocolLibrary.getProtocolManager();
playerConfig = new PlayerConfig(plugin);
//register Commands and Events
registerCommands();
registerEvents();
Bukkit.getConsoleSender().sendMessage(colorComp(prefix +"Server Started Successfully!"));
manager.getListenerManager().getServerPingEvent().setLoading(false);
}
private void registerCommands() {
manager.getCommandManager().register();
Bukkit.getConsoleSender().sendMessage(colorComp(prefix +"Commands Registered!"));
}
private void registerEvents() {
manager.getListenerManager().register();
Bukkit.getConsoleSender().sendMessage(colorComp(prefix +"Events Registered!"));
}
@Override
public void onDisable() {
manager.getListenerManager().getServerPingEvent().setLoading(true);
Reload.kickAll();
playerConfig.close();
Bukkit.getConsoleSender().sendMessage(colorComp(prefix +"Server Stopped Successfully!"));
}
public static Logger getPluginLogger() {
return logger;
}
public PluginManager getPm() {
return pm;
}
public static Raxen getPlugin() {
return plugin;
}
public static String getPrefix() {
return prefix;
}
public static PlayerConfig getPlayerConfig() {
return playerConfig;
}
public static Config getConf() {
return config;
}
}