Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

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

    FominEvgeni Новичок

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

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

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

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    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
  5. Dereku

    Dereku Старожил

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

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

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

    alexandrage Администратор

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

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

    Баллы:
    61
    Имя в Minecraft:
    Superzeka
    Убого =)
     
  9. Exception_Prototype

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

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

    Dereku Старожил

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

    alexandrage Администратор

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

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

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

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