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

Помогите Помогите достать игрока в onCommand

Тема в разделе "Разработка плагинов для новичков", создана пользователем LilClick, 30 июл 2019.

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

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

    Баллы:
    61
    Имя в Minecraft:
    Lil_Click
    Короче, суть вот в чем, пытаюсь достать игрока (target) которому я кидаю "пати" и нужно его использовать в других командах, но т.к. я сделал это через for, у меня все это воспроизводится несколько раз, но все работает отлично, так вот, подскажите как правильнее сделать. СПАСИБО


    Код:
    package ru.swell.party;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    
    import ru.tehkode.permissions.bukkit.PermissionsEx;
    
    public class Party implements Listener, CommandExecutor {
        HashMap<String, ArrayList<String>> partyplayer = new HashMap<>();
        HashMap<String, String> playeraccept = new HashMap<>();
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (sender instanceof Player) {
                Player p = (Player) sender;
                if (label.equalsIgnoreCase("party")) {
                    if (args.length <= 0) {
                        p.sendMessage("§7[§4!§7] §4Введите имя игрока");
                    } else if (args.length >= 1) {
                        for (Player ponline : Bukkit.getOnlinePlayers()) {
                            ArrayList<String> players = new ArrayList<>();
                            if (args[0].equalsIgnoreCase("invite")) {
                                if (ponline.getName().equalsIgnoreCase(args[1])) {
                                    if (ponline == p || !ponline.getName().contains(args[1])) {
                                        p.sendMessage("1");
                                        return true;
                                    }
                                    if (partyplayer.get(p.getName()) == null) {
                                        partyplayer.put(p.getName(), players);
                                        p.sendMessage("§7[§4!§7] §2Вы создали пати!");
                                    }
                                    ponline.sendMessage("§7[§4!§7] §2Вы были приглашены в пати игроком "
                                            + PermissionsEx.getUser(p.getName()).getPrefix() + p.getName());
                                    p.sendMessage("§7[§4!§7] §2Вы пригласили игрока "
                                            + PermissionsEx.getUser(ponline).getPrefix() + ponline.getName() + " §2в пати");
                                    playeraccept.put(p.getName(), ponline.getName());
    
                                    ponline.sendMessage("§7[§4!§7] §2Чтобы принять введи /party accept");
                                } else {
                                    p.sendMessage("§7[§4!§7] §4Игрок не найден!");
                                }
                            }
    
                            else if (args[0].equalsIgnoreCase("accept")) {
                                if (playeraccept.containsValue(p.getName())
                                        && playeraccept.containsKey(ponline.getName())) {
                                    partyplayer.get(ponline.getName()).add(p.getName());
                                    partyplayer.put(ponline.getName(), partyplayer.get(ponline.getName()));
                                    p.sendMessage("Вы вступили в пати к " + ponline.getName());
                                    ponline.sendMessage(p.getName() + " Вступил в пати " + "Теперь "
                                            + partyplayer.get(ponline.getName()));
                                }
                            }
    
                            else if (args[0].equalsIgnoreCase("info")) {
                                if (partyplayer.containsKey(p.getName()) || partyplayer.containsValue(p.getName())) {
                                    p.sendMessage("§7[§2Party§7] Члены пати: " + partyplayer.get(p.getName()));
                                    if (partyplayer.containsValue(ponline.getName())) {
                                        ponline.teleport(p.getLocation());
                                    }
                                }
                            }
                        }
                    }
                } else {
                    p.sendMessage("§7[§4!§7] Введите имя игрока");
                }
            } else {
                Bukkit.getConsoleSender().sendMessage("Эту команду может использовать только игрок!");
            }
            return false;
        }
    
    }
    
    /*
     * p.sendMessage("Вы пригласили игрока " + ponline.getName() + " в пати");
     * ponline.sendMessage("Вас пригласил игрок " + p.getName() + " в пати");
     * partyplayer.get(p.getName()).add(ponline.getName());
     * partyplayer.put(p.getName(), partyplayer.get(p.getName())); if
     * (partyplayer.containsValue(partyplayer.get(p.getName())) &&
     * partyplayer.containsKey(p.getName())) { ponline.teleport(p);
     * p.sendMessage("Пати из: " + partyplayer.get(p.getName())); }
     */
    
     
  2. alexandrage

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

    Баллы:
    173
    Bukkit.getPlayerExact(name)
     
  3. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Bukkit.getPlayerExact("Notch"); // Получает игрока по полному нику
    Bukkit.getPlayer("Not"); // Получает игрока по целому нику или его началу
     
    Последнее редактирование: 1 авг 2019
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ага. Сонный был. Поправил, спасибо
     
  5. Автор темы
    LilClick

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

    Баллы:
    61
    Имя в Minecraft:
    Lil_Click
    Дак а игрока откуда брать? Мне же нужно брать того, кто находится в HashMap
     
  6. alexandrage

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

    Баллы:
    173
Статус темы:
Закрыта.

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