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

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

Discussion in 'Управление сервером Bukkit' started by Wiste, Dec 22, 2013.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    RikkiLook Старожил

    Trophy Points:
    173
    Перенесено.
     
  12. Sirse

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

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

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

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

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

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

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

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

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

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

    Code:
    ...
                    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 Активный участник Пользователь

    Trophy Points:
    78
    Имя в Minecraft:
    Wiste
    Попробую..[DOUBLEPOST=1388238167,1388237650][/DOUBLEPOST]Не работает, видят все..
    upload_2013-12-28_17-41-58.png
     

Share This Page