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

Дополнение функции в ChatManager [java]

Тема в разделе "Управление сервером Bukkit", создана пользователем Wiste, 22 дек 2013.

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

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Мне нужна помощь по chatmanager'y, одну функцию добавить,а именно чтобы одно сообщение писалось только игроку который написал сообщение. Сама функция.
    Код:
    String _str = String.valueOf(event.getRecipients().size() -1);
    format = format.replace("%zpz", _str);
    Её вставил в ChatManager,а именно она показывает перед сообщением сколько игроков слышат твоё сообщение в скобочках, всё работает, но когда написал сообщение показалось (%) имя: текст - пример, и то что (%) видно всем,но нужно как то сделать чтобы видел только тот кто написал сообщение,но не все.
    Все - это те кто слышал сообщение. (Количество игроков)
    Помоги пожалуйста, желательно с готовой функцией.
     
  2. Хостинг MineCraft
    <
  3. aceJKE

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

    Баллы:
    123
    Отправляй сообщение с количеством улышавших тому, кто пишет это сообщение
     
  4. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Не знаю как подставить функцию, можете дать полностью готовую?!
     
  5. aceJKE

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

    Баллы:
    123
    Нет. Думай сам
     
  6. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Если бы я знал как, тему не создавал, мне нужна лишь маленькая функция,я не прошу написать плагин, помоги пожалуйста
     
  7. aceJKE

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

    Баллы:
    123
    Я в жизне не видел исходники ChatManager'а...
    Делай что-то типо
    event.getPlayer().тут функция выводящая сообщение с процентами
     
  8. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Я это к стати и делал, вставлял в разное место, ошибки.
    upload_2013-12-22_20-29-45.png
     
  9. aceJKE

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

    Баллы:
    123
    Я не кодер, по этому не могу сказать, что не так. Я бы просто начал переписывать по 1000раз пока не получилось)
     
  10. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Я этим и занимаюсь) Мне бы помощи найти на этом форуме...
     
    MineMan910 нравится это.
  11. RikkiLook

    RikkiLook Старожил

    Баллы:
    173
    Перенесено.
     
  12. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Функция не имеет смысла - getPlayer возвращает EntityPlayer, пихать туда аргументы - нельзя. Об этом же говорит IDE.
     
  13. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Может быть поможешь, как сделать чтобы было видно это только тому кто пишит?
     
  14. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Я не до конца понял, что ты хочешь.
     
  15. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Сейчас работает так. Когда написал в локальный чат(не глобалку) перед ником отправителя пишит в скобочках число игроков тех которые слышат сообщение по типу (3) nick: сообщение
    так вот, вот эта (3) видно всем, кто слышит сообщение,а нужно сделать так чтобы было видно только тому кто отправил сообщение,вот исходник, там сделать нужно чтобы видел только отправитель http://rghost.ru/51244885
     
    ВремяПриключений нравится это.
  16. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Набросал костыль, не проверял.
    Примерно вот так будет выглядеть -

    Код:
    ...
                    event.getRecipients().clear();
                    event.getRecipients().addAll(main.getUtils().getLocalRecipients(player, format, range));
                    event.getRecipients().remove(player); //Дикий костыль. Выпиливаем игрока из реципиентов.
                    player.chat("<"+String.valueOf(event.getRecipients().size())+">"+format.replace("%2$s",chatMessage).replace("%1$s",player.getName())); //Дикий костыль, часть 2. Отправляем сендеру уникальное сообщение
                    player.sendMessage(format.replace("%2$s",chatMessage).replace("%1$s",player.getName()));
    ...
    
    Возможно я ошибся в player.chat, так как не знаю, показывает ли этот метод сообщение одному только игроку, или рассылает всем.
     
  17. Автор темы
    Wiste

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

    Баллы:
    78
    Имя в Minecraft:
    Wiste
    Попробую..[DOUBLEPOST=1388238167,1388237650][/DOUBLEPOST]Не работает, видят все..
    upload_2013-12-28_17-41-58.png
     
    ПриветОтЛайки нравится это.

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