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

Плагин [DEV] BungeeBossBarAPI v1.1.2 - BossBarAPI для BungeeCord | 1.9-1.12.2 | Open Source

Тема в разделе "Неподтвержденные плагины", создана пользователем VentiKLay, 13 мар 2018.

?

Оценка

  1. 5

    36,8%
  2. 4

    0 голосов
    0,0%
  3. 3

    0 голосов
    0,0%
  4. 2

    0 голосов
    0,0%
  5. 1

    0 голосов
    0,0%
  6. Дабавь паддержку 1.8!11!

    63,2%
  1. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    [​IMG]

    • BungeeBossBarAPI - С помощью данного API вы сможете отправлять игрокам BossBar, который будет выводить определенную информацию. BossBar отправляется на прямую к клиенту, не важно какие версии у ваших Bukkit серверов, тут важна версия клиента игрока, ЕСЛИ версия клиента ниже 1.9, то игрок просто не будет видеть ваш BossBar (то есть, динозавры идут по тропикам :cry:).
    • Version - 1.1.2
    • Команды - Отсутствуют.
    • Права - Отсутствуют.
    • Особенности:
    1. Легок в использовании
    2. Автоматическое форматирование титла вашего бара в JSON формат
    3. Гибкая настройка вашего BossBar'а (возможность настроить: цвет, стиль, прогресс, и даже можно установить определенные флаги)
    • Работа с API: Итак, все предельно просто, для начала добавим наше API в библиотеку (думаю все знают как это делать), теперь приступаем:
    Для начала дадим ссылку на класс BossBar (me.ventiklay.bossbar.api.BossBar):
    PHP:
    package me.ventiklay.bungee.bossbar;

    import me.ventiklay.bungee.bossbar.api.BossBar;

    public class 
    Example {

        public 
    void example() {
            
    // получаем ключ к классу, для использования API
            
    BossBar.getKey();
        }
    }

    Отлично, теперь обращаемся к методу create():

    PHP:
    package me.ventiklay.bungee.bossbar;

    import me.ventiklay.bungee.bossbar.api.BossBar;

    public class 
    Example {

        public 
    void example() {
            
    BossBar.getKey().create(playertitlecolorstyleprogressflag);
        }
    }

    Итак, теперь все разберем по полочкам:

    PHP:
    player:
       
    //Игрок которому мы будем отправлять наш бар

    title:
       
    //Текст который мы будем выводить на наш бар, но обратите внимание, что текст должен быть исключительно в JSON формате (создавать конструктор для форматирования текста в JSON не нужно, API все сделает за вас, поэтому просто создаем переменную которая будет хранить наш текст)

    сolor:
      
    //Цвет нашего бара, то есть к примеру: BarColor.WHITE - белый цвет, чтобы получить список всех цветов, обращайтесь к классу BarColor (me.ventiklay.bungee.bossbar.api.BarColor)

    style:
      
    //стиль нашего бара, то есть к примеру: BarColor.NONE - самый обычный бар, чтобы получить список всех стилей, обращайтесь к классу BarStyle (me.ventiklay.bungee.bossbar.api.BarStyle)

    progress:
      
    // прогресс нашего бара, пример: 1.0f (советую ставить от 0.1f до 1.0f)

    flag:
      
    // флаг нашего бара, всего их три:
      // (byte) 0x1 - затемняет небо (как во время шторма)
      // (byte) 0x2 - делает наш бар дракон баром (используется для воспроизведения конечной музыки)
      // (byte) 0x3 - Создает туман вокруг игрока (если конечно игрок не отключил туман в настройках)
      // (byte) 0 - если вам не нужно использовать предыдущии флаги, то устанавливайте значение (byte) 0

    Пример:
    PHP:
    package me.ventiklay.bungee.bossbar;

    import me.ventiklay.bungee.bossbar.api.BarColor;
    import me.ventiklay.bungee.bossbar.api.BarStyle;
    import me.ventiklay.bungee.bossbar.api.BossBar;
    import net.md_5.bungee.api.connection.ProxiedPlayer;

    public class 
    Example {

        public 
    void example(ProxiedPlayer player) {
            
    String json "{\"text\":\"example json text\",\"color\":\"gray\"}";
            
    BossBar.getKey().create(playerjsonBarColor.BLUEBarStyle.SIX1.0f, (byte0x1);
        }
    }

    Итак, допустим нам нужно перезаписать стиль и цвет нашего бара, как это сделать? Для этого нам поможет метод restyleBar, пример:

    PHP:
    package me.ventiklay.bungee.bossbar;

    import me.ventiklay.bungee.bossbar.api.BarColor;
    import me.ventiklay.bungee.bossbar.api.BarStyle;
    import me.ventiklay.bungee.bossbar.api.BossBar;
    import net.md_5.bungee.api.event.PostLoginEvent;
    import net.md_5.bungee.api.plugin.Listener;
    import net.md_5.bungee.event.EventHandler;

    public class 
    Example implements Listener {

        @
    EventHandler
        
    public void onExample(PostLoginEvent e) {
            
    String json "{\"text\":\"Forge\",\"color\":\"gray\"}";
            
    BossBar.getKey().create(e.getPlayer(), jsonBarColor.REDBarStyle.SIX1.0f, (byte0x1);
            if (
    e.getPlayer().isForgeUser()) {
                
    BossBar.getKey().restyleBar(BarColor.GREENBarStyle.TWENTY);
            }
        }
    }

    Хорошо, цвет бара и его стиль мы перезаписали если игрок зашёл с Forge клиента, но что если нам ещё нужно перезаписать титл и прогресс нашего бара, как это сделать? Для этого нам могут методы reTitleBar, и reProgressBar:

    PHP:
    package me.ventiklay.bungee.bossbar;

    import me.ventiklay.bungee.bossbar.api.BarColor;
    import me.ventiklay.bungee.bossbar.api.BarStyle;
    import me.ventiklay.bungee.bossbar.api.BossBar;
    import net.md_5.bungee.api.event.PostLoginEvent;
    import net.md_5.bungee.api.plugin.Listener;
    import net.md_5.bungee.event.EventHandler;

    public class 
    Example implements Listener {

        @
    EventHandler
        
    public void example(PostLoginEvent e) {
            
    String json "{\"text\":\"forge: false\",\"color\":\"red\"}";
            
    BossBar.getKey().create(e.getPlayer(), jsonBarColor.BLUEBarStyle.SIX0.5f, (byte0x1);
            if(
    e.getPlayer().isForgeUser()) {
                
    String forge "{\"text\":\"forge: true\",\"color\":\"green\"}";
                
    BossBar.getKey().reProgressBar(0.6f);
                
    BossBar.getKey().reTitleBar(forge);
            }
        }
    }


    Вот в принцепи и все (Извините, если что-то не понятно, это мое первое API)

    • TO-DO - Ваши идеи.
    • Версии:
    • Version 1.0
    - Релиз.
    • Version 1.1
    - Добавлены новые методы:
    - reTitleBar: Используется, чтобы перезаписать титл бара (пример смотреть сверху)
    - reProgressBar: Используется, чтобы перезаписать прогресс бара (пример смотреть сверху)
    - Найден новый флаг для BossBar'а (byte) 0x3 - создает туман вокруг игрока (если конечно он не выключил его в настройках)
    • Version 1.1.2
    - Немного улучшен код
    - Исправлен баг, из-за которого на старых версиях BungeeCord нельзя было заходить с версии 1.7

    • Известные баги:
    Пока их нету, если найдете то - пишете.
    • Cкачать:
    https://yadi.sk/d/bMZp4FOJ3TVmRT
    https://cloud.mail.ru/public/5HqH/11i2rqugo
    (Если по какой-то причине ссылки сломаются, можно скачать внизу)
     

    Вложения:

    Последнее редактирование: 19 мар 2018
  2. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Закидываешь на банджу, и бар синхронизируется между серверами?
     
  3. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Бар отправляется на прямую игроку пакетом, а не на сервера
     
  4. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    И да он синхронизируется
     
  5. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    И при частом обновлении не моргает (это если вы будете его Runnable'ом обновлять.)
     
  6. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Прикольно, можно пятерочку поставить
     
  7. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    :oops:
     
  8. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Вот если что код тем, кому нужно чтобы на бар выводилась различная информация с Плэйсхолдерами:
    Код:
    package me.ventiklay.bungee.bossbar;
    
    import me.ventiklay.bungee.bossbar.api.BarColor;
    import me.ventiklay.bungee.bossbar.api.BarStyle;
    import me.ventiklay.bungee.bossbar.api.BossBar;
    import net.md_5.bungee.api.ProxyServer;
    import net.md_5.bungee.api.connection.ProxiedPlayer;
    
    public class Example implements Runnable {
    
        public void run() {
            for(ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) {
                String json = "{\"text\":\"§7Online: %online%\"}";
                json = json.replace("%online%", String.valueOf(ProxyServer.getInstance().getOnlineCount()));
                BossBar.getKey().create(player, json, BarColor.BLUE, BarStyle.SIX, 1.0f, (byte) 0x1);
            }
        }
    }
    
    (Плэйсхолдеры обновляйте через Runnable)
     
  9. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Я только за это готов поставить 5 :lol:
     
  10. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Да ребят, забыл сказать, если вам нужно перезаписать цвет и стиль бара то это можно сделать вот так:
    Код:
    package me.ventiklay.bungee.bossbar;
    
    import me.ventiklay.bungee.bossbar.api.BarColor;
    import me.ventiklay.bungee.bossbar.api.BarStyle;
    import me.ventiklay.bungee.bossbar.api.BossBar;
    import net.md_5.bungee.api.event.PostLoginEvent;
    import net.md_5.bungee.api.plugin.Listener;
    import net.md_5.bungee.event.EventHandler;
    
    public class Example implements Listener {
    
        @EventHandler
        public void onExample(PostLoginEvent e) {
            String json = "{\"text\":\"§7Forge\"}";
            BossBar.getKey().create(e.getPlayer(), json, BarColor.BLUE, BarStyle.SIX, 1.0f, (byte) 0x1);
            // Это пример
            if (e.getPlayer().isForgeUser()) {
                BossBar.getKey().restyleBar(BarColor.GREEN, BarStyle.TWENTY);
            } else {
                BossBar.getKey().restyleBar(BarColor.RED, BarStyle.TWENTY);           
            }
        }
    }
    
    
     
  11. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    :3
     
  12. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Добавил в шапку
     
  13. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Окей, не буду знак параграфа юзать, в json давно color есть... Насчёт метода для формата сообщений не понял.
     
  14. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Знак параграфа исправил в шапке.
     
  15. SaMEC

    SaMEC Старожил Пользователь

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Меняй, не запутывай людей
     
  16. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    В названии темы имелось в виду от какой версии BungeeCord'а будет примерно работать
     
  17. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Ну, хорошо, изменил.
     
    Последнее редактирование: 14 мар 2018
  18. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Update:
    • Version 1.1
    - Добавлены новые методы:
    - reTitleBar: Используется, чтобы перезаписать титл бара (пример смотреть в шапке)
    - reProgressBar: Используется, чтобы перезаписать прогресс бара (пример смотреть в шапке)
    - Найден новый флаг для BossBar'а (byte) 0x3 - создает туман вокруг игрока (если конечно игрок не выключил его в настройках)
     
  19. xDark

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

    Баллы:
    96
    Мог бы и сам обернуть в JSON. Ну да ладно, для первого раза пиять ;D
     
  20. Автор темы
    VentiKLay

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

    Баллы:
    76
    Имя в Minecraft:
    VentiKLay
    Update:
    • Version 1.1.2
    - Немного улучшен код
    - Исправлен баг, из-за которого на старых версиях BungeeCord нельзя было заходить с версии 1.7
     

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