Хостинг серверов 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
    Как можно сделать данную функцию глобальной? Чтобы я мог получить ник игрока в другом классе
    Code:
    @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            String name = p.getName();
    
     
  2. Хостинг MineCraft
    <
  3. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Создай HashMap,ну или массив строк и записывай туда ники,потом передавай экземпляр главного класса в нужный тебе класс.
     
  4. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Code:
    String name = p.getName();
    Мне нужно только вот это, тоесть ник игрока получить и записать его
     
  5. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Ну так по этой же технологии создавай строку в главном классе,передавай экземпляр главного класса в слушатель и перезаписывай эту переменную как хочешь.
     
  6. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Можно в виде кода? А то чет сложно :D
     
  7. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Code:
    .... class Твой_класс extends JavaPlugin {
      String name;
    
    //При регистрации слушателя в слушатель передаешь аргумент "this" - то есть класс в котором сейчас выполняется код
      }
    
    В конструкторе слушателя принимаешь экземпляр класса.В классе должна быть переменная вида. "Название_класса_которого получаешь  plugin"
     
  8. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Мне бы еще подробнее, а то я полный 0000000,1
     
  9. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
  10. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Читай джавадоки.
     
  11. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    И выпиливаешься.
     
  12. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Обидно(
     
  13. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Может я делаю какую то наркоманию? Подскажите кто знает как мне здесь получить игрока и получить его ник и вписать в борд?
    Code:
    public void onEnable()
        {
            getServer().getPluginManager().registerEvents(this, this);
            BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
       
            ScoreboardManager sbManager = Bukkit.getScoreboardManager();
            final Scoreboard sBoard = sbManager.getNewScoreboard();
            long onlineCount = Bukkit.getOnlinePlayers().size();
       
            final Team online = sBoard.registerNewTeam("online");
            online.setSuffix("&a" + onlineCount);
            online.addPlayer(Bukkit.getOfflinePlayer("Онлайн: "));
          
            Objective obj = sBoard.registerNewObjective("Mine", "dummy");
            obj.setDisplaySlot(DisplaySlot.SIDEBAR);
            obj.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "Mine" + ChatColor.GOLD + ChatColor.BOLD + "Cst");
          
            Score score = obj.getScore(Bukkit.getOfflinePlayer("Онлайн: "));
            score.setScore(1);
       
            scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
                @Override
                public void run() {
                    long onlineCount = Bukkit.getOnlinePlayers().size();
                    online.setSuffix("&a" + onlineCount);
                    for (Player player : Bukkit.getOnlinePlayers()){
                        player.setScoreboard(sBoard);
                    }
                }
            }, 0L, 100L);
            }
     
    Last edited: Aug 27, 2016
  14. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Тебе чтоли нужно чтото на подобии %player%?
     
  15. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    А почему не пользуешься старым добрым дядькой? А почему ты пытаешься сделать всё сам, когда есть плагины с открытым кодом и таким же функционалом?
     
  16. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Да я уже весь ютуб облазил, там нету того, что мне нужно :([DOUBLEPOST=1472317305,1472317256][/DOUBLEPOST]
    Просто я не могу нигде вставить ивент входа игрока так как код перестает работать. И я вот пытаюсь что то сделать
     
  17. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Что не работает? Если тебе нужно чтото на подобие:
    Ваш ник: %player%
    то нужно для каждого игрока создавать свой скорбоард, если нет, то объясни нормально, что тебе нужно.
     
  18. Автор темы
    Darth Udko

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

    Trophy Points:
    103
    Да, да как мне это сделать?
     
  19. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    .replace("%name%", p.getName());
     
  20. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Наврятли так можно в скорбоардах делать.
     
  21. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    А при чём тут тытруба то?
    Ищешь плагин со скорбордами, ищешь его сурсы, смотришь как он реализован, делаешь у себя так же. В чем проблема?
     

Share This Page