Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Оценка

  • 4

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

    0 голосов 0,0%
  • 2

    0 голосов 0,0%
  • 1

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

VentiKLay

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
VentiKLay
qZGZGjzBf4g.jpg


  • 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(player, title, color, style, progress, flag);
    }
}

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

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(player, json, BarColor.BLUE, BarStyle.SIX, 1.0f, (byte) 0x1);
    }
}

Итак, допустим нам нужно перезаписать стиль и цвет нашего бара, как это сделать? Для этого нам поможет метод 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(), json, BarColor.RED, BarStyle.SIX, 1.0f, (byte) 0x1);
        if (e.getPlayer().isForgeUser()) {
            BossBar.getKey().restyleBar(BarColor.GREEN, BarStyle.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(), json, BarColor.BLUE, BarStyle.SIX, 0.5f, (byte) 0x1);
        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
(Если по какой-то причине ссылки сломаются, можно скачать внизу)
 

Вложения:

Последнее редактирование:
Закидываешь на банджу, и бар синхронизируется между серверами?
 
Прикольно, можно пятерочку поставить
 
Вот если что код тем, кому нужно чтобы на бар выводилась различная информация с Плэйсхолдерами:
Код:
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)
 
Да ребят, забыл сказать, если вам нужно перезаписать цвет и стиль бара то это можно сделать вот так:
Код:
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);           
        }
    }
}
 
Да ребят, забыл сказать, если вам нужно перезаписать цвет и стиль бара то это можно сделать вот так:
Код:
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);          
        }
    }
}
Добавил в шапку
 
Эх... я динозавр оказывается был, ну да ладно... 5.
#TODO Создай отдельный метод для формата сообщений, и не юзай знак параграфа, это как то тупо...
Окей, не буду знак параграфа юзать, в json давно color есть... Насчёт метода для формата сообщений не понял.
 
Эх... я динозавр оказывается был, ну да ладно... 5.
#TODO Создай отдельный метод для формата сообщений, и не юзай знак параграфа, это как то тупо...
Знак параграфа исправил в шапке.
 
[DEV] BungeeBossBarAPI - BossBarAPI для BungeeCord | 1.8+
ЕСЛИ версия клиента ниже 1.9, то игрок просто не будет видеть ваш BossBar (то есть, динозавры идут лесом)
Меняй, не запутывай людей
 
Update:
  • Version 1.1
- Добавлены новые методы:
- reTitleBar: Используется, чтобы перезаписать титл бара (пример смотреть в шапке)
- reProgressBar: Используется, чтобы перезаписать прогресс бара (пример смотреть в шапке)
- Найден новый флаг для BossBar'а (byte) 0x3 - создает туман вокруг игрока (если конечно игрок не выключил его в настройках)
 
Мог бы и сам обернуть в JSON. Ну да ладно, для первого раза пиять ;D
 
Update:
  • Version 1.1.2
- Немного улучшен код
- Исправлен баг, из-за которого на старых версиях BungeeCord нельзя было заходить с версии 1.7
 

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

Назад
Верх