1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как использовать методы одного плагина в другом

Тема в разделе "Разработка плагинов для новичков", создана пользователем RoyalCraft, 6 апр 2024.

Статус темы:
Закрыта.
  1. Автор темы
    RoyalCraft

    RoyalCraft Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Stressless
    Например, есть плагин PluginAPI с 1м классом. В его главный класс прописываю следующее:


    Код:
     
    
    public final class PluginAPI extends JavaPlugin {
    
    
        public static PluginAPI instance;
        public static GeneralHelper helper;
    
        @Override
        public void onEnable() {
            instance = this;
            helper = new GeneralHelper();
        }
    
        public static PluginAPI getInstance() {
            return instance;
        }
    
    
        public static GeneralHelper getHelper() {
            return helper;
        }
    
        @Override
        public void onDisable() {
            // Plugin shutdown logic
        }
    }
    
    Есть второй PluginMain плагин с таким кодом главного класса:


    Код:
    public final class PluginMain extends JavaPlugin {
    
        public static PluginMain instance;
    
        @Override
        public void onEnable() {
            instance = this;
     
            Bukkit.getConsoleSender().sendMessage(PluginAPI.getHelper().colorizedMsg("&6test"));
        }
    
        public static PluginMain getInstance() {
            return instance;
        }
    
        @Override
        public void onDisable() {
            // Plugin shutdown logic
        }
    }
    Первый плагин во втором виден, все его методы доступны и т.п.
    Однако, когда пытаюсь выполнить
    Код:
     Bukkit.getConsoleSender().sendMessage(EventAPI.getHelper().colorizedMsg("&6test"));
    Получаю ошибку вида:

    Код:
    Cannot invoke "ru.test.pluginapi.GeneralHelper.colorizedMsg(String)" because the return value of "ru.test.pluginapi.PluginAPI.getHelper()" is null
    Укажите, пожалуйста, в чем моя ошибка. Может вообще в неправильном направлении двигаюсь
     
  2. Автор темы
    RoyalCraft

    RoyalCraft Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Stressless
    В общем

    Код:
    public final class PluginAPI extends JavaPlugin {
    
        public static PluginAPI instance;
    
        @Override
        public void onEnable() {
            instance = this;
        }
    
        public static PluginAPI getInstance() {
            return instance;
        }
    
        public static GeneralHelper getHelper() {
            return new GeneralHelper();
        }
    
        @Override
        public void onDisable() {
            // Plugin shutdown logic
        }
    }

    Во втором плагине вызвал метод getHelper() и все работает. Может надо было не так, но мою проблему решило
     
Статус темы:
Закрыта.

Поделиться этой страницей