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

Помогите Сайдбар без сторонних плагиноа

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

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

    EvilBeaver Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    reker2050
    Доброго времени суток!
    Как с помощью встроенного функционала Bukkit реализовать кастомный сайдбар?
    Ведь если есть плагины с этим функционалом - то 100% они написаны на встроенном функционале spigot.
     
  2. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
  3. Автор темы
    EvilBeaver

    EvilBeaver Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    reker2050
    Под кастомный имею в виду вообще кастомный) То есть каждый элемент можно было настроить по-своему.
    А scoreboard уже рассматривал как вариант, и отступил от него из-за слишком малого простора для мысли, ведь, как я понял, с помощью него вряд ли можно сделать что-то кроме турнирной таблицы.
     
  4. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Вообще кастомный можно сделать либо с помощью модов, либо патчить клиент. С плагинами сможешь юзать только то, что поддерживает сервер-клиент.
     
  5. alexandrage

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

    Баллы:
    173
    Ты об этом? Если да, то можно.
     
  6. Автор темы
    EvilBeaver

    EvilBeaver Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    reker2050
    Так если имеются плагины с кастомными сайдбарами - значит клиент поддерживает такую возможность, как и Bukkit API, не так ли?
     
  7. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Просто ты не написал что имеешь конкретно под кастомным. Например я подумал о смене положения относительно окна, удаление там циферок, изменения фона еще в таком роде.
    Вот ты почитай ту статью, ссылку на которую я кидал, там есть то, что тебе нужно.
    И да, если ты видишь плагины, которые дают тебе нужные фичи, значит очевидно такое возможно :)
     
  8. 09h

    09h Ньюби

    Баллы:
    1
    прочитал всю статью и 18 страниц коментов + https://hub.spigotmc.org/javadocs/spigot/org/bukkit/scoreboard/package-summary.html, не нашел ничего про смену положения и удаление цифр. ткни пальцем плз где про это там есть, очень ищу )
     
    Последнее редактирование: 10 янв 2019
  9. _XATuKO_

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

    Баллы:
    66
    Имя в Minecraft:
    _XATuKO_
    это обычным BukkitAPI не сделать. Переписывай майн/делай свой мод (связку плагин+мод, или как она, не знаю).
     
  10. alexandrage

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

    Баллы:
    173
    Голое ведро.
    Код:
    package Example;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.bukkit.Bukkit;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;
    
    public class Board {
        private ScoreboardManager manager;
        private Scoreboard board;
        private Objective objective;
        private Map<Integer, String> score;
    
        public Board(String displayName) {
            this.manager = Bukkit.getScoreboardManager();
            this.board = manager.getNewScoreboard();
            this.objective = board.registerNewObjective("test", "dummy", displayName);
            this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
            this.score = new HashMap<Integer, String>();
        }
       
    
        public Scoreboard getScoreboard() {
            return board;
        }
    
        public void setDisplayName(String name) {
            this.objective.setDisplayName(name);
        }
       
        public void insertScore(String name, int index) {
            if(score.containsKey(index)) {
                this.resetScores(score.get(index));
            }
            score.put(index, name);
            Score score = objective.getScore(name);
            score.setScore(index);
        }
    
        public void resetScores(String name) {
            this.board.resetScores(name);
        }
    }
     

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