Подключение апи

  • Автор темы Автор темы Akultist
  • Дата начала Дата начала

Akultist

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
Name
У меня есть апи созданное мной. (Просто набор метод полезных для создания, например регистрация команд без plugin.yml и.т.д). Так-же есть обычный плагин.
Так вот, подключаю я всё это вот так:
ГЛАВНЫЙ КЛАСС МОЕГО ПЛАГИНА:
Код:
public final class MainClass extends JavaPlugin {

    private static Main mainAPIClass = (Main) Bukkit.getServer().getPluginManager().getPlugin("DefaultAPI"); //Главный класс плагина API
    private static MainAPI api; //Главный класс API
    private static ConfigManager cfgManager; //Конфиг мэнеджер который находится в API
    private static boolean mysql; //неважно
    private static ConnectionManager cm; //Управление MySQL

    @Override
    public void onEnable() {
        mainAPIClass.loadApi(this); //Регистрирую этот плагин (это понадобится в далнейшем, например при создания конфига)
        api = mainAPIClass.getApi(); //Получаю API
        cfgManager = new ConfigManager(); //Создаю новый ConfigManager
        FileSetting.fillFiles(); //Неважно
        if (cfgManager.get("config").get().getBoolean("mysql")) { //MySQL, (Загрузка, создавание нужных таблиц (так-же с помощью API))
            mysql = true;
            CustomConfig config = cfgManager.get("config");
            api.loadMysql(config.get().getString("host"), config.get().getString("port"), config.get().getString("database"), config.get().getString("table"), config.get().getString("username"), config.get().getString("password"), "&7p&cRank&7] &4ERROR MYSQL!",
                    "CREATE TABLE IF NOT EXISTS " + config.get().getString("table_rank") + " (Rank VARCHAR(20),PathPermissions VARCHAR(50),Default BOOLEAN,Prefix_Chat VARCHAR(50),Prefix_Tab VARCHAR(16)" ,this);
            cm = api.getMysql();
            cm.update("CREATE TABLE IF NOT EXISTS " + config.get().getString("table") + " (UUID VARCHAR(50),Prefix_Chat VARCHAR(50),Prefix_Tab VARCHAR(16),Rank VARCHAR(20)");
        }
    }

    @Override
    public void onDisable() {
        
    }

    public static MainAPI getApi() {
        return api;
    }

    public static ConfigManager getCfgManager() {
        return cfgManager;
    }

    public static boolean isMysql() {
        return mysql;
    }

    public ConnectionManager getConnectionManager() {
        return cm;
    }
}

Главный класс API:

Код:
public final class Main extends JavaPlugin {

    private static JavaPlugin main; //Главный класс регистрируемого плагина
    private MainAPI api; //Апи
    
    public void onEnable() {
        api = new MainAPI();
    }
    
    public void onDisable() {
        
    }
    
    public void loadApi(JavaPlugin plugin) {
        main = plugin;
    }

    public static JavaPlugin getMain() {
        return main;
    }
    
    public MainAPI getApi() {
        return api;
    }
    
}

Так вот, в итоге вот такая вот ошибочка:

Код:
java.lang.NullPointerException: null
        at com.rankplugin.name.MainClass.onEnable(MainClass.java:22) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:382) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:331) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:753) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.Bukkit.reload(Bukkit.java:525) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:649) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:635) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [Spigot.jar:git-Spigot-3d850ec-809c399]
        at java.lang.Thread.run(Thread.java:844) [?:?]

22 строка:
Код:
mainAPIClass.loadApi(this);

Оба плагина присутствуют на сервере, так-же все библиотеки подключены. В итоге api грузится а плагин rank нет. Я так понимаю он даже найти его не может. P.S с апи первый раз работаю, не судите строго.
 
Вопрос решен. Я просто mainAPIClass обозначил в onEnable();

P.S -
Код:
private Main mainAPIClass;

public void onEnable() {
  mainAPIClass = (Main) Bukkit.getServer().getPluginManager().getPlugin("DefaultAPI");
}

А так-же в plugin.yml написал: depend: [DefaultAPI]
 
Последнее редактирование:
Назад
Верх