Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by Darth Udko, Aug 27, 2016.

  1. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Я вот уже 2 скорборда посмотрел и не могу понять как они берут информацию онлайна сервера или ник игрока если в сурсах не прописано ничего?[DOUBLEPOST=1472318854,1472318783][/DOUBLEPOST]
    Мне надо не просто заменить. Мне нужно сначало как то получить игрока[DOUBLEPOST=1472319149][/DOUBLEPOST]
    Code:
    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);
        }
    Почему если вот таким методом получать ник игрока, то скорборд перестает показываться?
     
  2. Хостинг MineCraft
    <
  3. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ну в цикле получай, только наврятли это будет работать.
    for (Player p : Bukkit.getOnlinePlayers() {p.getName()}
     
  4. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Зачем тогда писать если не работает :D . Кто еще поможет?[DOUBLEPOST=1472320535,1472320330][/DOUBLEPOST]
    Code:
    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);
        }
    Почему если вот таким методом получать ник игрока, то скорборд перестает показываться?
     
  5. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    == null
     
  6. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Ты про что?
     
  7. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Code:
        @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);
        }
    
     
  8. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Не работает
     
  9. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Code:
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();
        String name = p.getName();
        this.plugin.addPlayer(name);
    }
    Для этого тебе нужно передать инстант из главного класса в конструктор этому.
    В общем просто сюда глянь https://github.com/alexandrage/Example.
     
    Last edited: Sep 1, 2016
  10. Reality_SC

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

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
  11. _MediaNik_

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

    Trophy Points:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Example
     

Share This Page