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

Плагин [FUN/CHAT] FaceChat - Чат в лицах и красках! [BukkitDev]

Тема в разделе "Неподтвержденные плагины", создана пользователем fromgate, 20 июл 2014.

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

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    FaceChat
    v0.1.2

    Этот плагин может немного "оживить" чат забавными сообщениями с изображением аватара игрока, построенным на основе его скина.

    BukkitDev
    Cкачать



    [​IMG]

    Функционал
    • Отображается морду-лица при входе игрока на сервер
    • Отображает аватар (с сообщением) при помощи специальной команды
    • Отображается все сообщения игроков в чате в форме сообщения с аватаром (этот режим по умолчанию отключен)
    Команды
    Основная команда facechat (алиасы: fchat, face)

    • /facechat reload — перезагрузить конфигурацию
    • /facechat [player:<PlayerName>] <Message> — отобразить сообщение с аватаром (если указано имя игрока, то аватар будет формироваться для этого игрока)
    Пермишены
    • facechat.reload — разрешает использовать команду /facechat reload
    • facechat.command — разрешает использоваться команду /facechat <Message>
    • facechat.command.player — разрешает использовать команду /facechat player:<PlayerName> <Message>
    • facechat.chat — у игроков с этим пермишеном в режиме face-chat'а сообщения будут отображаться с аватарами. Режим face-chat надо отдельно включать в config.yml
    • facechat.join — при входе на сервер игрока с таким пермишеном будет отображаться сообщение о входе на сервер с аватаром
    Настройка
    Код:
    general:
      check-updates: true   # Проверка обновлений
    face:
      skin-url: http://s3.amazonaws.com/MinecraftSkins/  # URL откуда грузить скины
      separator: '&8++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' # Разделитель ('' - для отключения)
      cache-lifetime-(minutes): 30  # Время жизни кэша (в минутах)
      default-color: '&e'  # Цвет сообщения по умолчанию
      chat:
        enable-for-chat-messages: false   # Включение/отключене режима face-чата
        message-start-line: 3  # Начальная строка для сообщения (0-7)
        message:  # Шаблон для сообщения
        - '&6&l%player%'
        - +--------------------------------------------------+
        - ''
        - ''
        - ''
        - ''
        - +--------------------------------------------------+
        - '&6&lFaceChat plugin by fromgate'
      join:
        show-join-message: true  # Отображать сообщение при входе игрока на сервер
        remove-default-join-message: true  # Удалять стандартное сообщение
        message: # Шаблон сообщения
        - ''
        - +--------------------------------------------------+
        - ''
        - '&6&l%player%&ejoined the game!'
        - ''
        - ''
        - +--------------------------------------------------+
        - '&6&lFaceChat plugin by fromgate'
    

    Проверка обновлений
    FaceChat includes a update checker that use your server internet connection. Update checker will every hour check the dev.bukkit.org to find new released version of plugin and you can easy disable it: just set parameter "check-updates" to "false" in config.yml.
     
    Последнее редактирование: 31 окт 2015
  2. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
  3. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    У меня был такой же плагин, только все это было в основе "моего" бота: ArcadeBot :D
    В любом случае - прикольно :)
     
  4. Ablovka

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

    Баллы:
    68
    Имя в Minecraft:
    Ablovka
    Идея

    Можно ли запихать в описание предмета?
    К примеру, грузишь скин на сервер, в конфиге указываешь: "lore2=host.ru/skin.png". А потом в описание просто забиваешь "lore2" и готово.
     
  5. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Ablovka
    Так есть же плагин @serega6531 на картинки в Lore (я кстати, в его плагине подсматривал на процедуру преобразования цвета в ChatColor, но в итоге сделал на основе MapPallete из bukkit). В этом плагине я точно такого делать не буду. Возможно добавляю пару условий для вывода сообщений, просили добавить команду для переключения режима чата, что-то там ещё по мелочам...
    Что-то долго не аппровят.

    Вот прямая ссылка: http://dev.bukkit.org/media/files/806/122/FaceChat.jar
    Кстати, когда вместе с плагином, я писал видео с экрана. Решил запечатлеть момент с начала создания плагина до появления первого результата в виде изображения аватар.
    В процессе естественно прерывался на "попить чай", "поговорить по телефону" и т.п. поэтому где-то непрерывность процесса нарушена.

    Видео не является ни обучающим ни каким-то там ещё, сделано просто ради забавы и может применяться исключительно для медитации и отключения сознания от бренности бытия ;)

     
    Последнее редактирование: 21 июл 2014
  6. Ablovka

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

    Баллы:
    68
    Имя в Minecraft:
    Ablovka
  7. SinBan

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

    Баллы:
    88
    Имя в Minecraft:
    FSka
    Если много игроков на сервере, не работает плагин(

    Так плагин просто супер)
     
    Последнее редактирование: 22 янв 2015
  8. FYNTIK1996

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

    Баллы:
    76
    Skype:
    fynjy9913
    Имя в Minecraft:
    FynTiK
    супер плагин респект Разрабу за плагин
     
  9. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Единственное узкое место - это закачка скинов с сервера mojang. Т.е. когда много игроков, то чаще пытается скачать все эти скины. Чтобы этого избежать нужно в конфиге поставить время жизни кэша побольше (по умолчанию там стоит 30 минут) — надо поставить несколько часов или даже сутки (1 час = 60, 5 часов = 300, сутки = 1440). Единственное если игрок сменит свой скин, то отобразится это изменение через какое-то время.

    Ну и можно попробовать эту версию - тут принудительно кэшируется скин при заходе игрока (а не при первом сообщении):

    https://dl.dropboxusercontent.com/u/64799811/FaceChat/FaceChat.jar
    Спасибо :)
     
  10. FYNTIK1996

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

    Баллы:
    76
    Skype:
    fynjy9913
    Имя в Minecraft:
    FynTiK
    есть баг в плагине анти пиар плагин не робит айпи кидаешь в чат и он отправляется
     
  11. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Что за плагин? Почему-то мне кажется, что в том плагине напутаны приоритеты обработчиков событий.
     
  12. FYNTIK1996

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

    Баллы:
    76
    Skype:
    fynjy9913
    Имя в Minecraft:
    FynTiK
    да любой анти пиар когда в вашем плагине включаешь чат анти пиар два плагина ставил они просто не работают когда айпи кидаешь пишет к примеру не пиарь а айпи в чат кидается вот такой маленький баг есть в плагине сделай хотя бы для плагина ограничение в чете цифр то реал анти пиар с чатом просто не робит=(
    вот я кинул айпи сервера в чат с анти пиар стоит уже два плагина так пробовал все ровно в чат пишет чужой айпи =*(
    просто доработай чат сделай анти пиар добавь ограничение в цифрах и все а так плагин супер
    а да сделай желательно что бы prefix в чате показывала есть некоторые не доработки а так супер
     

    Вложения:

    • oOlsh95.png
      oOlsh95.png
      Размер файла:
      34,3 КБ
      Просмотров:
      49
  13. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Можете показать откуда закачать Ваш антипиар? Просто интересно как он обращается с приоритетами событий.

    Ну и насчет префикса - тут та же ситуация. Те плагины, которые добавляют префикс и при этом делают это правильно -- их префикс отображается, а если плагины делают это непонятно как, то.... ;)

    Внедрять же антипиар или что-то ещё в этот плагин - смысла нет. Есть куча плагинов, которые написаны грамотно и которым FaceChat не помеха.
     
  14. FYNTIK1996

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

    Баллы:
    76
    Skype:
    fynjy9913
    Имя в Minecraft:
    FynTiK
    а анти пиар тут качал NumberLimit v1.0 вот как называется
     
  15. makssof

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

    Баллы:
    103
    У меня там приоритет не выставлен вообще)
    Так что это у меня там проблемка) Увы, сейчас немогу исправить - телефон.
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @makssof
    Если не выставлен - значит всё нормально должно быть. Т.е. это будет приоритет NORMAL, а у моего - HIGH. Т.е. мой плагин должен обрабатывать сообщения уже после твоего и соответственно получать измененное сообщение.

    Сейчас скачаю, проверю у себя.
    Ага! Скорее всего вот в чем дело:

    Ты обрабатываешь PlayerChatEvent, а это событие устарело, если я не ошибаюсь, где-то после выхода bukkit 1.3. Сейчас соответственно надо использовать AsyncPlayerChatEvent.

    Скорее всего (это мои домыслы, надо проверять ;)) сначала обрабатывается AsyncPlayerChatEvent, а потом - для совместимости со старыми плагинами — PlayerChatEvent. Поскольку у тебя при обработке не проверяется отменено событие или нет (а надо бы - вдруг сообщение было изменено другим плагином и цифр в нём уже нет?!) то твой получает уже отмененное событие видит в нём цифры и ругается. Только вот мой плагин уже эти цифры отправил посредством простого player.sendMessage(...).

    По логике у тебя обработчик должен быть таким:

    Код:
       @EventHandler(priority=EventPriority.LOW ignoreCancelled = true)
       public void onPlayerSendMsg(AsyncPlayerChatEvent e) {
          String msg = e.getMessage();
          int count = 0;
          int a = 0;
    
          for(int b = msg.length(); a < b; ++a) {
             char c = msg.charAt(a);
             if(c == 48 || c == 49 || c == 50 || c == 51 || c == 52 || c == 53 || c == 54 || c == 55 || c == 56 || c == 57) {
                ++count;
             }
          }
    
          if(count > this.maxCount && !e.getPlayer().hasPermission("numlim.bypass")) {
             e.getPlayer().sendMessage(this.errMsg);
             e.setCancelled(true);
          }
    
       }
    А вообще я сейчас проверю мои мысли касательно очередности обработки сообщений. Результат напишу здесь.
    @makssof
    В общем, я прав. Компилируем вот такой код:

    Код:
    @EventHandler(priority=EventPriority.LOW)
        public void onChat11(PlayerChatEvent event){
            event.getPlayer().sendMessage("PlayerChatEvent Pririty:LOW");
        }
        @EventHandler(priority=EventPriority.NORMAL)
        public void onChat12(PlayerChatEvent event){
            event.getPlayer().sendMessage("PlayerChatEvent Pririty:NORMAL");
        }
        @EventHandler(priority=EventPriority.HIGHEST)
        public void onChat13(PlayerChatEvent event){
            event.getPlayer().sendMessage("PlayerChatEvent Pririty:HIGHEST");
        }
     
        @EventHandler(priority=EventPriority.LOW)
        public void onChat01(AsyncPlayerChatEvent event){
            event.getPlayer().sendMessage("AsyncPlayerChatEvent Pririty:LOW");
        }
        @EventHandler(priority=EventPriority.NORMAL)
        public void onChat02(AsyncPlayerChatEvent event){
            event.getPlayer().sendMessage("AsyncPlayerChatEvent Pririty:NORMAL");
        }
        @EventHandler(priority=EventPriority.HIGHEST)
        public void onChat03(AsyncPlayerChatEvent event){
            event.getPlayer().sendMessage("AsyncPlayerChatEvent Pririty:HIGHEST");
        }
    Запускаем и пишем в чате "test" получаем следующее:
    [​IMG]

    Так что тебе надо обрабатывать событие AsynPlayerChatEvent с приоритетом LOW или LOWEST
     
  17. makssof

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

    Баллы:
    103
    Воу. Спасибо за такое мини расследование. :)
    Как починят в СЦ компьютер, сразу исправлю. :)
     
  18. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @FYNTIK1996
    Попробуйте вот эту версию: http://dev.bukkit.org/bukkit-plugins/facechat/files/3-face-chat-v0-1-1/

    NumberLimit v1.0 должен заработать.
    Возможно исправится ситуация с префиксами/суффиксами (там проблема скорее всего такая же).
    v0.1.1
    • Изменился URL скинов. Если Вы обновляетесь с предыдущей версии то либо добавьте в config.yml новый URL http://skins.minecraft.net/MinecraftSkins/ либо просто удалите config.yml - он будет пересоздано с новым адресом (правда настройки текста тоже потеряются)
    • Добавлена поддержка формата имени. Если Вы используете движок чата, который "поставляет" префиксы/суффиксы для имени игрока (что-то вроде [ADM]fromgate), то они будут отображаться и в сообщениях FaceChat
    • Для совместимости с плагинами, которые используют устаревшее событие PlayerChatEvent вместо нового AsyncPlayerChatEvent, плагин теперь также использует его.
     
  19. Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    все отлично работает, спасибо за плагин, но есть одно НО (смотрите на скрине)
    и еще: было бы круто, если бы с помощью этого плагина использовать вместо motd из essentials - т.е сообщение отправлялось только игроку который вошел
     

    Вложения:

    • facechat.PNG
      facechat.PNG
      Размер файла:
      61,8 КБ
      Просмотров:
      52
  20. SinBan

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

    Баллы:
    88
    Имя в Minecraft:
    FSka
    Я за!

    Но думаю будет большая нагрузка, каждый игрок заходит и наполняются много .png
     

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