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

PlaceholderAPI выдает ошибку

Тема в разделе "Разработка плагинов для новичков", создана пользователем VladNotch, 15 июн 2023.

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

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

    Баллы:
    76
    Выдает вот такую ошибку.
    Код:
    java.lang.NullPointerException: Cannot invoke "me.clip.placeholderapi.PlaceholderAPIPlugin.getLocalExpansionManager()" because the return value of "me.clip.placeholderapi.PlaceholderAPIPlugin.getInstance()" is null
    При том, плейсхолдерапи добавлен в библиотеки проекта.
    В чем может быть проблема?
    upload_2023-6-15_20-56-38.png
     
  2. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    В том, что твой плагин загружается до PAPI. Корректно укажи зависимость в PAPI
     
  3. Автор темы
    VladNotch

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

    Баллы:
    76
    Разве если я укажу в plugin.yml
    Код:
    depend:
      - PlaceholderAPI
    он не должен сначала ждать запуска PAPI? Что именно мне нужно тогда сделать?
     
  4. Автор темы
    VladNotch

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

    Баллы:
    76
    upload_2023-6-15_22-3-26.png
    И по идеи, он запускается раньше, чем мой плагин.
     
    Последнее редактирование: 15 июн 2023
  5. Автор темы
    VladNotch

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

    Баллы:
    76
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Значит проблема в другом. Показывай код
     
  7. Автор темы
    VladNotch

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

    Баллы:
    76
    Какой именно? Главный класс?
     
  8. Автор темы
    VladNotch

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

    Баллы:
    76
    Дело вероятно не в коде. Я просто везде использую
    PlaceholderAPI.setPlaceholders().
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Тот, при вызове которого возникает ошибка.

    Показывай полную ошибку значит
     
  10. Автор темы
    VladNotch

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

    Баллы:
    76
    HTML:
    [15:50:07 WARN]: [TestPlugin] Plugin TestPlugin v0.0.1 generated an exception whilst handling plugin message
    java.lang.NullPointerException: Cannot invoke "me.clip.placeholderapi.PlaceholderAPIPlugin.getLocalExpansionManager()" because the return value of "me.clip.placeholderapi.PlaceholderAPIPlugin.getInstance()" is null
            at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:72) ~[bukkit.jar:?]
            at me.clip.placeholderapi.PlaceholderAPI.lambda$setPlaceholders$0(PlaceholderAPI.java:86) ~[bukkit.jar:?]
            at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
            at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
            at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
            at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
            at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:86) ~[bukkit.jar:?]
            at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:112) ~[bukkit.jar:?]
            at su.frontalvlad.bukkit.gui.items.FriendsItems.getButton(FriendsItems.java:126) ~[bukkit.jar:?]
            at su.frontalvlad.bukkit.gui.items.FriendsItems.getFriends(FriendsItems.java:50) ~[bukkit.jar:?]
            at su.frontalvlad.bukkit.gui.FriendsGUI.<init>(FriendsGUI.java:26) ~[bukkit.jar:?]
            at su.frontalvlad.bukkit.listeners.PluginMessageListener.onPluginMessageReceived(PluginMessageListener.java:26) ~[bukkit.jar:?]
            at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:455) ~[paper-api-1.19.1-R0.1-SNAPSHOT.jar:?]
            at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCustomPayload(ServerGamePacketListenerImpl.java:3682) ~[?:?]
            at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:37) ~[?:?]
            at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:15) ~[?:?]
            at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
            at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
            at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
            at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1359) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:185) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
            at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1336) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1329) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
            at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1307) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1195) ~[paper-1.19.1.jar:git-Paper-111]
            at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.1.jar:git-Paper-111]
            at java.lang.Thread.run(Thread.java:833) ~[?:?]
    
    Та 126 строка, которая вызывает ошибку. Сразу скажу, что значение в конфиге присутствует точно, option, plr и description также не равны null.
    PHP:
    description.addAll(PlaceholderAPI.setPlaceholders(plrconfiguration.getStringList(String.format("gui.items.%s.lore"option))));
     
  11. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    В ошибке плагин называется TestPlugin, в логах запуска его вообще не видно
     
  12. Автор темы
    VladNotch

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

    Баллы:
    76
    jar называется bukkit, и артефакт тоже. Я пробовал менять название, не помогло.
     
  13. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    1) Убедись, что твой плагин запускается после PAPI. По предоставленной тобой информации нельзя достоверно сказать, так ли это
    2) Убедись, что установлена последняя версия ядра и PAPI
    3) Убедись, что в джарник своего плагина НЕ добавляешь классы PAPI
    4) Протестируй, работает ли всё, если отключить все плагины кроме твоего и PAPI
     
  14. Автор темы
    VladNotch

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

    Баллы:
    76
    1)
    PHP:
    if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
                
    this.getServer().getLogger().info("PlaceholderAPI plugin found and working.");
            }
    upload_2023-6-16_3-18-56.png
    2)Ядро у меня 1.19.4. PlaceholderAPI 2.11.3 (последняя версия)
    3) Я опять же говорю, я использую там только PlaceholderAPI.setPlaceholders();
    4) Кроме PlaceholderAPI и моего плагина, там стоит лишь HeadDatabase, который также входит в зависимости плагина и стабильно работает.

    Писал кстати в HelpChat, мне там только советовали обновить зависимости Maven, и т.д. и т.п., что также не помогло.
     
  15. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Причём тут это? Я говорю проверить, что в джарнике твоего плагина нет классов PAPI. Архиватором открой и посмотри
     
  16. Автор темы
    VladNotch

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

    Баллы:
    76
    upload_2023-6-16_3-44-20.png
     
  17. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну вот и причина. Используешь классы из своего джарника, а надо из ядра. Исключи из своего плагина PAPI
     
  18. Автор темы
    VladNotch

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

    Баллы:
    76
    Так ведь он не позволит мне его забилдить.
     
  19. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну так ты зависимость оставь, только из джарника исключи
     
  20. Автор темы
    VladNotch

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

    Баллы:
    76
    Понял, спасибо огромное :good: Просто почему-то раньше даже когда он зависимостях был, все работало нормально, сейчас удалил из jar, заработало. Еще раз спасибо, закрываю тему.
     
Статус темы:
Закрыта.

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