Помогите Глобальная переменная

А при чём тут тытруба то?
Ищешь плагин со скорбордами, ищешь его сурсы, смотришь как он реализован, делаешь у себя так же. В чем проблема?
Я вот уже 2 скорборда посмотрел и не могу понять как они берут информацию онлайна сервера или ник игрока если в сурсах не прописано ничего?
.replace("%name%", p.getName());
Мне надо не просто заменить. Мне нужно сначало как то получить игрока
Код:
public void onEnable(Player player)
    {
        getServer().getPluginManager().registerEvents(this, this);
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
    
        ScoreboardManager sbManager = Bukkit.getScoreboardManager();
        final Scoreboard sBoard = sbManager.getNewScoreboard();
       
        Objective obj = sBoard.registerNewObjective("MineCraft", "dummy");
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        obj.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "Mine" + ChatColor.GOLD + ChatColor.BOLD + "Craft");
       
        Score score1 = obj.getScore("Твой ник: " + player.getName());
        score1.setScore(1);
    }
Почему если вот таким методом получать ник игрока, то скорборд перестает показываться?
 
ну в цикле получай, только наврятли это будет работать.
for (Player p : Bukkit.getOnlinePlayers() {p.getName()}
 
ну в цикле получай, только наврятли это будет работать.
for (Player p : Bukkit.getOnlinePlayers() {p.getName()}
Зачем тогда писать если не работает :D . Кто еще поможет?
Код:
public void onEnable(Player player)
    {
        getServer().getPluginManager().registerEvents(this, this);
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
   
        ScoreboardManager sbManager = Bukkit.getScoreboardManager();
        final Scoreboard sBoard = sbManager.getNewScoreboard();
      
        Objective obj = sBoard.registerNewObjective("MineCraft", "dummy");
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        obj.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "Mine" + ChatColor.GOLD + ChatColor.BOLD + "Craft");
      
        Score score1 = obj.getScore("Твой ник: " + player.getName());
        score1.setScore(1);
    }
Почему если вот таким методом получать ник игрока, то скорборд перестает показываться?
 
Зачем тогда писать если не работает :D . Кто еще поможет?
Код:
public void onEnable(Player player)
    {
        getServer().getPluginManager().registerEvents(this, this);
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
  
        ScoreboardManager sbManager = Bukkit.getScoreboardManager();
        final Scoreboard sBoard = sbManager.getNewScoreboard();
     
        Objective obj = sBoard.registerNewObjective("MineCraft", "dummy");
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        obj.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "Mine" + ChatColor.GOLD + ChatColor.BOLD + "Craft");
     
        Score score1 = obj.getScore("Твой ник: " + player.getName());
        score1.setScore(1);
    }
Почему если вот таким методом получать ник игрока, то скорборд перестает показываться?
== null
 
Java:
    @Override
    public void onEnable() {
       
        getServer().getPluginManager().registerEvents(this, this);
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
       
        scheduler.scheduleSyncRepeatingTask(this, new BukkitRunnable() {
           
            @Override
            public void run() {
                while (true) {
                    this.setupScoreBoard();
                }
            }

            private void setupScoreBoard() {
                for (Player ps : Bukkit.getOnlinePlayers()) {
                   ScoreboardManager sbManager = Bukkit.getScoreboardManager();
                   final Scoreboard sBoard = sbManager.getNewScoreboard();
                 
                   Objective obj = sBoard.registerNewObjective("MineCraft", "dummy");
                   obj.setDisplaySlot(DisplaySlot.SIDEBAR);
                   obj.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "Mine" + ChatColor.GOLD + ChatColor.BOLD + "Craft");
                 
                   Score score1 = obj.getScore("Твой ник: " + ps.getName());
                   score1.setScore(1);       
                }               
            }
        }, 0L, 3000);
    }
 
Java:
    @Override
    public void onEnable() {
      
        getServer().getPluginManager().registerEvents(this, this);
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
      
        scheduler.scheduleSyncRepeatingTask(this, new BukkitRunnable() {
          
            @Override
            public void run() {
                while (true) {
                    this.setupScoreBoard();
                }
            }

            private void setupScoreBoard() {
                for (Player ps : Bukkit.getOnlinePlayers()) {
                   ScoreboardManager sbManager = Bukkit.getScoreboardManager();
                   final Scoreboard sBoard = sbManager.getNewScoreboard();
                
                   Objective obj = sBoard.registerNewObjective("MineCraft", "dummy");
                   obj.setDisplaySlot(DisplaySlot.SIDEBAR);
                   obj.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "Mine" + ChatColor.GOLD + ChatColor.BOLD + "Craft");
                
                   Score score1 = obj.getScore("Твой ник: " + ps.getName());
                   score1.setScore(1);      
                }              
            }
        }, 0L, 3000);
    }
Не работает
 
Java:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
    Player p = e.getPlayer();
    String name = p.getName();
    this.plugin.addPlayer(name);
}
Для этого тебе нужно передать инстант из главного класса в конструктор этому.
В общем просто сюда глянь https://github.com/alexandrage/Example.
 
Последнее редактирование:
Назад
Верх