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

Помогите Геттер возвращает null (получение Map из другого класса)

Discussion in 'Помощь' started by AdilShiba, Sep 17, 2020.

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

    AdilShiba Новичок

    Trophy Points:
    6
    Имя в Minecraft:
    AdilShiba55
    Создаю Мапу и Геттер:

    Map<String, Integer> playerPosition = new HashMap<>();

    public Map<String, Integer> getPlayerPosition() {
    return playerPosition;
    }

    Далее в методе вставляю туда данные:

    public boolean teleportationToArena(Player p) {
    Location loc = p.getLocation();

    if (p.getWorld().getBlockAt(63, 49, 165).getType() == Material.AIR) {
    p.getWorld().getBlockAt(63, 49, 165).setType(Material.DIAMOND_BLOCK);

    //1
    loc.setX(63.515);
    loc.setY(50);
    loc.setZ(165.481);
    p.teleport(loc);
    playerPosition.put(p.getName(), 1); //ВОТ ЗДЕСЬ
    p.sendMessage(ChatColor.GOLD + "Количество игроков на Арене: " + playerPosition.size());
    return true;
    }

    Этот метод я вызываю в методе Interact Event и игрок телепортируется на Арену.
    То есть, игрок добавляется в Мапу при попадании туда, и если игрок вводит команду /mainspawn(телепортирует его на Спаун), и он есть в Мапе(то есть это проверка на то, находится ли он на арене), его нужно удалить из нее.

    Дальше идет обработка команды уже в другом классе, где мне нужно получить Мапу.

    @Override
    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
    if (s.equals("mainspawn")) {
    Player p = (Player) commandSender;
    Handler handler = new Handler(); //Создание экземпляра класса, в котором находится Мапа.
    if (!handler.playerPosition.containsKey(p.getName())) { //Проверка на наличие игрока в Мапе
    Location locate = p.getLocation();
    locate.setWorld(Bukkit.getWorld("theMainSpawn"));
    locate.setX(8);
    locate.setY(49);
    locate.setZ(8);
    locate.setYaw(-89);
    locate.setPitch(-3);
    p.teleport(locate);


    } else {

    handler.playerArenaClear(p); //В этом методе идет удаление игрока из Мапы
    Location locate = p.getLocation();
    locate.setWorld(Bukkit.getWorld("theMainSpawn"));
    locate.setX(8);
    locate.setY(49);
    locate.setZ(8);
    locate.setYaw(-89);
    locate.setPitch(-3);
    p.teleport(locate);
    p.sendMessage("Привет из очищения всего этого дела");
    // }

    }
    return true;
    }
    return false;
    }

    Так вот. Загвоздка в том, что экземпляр класса - пустой(т.е он всегда выдает пустую Мапу).
    Как это исправить и в чем может быть причина?

    Надеюсь на вас!
     
  2. Хостинг MineCraft
    <

Share This Page