Основные методы
Интерфейс FlectonePulse является главной точкой входа для взаимодействия с проектом. Он предоставляет доступ к системе внедрения зависимостей (Google Guice) и управляет жизненным циклом.
Таблица методов
| Метод | Возвращает |
|---|---|
get(Class<T>) | T |
isReady() | boolean |
getInjector() | Injector или null |
reload() | void |
closeUIs() | void |
initPacketAdapter() | void |
terminatePacketAdapter() | void |
terminateFailedPacketAdapter() | void |
throwInitException(Exception) | void |
onEnable() / onDisable() / reload() | void |
Получение экземпляра
import net.flectone.pulse.FlectonePulse;
import net.flectone.pulse.FlectonePulseAPI;
FlectonePulse flectonePulse = FlectonePulseAPI.getInstance();Основные методы
get(Class<T> type)
Перед вызовом get() убедись, что инжектор готов, используя isReady()
Возвращает экземпляр указанного класса через Guice. Большинство сервисов помечены как @Singleton
FLogger logger = flectonePulse.get(FLogger.class);
MessageModule messageModule = flectonePulse.get(MessageModule.class);isReady()
Проверяет, инициализирован ли инжектор зависимостей
if (flectonePulse.isReady()) {
// безопасно вызываем get()
FLogger logger = flectonePulse.get(FLogger.class);
logger.info("API готов к работе");
} else {
// FlectonePulse ещё не загружен
}getInjector()
Возвращает сам объект Injector (может быть null до инициализации). Обычно не требуется напрямую
reload()
Перезагружает конфигурацию плагина. Выбрасывает ReloadException при ошибке
try {
flectonePulse.reload();
getLogger().info("Плагин перезагружен");
} catch (ReloadException e) {
getLogger().severe("Ошибка перезагрузки: " + e.getMessage());
}closeUIs()
Закрывает все открытые пользовательские интерфейсы (инвентари, диалоги)
throwInitException(Exception e)
Вспомогательный метод для выброса InitException с усечением длинных сообщений (до 25 строк в production-режиме)
try {
// опасная операция
throw new RuntimeException("Очень длинный текст");
} catch (Exception e) {
flectonePulse.throwInitException(e); // всегда выбрасывает InitException
}Методы PacketAdapter
Используются для инициализации и завершения работы сетевого адаптера (вызываются автоматически)
// Инициализация
flectonePulse.initPacketAdapter();
// Принудительное завершение при ошибке инициализации
flectonePulse.terminateFailedPacketAdapter();
// Нормальное завершение
flectonePulse.terminatePacketAdapter();Внутренние методы (onEnable, onDisable, reload)
Эти методы вызываются самим плагином во время включения/выключения или перезагрузки
Примечания
- Для 95% задач вам достаточно
get(Class)и изредкаreload() - Всегда проверяйте
isReady()перед вызовомget() - Методы
PacketAdapterиthrowInitExceptionнужны только для низкоуровневой интеграции - Исключения
ReloadExceptionиInitExceptionтребуют обработки или проброса
Последнее обновление
Редактировать на GitHub
FlectonePulse