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

Помогите Написал плагин на bossbar, но что-то не работает.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Nilfgaard., 10 янв 2021.

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

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

    Баллы:
    61
    // MainClass.java - это мэйн класс:


    package rmbb.main;

    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;

    public class MainClass extends JavaPlugin implements Listener{

    public Bar bar;

    @Override
    public void onEnable() {
    this.getServer().getPluginManager().registerEvents(this, this);
    bar = new Bar(this);
    bar.createBar();



    if (Bukkit.getOnlinePlayers().size() > 0)
    for (Player on : Bukkit.getOnlinePlayers())
    bar.addPlayer(on);
    }

    @Override
    public void onDisable() {
    bar.getBar().removeAll();
    }

    public void onJoin(PlayerJoinEvent event) {
    if (!bar.getBar().getPlayers().contains(event.getPlayer()))
    bar.addPlayer(event.getPlayer());
    }
    }


    // Bar.java - это 2 класс с говнокодой:


    package rmbb.main;

    import org.bukkit.Bukkit;
    import org.bukkit.boss.BarColor;
    import org.bukkit.boss.BarStyle;
    import org.bukkit.boss.BossBar;
    import org.bukkit.entity.Player;
    import org.bukkit.ChatColor;

    public class Bar {

    private int taskID = -1;
    private final MainClass plugin;
    private BossBar bar;

    public Bar(MainClass plugin) {
    this.plugin = plugin;
    }

    public void addPlayer(Player player) {
    bar.addPlayer(player);
    }

    public BossBar getBar() {
    return bar;
    }

    public void createBar() {
    bar = Bukkit.createBossBar(format("&cПокупать донат только на &brabbitmine.ru"), BarColor.RED, BarStyle.SOLID);
    bar.setVisible(true);
    cast();
    }


    public void cast() {
    setTaskID(Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {

    int count = -1;
    double progress = 1.0;
    double time = 1.0 /(20);

    @Override
    public void run() {
    bar.setProgress(progress);

    switch(count) {
    case -1:
    break;
    case 0:
    bar.setColor(BarColor.PINK);
    bar.setTitle(format("&dВ честь открытия сервера скидки на донат &c9999999999%&d!!!"));
    break;
    case 1:
    bar.setColor(BarColor.BLUE);
    bar.setTitle(format("&3При покупке доната &l&4Господь Бог &r&3вы получаете минет от гл.админов и по ****у бесплатно"));
    break;
    case 2:
    bar.setColor(BarColor.GREEN);
    bar.setTitle(format("&dауе!!!"));
    break;
    case 3:
    default:
    bar.setColor(BarColor.RED);
    bar.setTitle(format("&cУляля-уляля пчелы пчелы"));
    count = -1;
    break;

    }

    progress = progress - time;
    if (progress <= 0) {
    count++;
    progress = 1.0;
    }

    }

    }, 0, 20));
    }

    private String format(String msg) {
    return ChatColor.translateAlternateColorCodes('&', msg);
    }

    public int getTaskID() {
    return taskID;
    }

    public void setTaskID(int taskID) {
    this.taskID = taskID;
    }
    }
     
  2. _Ruleto4ka_

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

    Баллы:
    76
     
  3. Автор темы
    Nilfgaard.

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

    Баллы:
    61
    Так в чем ошибка?)) Кодировка? Или русска мана не поддерживается?
     
  4. _MRDen3000YT_

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

    Баллы:
    76
    Как-то так:
    PHP:
    package rmbb.main;

    import org.bukkit.plugin.java.JavaPlugin;

    public class 
    MainClass extends JavaPlugin {

        public 
    Bar bar;

        @
    Override
        
    public void onEnable() {
            
    bar = new BarProvider(this);
            
    bar.buildBar();
            
    this.getServer().getPluginManager().registerEvents(new OnJoinListener(bar), this);

        }
    }
    PHP:
    package rmbb.main;

    import org.bukkit.boss.BossBar;
    import org.bukkit.entity.Player;

    public interface 
    Bar {

        public 
    void viewBar(Player player);

        public 
    BossBar getBar();

        public 
    void buildBar();

        public 
    void startPorgress();
     
     


    }
    PHP:
    package rmbb.main;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.boss.BarColor;
    import org.bukkit.boss.BarStyle;
    import org.bukkit.boss.BossBar;
    import org.bukkit.entity.Player;

    public class 
    BarProvider implements Bar {

        private 
    BossBar bar;
        private 
    MainClass plugin;
        private 
    int taskId 0;

        public 
    BarProvider(MainClass instance) {
            
    this.plugin instance;
        }

        @
    Override
        
    public void viewBar(Player player) {
            
    this.bar.addPlayer(player);
        }

        @
    Override
        
    public BossBar getBar() {
            return 
    this.bar;
        }

        @
    Override
        
    public void buildBar() {
            
    bar Bukkit.createBossBar(format("&cПокупать донат только на &brabbitmine.ru"), BarColor.REDBarStyle.SOLID);
            
    bar.setVisible(true);
        }

        @
    Override
        
    public void startPorgress() {
            
    setTaskId(Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new BarRunnable(getBar()) {

            }, 
    020));

        }

        public 
    int getTaskId() {
            return 
    taskId;
        }

        public 
    void setTaskId(int taskId) {
            
    this.taskId taskId;
        }
     
        private 
    String format(String msg) {
            return 
    ChatColor.translateAlternateColorCodes('&'msg);
        }

    }
    PHP:
    package rmbb.main;

    import org.bukkit.ChatColor;
    import org.bukkit.boss.BarColor;
    import org.bukkit.boss.BossBar;

    public class 
    BarRunnable implements Runnable {

        
    int count = -1;
        
    double progress 1.0;
        
    double time 1.0 / (20);

        public 
    BossBar bar;

        public 
    BarRunnable(BossBar bar) {
            
    this.bar bar;
        }

        @
    Override
        
    public void run() {
            switch (
    count) {
            case -
    1:
                break;
            case 
    0:
                
    bar.setColor(BarColor.PINK);
                
    bar.setTitle(format("&dВ честь открытия сервера скидки на донат &c9999999999%&d!!!"));
                break;
            case 
    1:
                
    bar.setColor(BarColor.BLUE);
                
    bar.setTitle(format(
                        
    "&3При покупке доната &l&4Господь Бог &r&3вы получаете минет от гл.админов и по ****у бесплатно"));
                break;
            case 
    2:
                
    bar.setColor(BarColor.GREEN);
                
    bar.setTitle(format("&dауе!!!"));
                break;
            case 
    3:
            default:
                
    bar.setColor(BarColor.RED);
                
    bar.setTitle(format("&cУляля-уляля пчелы пчелы"));
                
    count = -1;
                break;

            }

            
    progress progress time;
            if (
    progress <= 0) {
                
    count++;
                
    progress 1.0;
            }
        }

        private 
    String format(String msg) {
            return 
    ChatColor.translateAlternateColorCodes('&'msg);
        }

    }
    PHP:
    package rmbb.main;

    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;

    public class 
    OnJoinListener implements Listener {
     
        private 
    Bar bar;

        public 
    OnJoinListener(Bar bar) {
            
    this.bar bar;
        }
     
        @
    EventHandler
        
    public void onJoin(PlayerJoinEvent e) {
            
    bar.viewBar(e.getPlayer());
        }

    }
     
  5. Автор темы
    Nilfgaard.

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

    Баллы:
    61
    чет не работает, сервер даже за плагин не считает это творение ¯\_(ツ)_/¯
     
  6. _Ruleto4ka_

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

    Баллы:
    76
    Ну чтобы мы могли понять в чем проблема нам нужны логги
     
  7. Автор темы
    Nilfgaard.

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

    Баллы:
    61
    [20:28:03] [Server thread/ERROR]: Could not load 'plugins\BossBar.jar' in folder 'plugins': uses the space-character (0x20) in its name
     
  8. __Void__

    __Void__ Участник Пользователь

    Баллы:
    36
    убери пробел из имени плагина
     
  9. Автор темы
    Nilfgaard.

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

    Баллы:
    61
    все работает, но bossbar не меняется
     
  10. _MRDen3000YT_

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

    Баллы:
    76
    Исправляй BarRunnable. Я не знаю, что ты хочешь сделать, поэтому прошлый код сюда запихал.
     
  11. Автор темы
    Nilfgaard.

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

    Баллы:
    61
    Хочу сделать, чтобы полоса боссбара ползла, и изменялся цвет и текст. Хотя бы что-то похожее как на хайпиксиль.
     

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