Помогите Не функционируют сервисы баккита

  • Автор темы Автор темы swat1x
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

swat1x

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
swat1x
Регистрирую в кор плагине мейн класс в сервисы
upload_2022-1-29_2-19-59.png
Получаю в другом плагине (В depend кор плагин указан)
upload_2022-1-29_2-20-52.png
И тут, бум!
upload_2022-1-29_2-21-53.png
Думаю что это как-то связано с версией 1.16.5, ибо на 1.12.2 это всё функционировало нормально
 
Еслиб это не работало, тогда бы и Vault отвалился, но это не так.
 
Проверь наличие одного плагина от другого в plugin.yml. Один должен заведомо запускаться позже другого
 
Проверь наличие одного плагина от другого в plugin.yml. Один должен заведомо запускаться позже другого
хз, в depend он указан и даже по консоли видно что он загружается раньше, чем дочерний плагин
 
хз, в depend он указан и даже по консоли видно что он загружается раньше, чем дочерний плагин
Регистрировать сервис нужно в onLoad, а не в onEnabe. Ну и проверка на null, что бы получать нормальную ошибку написанную тобой, а не стактрейс.
 
upload_2022-1-29_16-38-39.png
upload_2022-1-29_16-39-29.png

Но при этом есть такой прикольный кусочек
upload_2022-1-29_16-41-20.png
upload_2022-1-29_16-40-25.png
registerService() в onLoad()
 

Вложения

  • upload_2022-1-29_16-40-6.png
    upload_2022-1-29_16-40-6.png
    7,2 КБ · Просмотры: 3
Даже ваулт не получает, не понимаю вообще приколupload_2022-1-29_16-56-30.pngupload_2022-1-29_16-56-38.png
 
Попробуй вынести provider в отдельный класс.
 
в ооп так не работает
Дело не в этом. Как работает Vault: У тебя есть некое абстрактное чудо-юдо в виде Economy.class, и есть реализация этого чуда-юда в виде какого-то плагина который реализует экономику - это и есть провайдер этого самого Economy.class. У тебя же сервис Core и его провайдер (реализация) стоят (на сколько я понял) в одном лице.
 
Дело не в этом. Как работает Vault: У тебя есть некое абстрактное чудо-юдо в виде Economy.class, и есть реализация этого чуда-юда в виде какого-то плагина который реализует экономику - это и есть провайдер этого самого Economy.class. У тебя же сервис Core и его провайдер (реализация) стоят в одном лице.
чё за бред. это передача объектов, значений и всего чего угодно. getProvider() вообще никак с экономикой не связан, это метод, корорый возвращает объект, который на этапе включения сервера был создан в плагине Vault. Стоит разобраться в теме, прежде чем такое высказывать
 
чё за бред. это передача объектов, значений и всего чего угодно. getProvider() вообще никак с экономикой не связан, это метод, корорый возвращает объект, который на этапе включения сервера был создан в плагине Vault. Стоит разобраться в теме, прежде чем такое высказывать
Блин, ну ты бы хотя бы доки почитал. Всё что делает Vault сам по себе на этапе загрузки - регистрирует СЕРВИС. Сервис - это абстракция. Абстракция без реализации, как ты надеюсь знаешь, - не работает. Это причина по который ты выше словил NPE. У тебя нет провайдера Economy.class. Поэтому нужно поставить плагин-провайдер этого сервиса (Economy.class). Как только у сервиса будет провайдер, тогда любой плагин который будет использовать Vault, и следовательно обращаться к сервису, будет работать через провайдер который и реализует сервис. Понятно? Ещё раз, я тебе Vault и плагины на экономику привел только как пример по которым можно понять суть работы сервисов и провайдеров.

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/plugin/ServicesManager.html
https://github.com/scruffyboy13/Economy/blob/main/src/me/scruffyboy13/Economy/EconomyMain.java#L114
https://github.com/MilkBowl/VaultAP.../java/net/milkbowl/vault/economy/Economy.java
 

Вложения

  • upload_2020-3-2_13-40-58.png
    upload_2020-3-2_13-40-58.png
    27 КБ · Просмотры: 5
Короче, просто сделай интерфейс Core, засунь туда какие тебе угодно нужные методы, и в том же плагине сделай CoreImpl который реализует Core. И зарегай нормально: getServer().getServicesManager().register(Core.class, new CoreImpl(), this, ServicePriority.HIGH);
 
Короче, просто сделай интерфейс Core, засунь туда какие тебе угодно нужные методы, и в том же плагине сделай CoreImpl который реализует Core. И зарегай нормально: getServer().getServicesManager().register(Core.class, new CoreImpl(), this, ServicePriority.HIGH);
Причина ещё смешнее. Я поменял версию на 1.12.2 и всё заработало
unknown.png


UPD: Это уже другие плагины но в них была та же самая проблема
 
Причина ещё смешнее. Я поменял версию на 1.12.2 и всё заработало
unknown.png


UPD: Это уже другие плагины но в них была та же самая проблема
Версия тут не причем, я переодически тестирую все ласт версии серверов и всегда все работает. Проблема где то в твоих клешнях.
 
Версия тут не причем, я переодически тестирую все ласт версии серверов и всегда все работает. Проблема где то в твоих клешнях.
Плюсую. У меня все спокойно работает на 1.18.
 

Вложения

  • 2022-01-30-133125_945x426_scrot.png
    2022-01-30-133125_945x426_scrot.png
    196,5 КБ · Просмотры: 8
  • 2022-01-30-133031_854x443_scrot.png
    2022-01-30-133031_854x443_scrot.png
    46,9 КБ · Просмотры: 7
  • 2022-01-30-134119_841x619_scrot.png
    2022-01-30-134119_841x619_scrot.png
    64,5 КБ · Просмотры: 7
Версия тут не причем, я переодически тестирую все ласт версии серверов и всегда все работает. Проблема где то в твоих клешнях.
1.12.2 ставлю - всё работает. Меняю обратно на 1.16.5 - перестаёт работать. Ну не может же быть в коде проблема
 
Версия тут не причем, я переодически тестирую все ласт версии
Тогда хз, можешь показать что и как ты делаешь, ибо у меня дела уже до абсурда идут. Я сделал 2 плагина пустых. Первый регистрирует класс, второй принимает, и тут снова эта херь. Я уже не знаю что делать
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх