Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Плагин ProtocolBoard v1.0 - скорборды на ProtocolLib [1.8+]

Тема в разделе "Неподтвержденные плагины", создана пользователем DonDays, 1 окт 2017.

  1. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    ProtocolBoard v1.0 - борд, не конфликтующий с любыми тегами/хпбаром. Плагин работает на ProtocolLib, и завершает линию плагинов, в которую входят ProtocolTags, ProtocolHealthbar, и, разумеется, ProtocolBoard. Сейчас плагин работает как API для разработчиков, но, в ближайшее время, его можно будет использовать как ScoreboardStats и подобные плагины.

    ChangeLog:
    1.0:
    - Релиз


    Особенности:
    - Не конфликтует с тегами, хпбаром и всем, что связанно с этой областью
    - Удобное API


    GitHub: https://github.com/DonDays/ProtocolBoard
    Багтрекер: https://github.com/DonDays/ProtocolBoard/issues
    Скачать: GitHub Releases (кликабельно)
     
    Последнее редактирование: 1 окт 2017
  2. Mr Hosting
  3. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Работа с API
    С API ProtocolBoard работать очень просто, на данный момент есть два враппера для работы: персональный борд, который удалится после выхода игрока-владельца борда, и обычный.

    Начнем с создания обычного борда.
    Здесь есть два варианта: создавать его билдером (предпочтительный вариант), и менее удобный - через класс Board. Ну что, начнем.

    Создадим борд:
    Код:
    Board board = new Board("§e§lМой Scoreboard");
    Единственный параметр конструктора класса Board - его тайтл, иными словами DisplayName - его первая строчка. Но мы будем рассматривать создания скорборда через билдер. Итак, создаем борд с DisplayName и линиями:
    Код:
    Board scoreboard = Board.getBuilder("§e§lМой Scoreboard")
    .write(4, "")
    .write(3, "Линия")
    .write(2, "")
    .write(1, "§ewww.mysite.ru")
    .build();
    Да, задумываться о повторяющихся линиях не нужно - API сделает это за нас. Но, если мы хотим менять значения линий, нам нужен апдейтер. Как его создать?
    Код:
    Board scoreboard = Board.getBuilder("§e§lМой Scoreboard")
    .write(4, "")
    .write(3, "Линия")
    .write(2, "")
    .write(1, "§ewww.mysite.ru")
    .updater(40L, board -> {
    board.setDisplay("§e§lНовое имя борда");
    board.modifyLine(3, "Текущее время: §a" + Bukkit.getWorlds().get(0).getTime());
    })
    .build();
    Этот простой код обновит заглавие нашего борда и третью линию - отобразит время первичного мира в тиках. Что значит 40L? Это интервал обновления в тиках. (20 тиков = 1 секунда).
    Наш скорборд готов - теперь мы можем отправить его игрокам:
    Код:
    scoreboard.send(player);
    player - переменная игрока. Если вы хотите отправить борд всем игрокам онлайн с помощью цикла/форича переберите всех игроков сервера и отправьте им борд.
    Однако, новые игроки его не увидят. Поэтому, выносим board в статичную переменную, и при входе игрока шлем ему борд.

    Создание персонального борда идентично этому, просто получайте билдер так:
    Код:
    Board.getPersonalBuilder("§e§lМой борд", player)
    Надеюсь, все было понятно, хотя, конечно, не очень. Если у вас есть вопросы - задавайте их в теме.
     
    Последнее редактирование: 12 окт 2017
  4. Saharo4ek

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

    Баллы:
    76
    Имя в Minecraft:
    tin
    Не наоборот?
     
  5. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    ой
     
  6. FlamestoN

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

    Баллы:
    66
    Skype:
    flameston
    Имя в Minecraft:
    FlamestoN
    20 тиков = 1 секунда
     
  7. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Долго ждал, не надеялся, но дождался =)
    Люблю тебя.
     
  8. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    :good:
     
  9. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Годно, годно... Что уж тут сказать.
     
  10. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    • Исправление ошибок
     
  11. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
     
  12. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    ору, опять запутался, исправил
     
  13. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Could not pass event PlayerQuitEvent to ProtocolBoard v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[server.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerList.disconnect(PlayerList.java:348) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:871) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.NetworkManager.l(NetworkManager.java:314) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:145) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:814) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] Caused by: java.lang.NullPointerException
     
  14. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Ниже есть что-то?
     
  15. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    -, мне не фулл эксепш выкинуло. Могу найти фулл, со строкой, если надо.
     
  16. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Последний билд стоит? PlayerQuitEvent нигде не слушается
     
  17. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    +, последний.
     
  18. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    поищи полный стектрейс, я не использую PlayerQuitEvent, разве что в тех местах, где NPE не может вылезти
     
  19. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    [22:35:01 ERROR]: Could not pass event PlayerQuitEvent to ProtocolBoard v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[server.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerList.disconnect(PlayerList.java:348) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:871) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.NetworkManager.l(NetworkManager.java:312) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:145) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:814) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] Caused by: java.lang.NullPointerException at ru.dondays.protocolboard.common.TaskManager.cancel(TaskManager.java:51) ~[?:?] at ru.dondays.protocolboard.api.Board.remove(Board.java:67) ~[?:?] at ru.dondays.protocolboard.api.PersonalBoard.remove(PersonalBoard.java:38) ~[?:?] at ru.dondays.protocolboard.api.PersonalBoard.onQuit(PersonalBoard.java:25) ~[?:?] at sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_144] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_144] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[server.jar:git-Spigot-db6de12-18fbb24] ... 12 more
     
  20. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    fixed
     
  21. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    if(updateThread == null || !updateThread.isAlive()) return;
     

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