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

Помогите Почему не вставляется schematic

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

Статус темы:
Закрыта.
  1. Автор темы
    DakEnviy

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

    Баллы:
    66
    Skype:
    hajime.hajime.hajime
    Имя в Minecraft:
    DakEnviy
    Я прочитал про итераторы, вставил в свой код, и ничего не работает(
    Вот код:
    Код:
    Team team = TeamManager.getInstance().getTeam(p);
                    Team redTeam = TeamManager.getInstance().getTeam("Red", arena);
                    Team blueTeam = TeamManager.getInstance().getTeam("Blue", arena);
                   
                    Iterator<Player> liRed = redTeam.getPlayers().iterator();
                    Iterator<Player> liBlue = blueTeam.getPlayers().iterator();
                   
                    if (team == redTeam) {
                        team.setScore(team.getScore() + 1);
                       
                        arena.sendMessage(MessageType.INFO, p.getName() + " сломал обсидиан! Счёт: " +
                                "Красные- " + redTeam.getScore() +
                                " Синие- " + blueTeam.getScore());
                        if (redTeam.getScore() == 3 && blueTeam.getScore() == 0) {
                            arena.sendMessage(MessageType.INFO, "Красная команда победила!");
                           
                            while (liRed.hasNext()) {
                                Player redPlayer = liRed.next();
                               
                                redPlayer.sendMessage(ChatColor.GREEN + "==============================");
                                redPlayer.sendMessage("Металиков заработано:");
                                redPlayer.sendMessage("");
                                redPlayer.sendMessage(ChatColor.GREEN + "+10 металиков" + ChatColor.RESET + " - За игру");
                                redPlayer.sendMessage(ChatColor.GREEN + "+10 металиков" + ChatColor.RESET + " - За победу");
                               
                                econ.depositPlayer(redPlayer.getName(), 20);
                                if (redPlayer.hasPermission(vip)) {
                                    econ.depositPlayer(redPlayer.getName(), 2);
                                    redPlayer.sendMessage(ChatColor.GREEN + "+2 металиков" + ChatColor.RESET + " - За " + ChatColor.GOLD + "VIP");
                                }
                                if (redPlayer.hasPermission(ultra)) {
                                    econ.depositPlayer(redPlayer.getName(), 5);
                                    redPlayer.sendMessage(ChatColor.GREEN + "+5 металиков" + ChatColor.RESET + " - За " + ChatColor.DARK_PURPLE + "ULTRA");
                                }
                                if (redPlayer.hasPermission(hero)) {
                                    econ.depositPlayer(redPlayer.getName(), 15);
                                    redPlayer.sendMessage(ChatColor.GREEN + "+15 металиков" + ChatColor.RESET + " - За " + ChatColor.GREEN + "HERO");
                                }
                                redPlayer.sendMessage("");
                                redPlayer.sendMessage("Ваш баланс: " + ChatColor.GREEN + econ.getBalance(redPlayer.getName()));
                                redPlayer.sendMessage(ChatColor.GREEN + "==============================");
                               
                                redTeam.setScore(0);
                                blueTeam.setScore(0);
                               
                                arena.removePlayer(p);
                                team.remove(p);
                                if (KitManager.getInstance().getKit(p) != null) {
                                    KitManager.getInstance().getKit(p).removeKit(p);
                                }
                                arena.restart();
                               
                                redPlayer.remove();
                            }
                            while (liBlue.hasNext()) {
                                Player bluePlayer = liBlue.next();
                               
                                bluePlayer.sendMessage(ChatColor.GREEN + "==============================");
                                bluePlayer.sendMessage("Металиков заработано:");
                                bluePlayer.sendMessage("");
                                bluePlayer.sendMessage(ChatColor.GREEN + "+10 металиков" + ChatColor.RESET + " - За игру");
                               
                                econ.depositPlayer(bluePlayer.getName(), 10);
                                if (bluePlayer.hasPermission(vip)) {
                                    econ.depositPlayer(bluePlayer.getName(), 2);
                                    bluePlayer.sendMessage(ChatColor.GREEN + "+2 металиков" + ChatColor.RESET + " - За " + ChatColor.GOLD + "VIP");
                                }
                                if (bluePlayer.hasPermission(ultra)) {
                                    econ.depositPlayer(bluePlayer.getName(), 5);
                                    bluePlayer.sendMessage(ChatColor.GREEN + "+5 металиков" + ChatColor.RESET + " - За " + ChatColor.DARK_PURPLE + "ULTRA");
                                }
                                if (bluePlayer.hasPermission(hero)) {
                                    econ.depositPlayer(bluePlayer.getName(), 15);
                                    bluePlayer.sendMessage(ChatColor.GREEN + "+15 металиков" + ChatColor.RESET + " - За " + ChatColor.GREEN + "HERO");
                                }
                                bluePlayer.sendMessage("");
                                bluePlayer.sendMessage("Ваш баланс: " + ChatColor.GREEN + econ.getBalance(bluePlayer.getName()));
                                bluePlayer.sendMessage(ChatColor.GREEN + "==============================");
                               
                                redTeam.setScore(0);
                                blueTeam.setScore(0);
                               
                                arena.removePlayer(p);
                                team.remove(p);
                                if (KitManager.getInstance().getKit(p) != null) {
                                    KitManager.getInstance().getKit(p).removeKit(p);
                                }
                                arena.restart();
                               
                                bluePlayer.remove();
                            }
                        }
    Это только часть, но суть одна.
     
  2. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Вы все равно делаете team.remove(p).
     
  3. Автор темы
    DakEnviy

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

    Баллы:
    66
    Skype:
    hajime.hajime.hajime
    Имя в Minecraft:
    DakEnviy
    А если убрать, то как их тогда удалить из команды?
     
  4. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Вы же сказали, что прочитали про итераторы.
     
  5. Автор темы
    DakEnviy

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

    Баллы:
    66
    Skype:
    hajime.hajime.hajime
    Имя в Minecraft:
    DakEnviy
    Я прочитал то, что нашёл.
    Ну скажи. В чем моя ошибка?
     
  6. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    liBlue.remove() должно быть вместо team.remove().
     
  7. Автор темы
    DakEnviy

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

    Баллы:
    66
    Skype:
    hajime.hajime.hajime
    Имя в Minecraft:
    DakEnviy
    Ладно, попробую отпишусь.
     
  8. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Вообще у Вас всего очень много накручено. Упрощайте. Раскладывайте на функции. Иначе в собственном коде путаться будете постоянно. Вон, у Вас одни и те же действия происходят для синей и для красной команды. Так можно же сделать функцию, которую вызывать при необходимости... Но это так лирика.

    Вы итератором проходитесь по списку игроков, который получаете посредством redTeam.getPlayers(). Уверен, что удаляя посредством team.remove(p) вы удаляете именно из этого списка. Т.е. не пользуетесь итератором для удаления.
     
  9. Автор темы
    DakEnviy

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

    Баллы:
    66
    Skype:
    hajime.hajime.hajime
    Имя в Minecraft:
    DakEnviy
    Огромное спасибо!
     
Статус темы:
Закрыта.

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