- Баллы
- 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())); }
*/