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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем FominEvgeni, 26 май 2017.

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

    FominEvgeni Участник

    Баллы:
    31
    Имя в Minecraft:
    Superzeka
    Здравствуйте.
    Пишу мини игру где есть 4 команды.
    Раньше с чатом не работал но тут пришлось.
    Киньте идеи как можно реализовать All чат и Team.
     
  2. makssof

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

    Баллы:
    103
    Нужно:
    • Централизованное хранилище
    Суть:
    Необходимо причислять (или же нет) каждого игрока к определённому чату. Все, кто не состоит в приватном чате (тим-чат, к примеру), относятся к общему чату.​
     
  3. xDark

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

    Баллы:
    96
    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));
    }
     
    Последнее редактирование: 27 май 2017
  4. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    А я бы заморочился на отправку сообщений по правам. Ради прикола.
     
  5. Exception_Prototype

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

    Баллы:
    96
    Я бы для каждой команды сделал класс, где хранил бы всех игроков и всю другую информацию об команде, и по надобности отправлял сообщения всем игрокам из команды сообщение.
     
  6. alexandrage

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

    Баллы:
    173
    Игроки штука динамическая. Будешь по приколы в начале каждой игры права раскидывать?
    А вообще изи все.
    HashMap<String, Player> user = new HashMap<String, Player>();
    ..............
    user.put("белые", player);
    user.put("черные", player);
    user.put("синии", player);
    user.put("красные", player);
     
    Последнее редактирование: 27 май 2017
  7. Cristalix

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

    Баллы:
    76
    Имя в Minecraft:
    Test
    Убого =)
     
  8. Exception_Prototype

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

    Баллы:
    96
    Обоснуй. Если у нас есть команды, почему не создать для них по удобному классу, который будет хранить всё, что может описать команду?
     
  9. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    По началу да. А потом бы доиграл с этим и переделал бы всё на Metadata.
     
  10. alexandrage

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

    Баллы:
    173
    Ооп, не не слышал? Один класс на все команды можно.
     
  11. Exception_Prototype

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

    Баллы:
    96
    Я это и имею ввиду! Понятное дело, что структура класса будет одна.
    [​IMG]
    Но команд то может существовать много, а хранить их можно в листе каком нить. Теперь понятно, что я имел ввиду?
     

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