Помогите Работа с чатом

FominEvgeni

Участник
Баллы
31
Имя в Minecraft
Superzeka
Здравствуйте.
Пишу мини игру где есть 4 команды.
Раньше с чатом не работал но тут пришлось.
Киньте идеи как можно реализовать All чат и Team.
 
Нужно:
  • Централизованное хранилище
Суть:
Необходимо причислять (или же нет) каждого игрока к определённому чату. Все, кто не состоит в приватном чате (тим-чат, к примеру), относятся к общему чату.​
 
HashMap<String, HashSet<Player>> teamMap = new HashMap<>();

Когда создается арена:
int per = maxPlayers / all teams;
teamMap.put("команда", new HashSet<Player>(per));

Добавляем игрока:
teamMap.get(выбранная_команда).add(player);
Удалить - вместо add написать remove

В AsyncPlayerChatEvent:
if (!e.getMessage().startsWith("!")) {
HashSet<Player> teammates = teamMap.get(команда_игрока);
e.getRecipients().removeIf((player) -> !teammates.contains(player));
}
 
Последнее редактирование:
А я бы заморочился на отправку сообщений по правам. Ради прикола.
 
Я бы для каждой команды сделал класс, где хранил бы всех игроков и всю другую информацию об команде, и по надобности отправлял сообщения всем игрокам из команды сообщение.
 
А я бы заморочился на отправку сообщений по правам. Ради прикола.
Игроки штука динамическая. Будешь по приколы в начале каждой игры права раскидывать?
А вообще изи все.
HashMap<String, Player> user = new HashMap<String, Player>();
..............
user.put("белые", player);
user.put("черные", player);
user.put("синии", player);
user.put("красные", player);
 
Последнее редактирование:
Я бы для каждой команды сделал класс, где хранил бы всех игроков и всю другую информацию об команде, и по надобности отправлял сообщения всем игрокам из команды сообщение.

Убого =)
 
Обоснуй. Если у нас есть команды, почему не создать для них по удобному классу, который будет хранить всё, что может описать команду?
Ооп, не не слышал? Один класс на все команды можно.
 
Ооп, не не слышал? Один класс на все команды можно.
Я это и имею ввиду! Понятное дело, что структура класса будет одна.
4259c49193.png

Но команд то может существовать много, а хранить их можно в листе каком нить. Теперь понятно, что я имел ввиду?
 
Назад
Верх