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

Плагин [CHAT] rpChat2 2.0.7w - Глобальный чат, локальный чат, счётчик получателей, рации [1.6.2+]

Тема в разделе "Релизы плагинов", создана пользователем dark32, 21 дек 2013.

?

Плагин вообще нужен?

  1. Да

    75,4%
  2. Нет

    6,0%
  3. Совсем нет

    2,4%
  4. У меня Эсеншенал

    11,1%
  5. Я и сам такое напишу, уходи с форума.

    5,2%
  1. Orbis

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

    Баллы:
    153
    Вопрос по конфигу:
    Код:
    PM:
    <...>
    formatFrom: "[$pf$p$sf->$pf$r$sf]: $msg"
    Будет ли в этом случае отображаться префикс и суффикс игрока $r? Смущает то что одни и те же же $pf и $sf.
     
    Последнее редактирование: 25 фев 2014
  2. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Нет, не будет работать. Я уже не уверен что и первый случай будет работать. Нужно добавить в список задач.

    Мне так не хватает времени, чтобы провести отладку и проверку... блин... мне жаль.
     
  3. VaNnOrus

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

    Баллы:
    123
    По-моему, в личных сообщениях в любом плагине указываются только ники. Во всяком случае, в "популярных" плагинах.
    Возникает проблема с полным мутом, если существует канал с префиксом "a". Надо бы глобальный мут сделать ключевым словом "all" что ли.
     
    ПриветОтЛайки нравится это.
  4. Orhideous

    Orhideous Активный участник

    Баллы:
    63
    Дня доброго. Нашел этот плагин и вознамерился активно использовать его активно в своем проекте, так как реализовывает практически всё, что нужно.
    Хочу сообщить о подтвержденном баге при пересылке личных сообщений — о ней ещё сообщал Meowt в посте №37 этой темы. Вкратце: если использовать «!» как префикс канала личных сообщений, выводится фигня. Если просто использовать канал личных сообщений, тоже выводится фигня:
    Код:
    [SEVERE] Could not pass event AsyncPlayerChatEvent to RPChat v1.0.5
    Что характерно — всё работает, сообщения доставляются, но в консоль вот такие ошибки лезут, тысячи их.
    Сервер — MCPC+ 1.5.2
    В общем, протестировал этот баг на воспроизводимость, открыл issue с техподробностями.
    Возможно, это связано с тем, что плагин собран на версию CB 1.6.4

    Есть тестовый сервер с тем же окружением, что и на продакшене, так что согласен тестировать новые сборки (кстати, так и не нашел ссылку на Jenkins) — поломать не жалко.

    P.S. Просмотрел код мимоходом… написано вроде бы нормально. Вот бы ещё логгирование в простые текстовые файлы по имени канала прикрутить — было бы здорово. (открыл issue)
     
    Последнее редактирование: 1 мар 2014
  5. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Код плагина ужасен... поэтому я и не давал публично ссылку на исходники.
    Jenkins отсутствует, т.к. я слишком нуб, чтобы понять как его настроить и как с ним работать.
    Честно плагин не тестировался под 1.5.2, он должен работать под этой версии чисто на вере.

    По поводу 37 сообщения - там была ошибка в ином.

    Ох.. .так и придётся сегодня заняться плагином. Так.... где можно найти ссылку на MCPC 1.5.2?

    Полчаса ломаю голову почему пишет "101 секунду" вместо "101 секунда".По пути исправил баг с выводом нескольких окончаний, баг со временем и ещё какой-то баг, а всё равно "секунду"... а потом я глянул в конфиг...

    Прогнал базовые тесты.
     
    Последнее редактирование: 1 мар 2014
  6. Orhideous

    Orhideous Активный участник

    Баллы:
    63
  7. VaNnOrus

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

    Баллы:
    123
    Не помню писал об этом раньше или нет, но нужно изменить вывод остатка времени. Если больше 59 секунд, то писать в минутах, больше 59 минут в часах, больше 23 часов в днях. Функция не сложная >_>
     
  8. Orhideous

    Orhideous Активный участник

    Баллы:
    63
    Автор не будет против, если попытаюсь структурировать документацию по плагину в GitHub Wiki pages?
    Просто придется использовать плагин по-максимуму, и раз взялся разбирать по косточкам его, то почему бы и не облегчить другим работу?
     
  9. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    А если 61 секунда, тогда как? 1 минута 1 секунда?
    Документация написана для меня, чтобы я сам не забывал, что реализовал. Против не буду, но и за тоже, т.к. времени мало на плагин. А код ещё чистить и чистить, тестеть и тестеть (чего стоит пимк, экономика и симпклан)
     
  10. VaNnOrus

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

    Баллы:
    123
    Можно и так, но проще как это чаще делают округлять в меньшую сторону или большую. То есть при 61 секунде писать либо 1 минута, либо 2 минуты и все.
     
  11. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Слишком сложно параметризовать. Не представляю как хранить в конфигах все эти настройки.

    1 минута 30 секунд - середина и можно округлить в обе стороны, зависит от того как вас учили.
     
  12. VaNnOrus

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

    Баллы:
    123
    Да кого волнует как это будет округляться? Главное показать "2 минуты" или "1 минута", а не "91 секунда". ( или, что чаще случается, "81 532 секунды", к примеру ).
    На самом деле лучше округлять в большую сторону всегда. То есть 61 секунда - 2 минуты, 23 часа и 1 секунда -> 24 часа -> 1 день. Так просто проще, а разницы никакой особо нет.
     
  13. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    На данном этапе можно вывести сообщение такого формата %i дней %i часов %i минут %i секунд где %i - соответствующие число. Округление довольно интересная идея, но я думая как её сделать красиво, а это может занять много времени, особенно если забуду об этом.

    Надо наконец выложить и протестить текущую сборку. Вроде базовые тесты пройдены, но некоторые рющки и плющки (экономика, простокланы, каналы по имени, переключение по одному префиксу и ещё какая-то фигня) не тестировались как следует. Возьмёте такой плагин?
     
  14. VaNnOrus

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

    Баллы:
    123
    Сами протестируем, отпишемся >_>
    Что там думать?
    Если меньше либо равно 60 => выводить в секундах
    Если больше 60 секунд, но меньше либо равно 3600 => выводить в минутах
    Если больше 3600 секунд, но меньше либо равно 86400 => выводить в часах
    Если больше 86400 секунд, но меньше либо равно 604800 => выводить в днях
    Дальше можно не писать. Хотя если очень захотеть ничего не мешает по той же логике до года довести (или даже века и тысячелетия >_> ). А, последнее условие не нужно, если дальше не писать.
     
  15. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Версия 2.2.1h
    RPChat.zip
    Скачать RPChat.
    • Если сообщение о числе слушателей или о том что вас не услышали не заполнено - оно не будет выводится (проверенно)
    • Добавлена поддержка тегов из SimpleClans, работоспособность не гарантирую. (не проверено)
      $SC.clan - тег клана
      $SC.rank - тег ранка
      $SC.kdr - тег КДР
    • Время мута можно задать в виде 1d1h1m1s. Длина числа ограничена 5 знаками. используйте inf для очень длинного мута (1000 дней). (проверено)
      1d1d1d - корректное время
      1h600s - корректное время
      20s1d- корректное время, но не гарантированно
      1p- не корректное время, не известная величина времени, вернёт 0
      20s1p - вроде как 20 секунд
    • mcnw.<chat_inner_name>.color.<color tag> - право на использование цвета <color tag> в канале <chat_inner_name> (не помню)
    • Добавлены окончания для разных числительных: $(один|два|много|$var) - будет заменено в зависимости от значения $var. Работает для строк:
      • mute.message
      • mute.muteMessage
      • mutte.muteSee
      • cooldown.text
    • message: "&o&7Вы приглушены. Возобновить общение вы сможете через $time $(секунду|секунды|секунд|$time) или $data.day $(день|дня|дней|$data.day) $data.hour $(час|часа|часов|$data.hour) $data.minute $(минута|минуты|минут|$data.minute) $data.second $(секунду|секунды|секунд|$data.second)."
    • Добавлены задержки/кулдовн <chat_inner_name>.cooldown(проверено)
    • Поддержка групповых значений задержек/кулдован (не проверено)
      Код:
      <chat_inner_name>
          groups:
               admin:
                   cooldown: 1
               moderator:
                   cooldown: 2
               VIP:
                   cooldown: 5
    • Поддержка групповых значений для канала по умолчанию (не подтверждено)
      Код:
      <chat_inner_name>
         groups:
               admin:
                    default:true
                moderator:
                    default:true
                VIP:
                     default:true
      
    • Перехват сообщений на вход/выход (не проверено)
    • Добавлена подержка экономики. Требует Vault
      Код:
      <chat_inner_name>
         cost:
      # базовая цена
              base: 10.0 
      # цена за каждый символ
              per: 1.0
              needmoremoney: "&cНе достаточно средств, нужно $total. Цена сообщения $base и по $per за каждый символ."
    • Добавлены команды для отправки и переключения каналов (не проверено, потенциально крашит)
      Код:
      <chat_inner_name>
          switchcmd: "/global "
          sendcmd: "/g "
    • mcnw.<chat_inner_name>.economy.bypass - право для обхода платы за сообщения (должно работать)
    • Опция в настройках для публичного оповещения о муте. (не проверено)
    • Если префикс не указан - канал не доступен по префиксу. (не проверено)
    • Нельзя переключится в канал, если у тебя нет на это прав. (не проверено)
    • Опция для переключения канала по одиночному префиксу. (не проверено) (нафига?)
    • $rsuffix/$rprefix для суффикса/префикса получателя ЛС
    • Исправлена ошибка с ЛС от Orhideous
    Вроде не упутсил ничего.
     

    Вложения:

    • RPChat.zip
      Размер файла:
      90,3 КБ
      Просмотров:
      337
    Последнее редактирование: 13 мар 2014
    Orbis и Meowt нравится это.
  16. VaNnOrus

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

    Баллы:
    123
    Перемудрили, по-моему. Проще считать время по префиксу/суффиксу (в принципе как и сейчас) для одной величины времени. Кому на практике надо замутить игрока именно на 3 дня и 44 секунды? Никому, я думаю.
    Так же имеет смысл добавить месяцы и годы.
     
  17. Meowt

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

    Баллы:
    123
    Я просто написал /rpchat и тут понеслось:
    2014-03-13 00:18:23 [INFO] 222 issued server command: /rpchat
    2014-03-13 00:18:23 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing 'rpchat' in org.bukkit.command.PluginCommand(rpchat, rpChat v2.2.0)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:548)
    at net.minecraft.network.NetServerHandler.func_72566_d(NetServerHandler.java:1351)
    at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1217)
    at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:242)
    at ru.dark32.chat.CommandPreprocessListener.tabComplete(CommandPreprocessListener.java:32)
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:452)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
    at net.minecraft.network.NetServerHandler.func_72566_d(NetServerHandler.java:1332)
    at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1217)
    at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:242)
    at ru.dark32.chat.CommandPreprocessListener.tabComplete(CommandPreprocessListener.java:32)
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:452)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
    at net.minecraft.network.NetServerHandler.func_72566_d(NetServerHandler.java:1332)
    at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1217)
    at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:242)
    at ru.dark32.chat.CommandPreprocessListener.tabComplete(CommandPreprocessListener.java:32)
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:452)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
    at net.minecraft.network.NetServerHandler.func_72566_d(NetServerHandler.java:1332)
    at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1217)
    at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:242)
    at ru.dark32.chat.CommandPreprocessListener.tabComplete(CommandPreprocessListener.java:32)
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    ...
    И т.д.
    Ввёл /s и тут:
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:29 [INFO] 222 issued server command: /s
    2014-03-13 00:18:38 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    2014-03-13 00:18:43 [INFO] Unknown command. Type "help" for help.
    /help:
    2014-03-13 00:24:27 [INFO] 222 issued server command: /help
    2014-03-13 00:24:27 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing 'help' in org.bukkit.command.defaults.HelpCommand(help)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:548)
    at net.minecraft.network.NetServerHandler.func_72566_d(NetServerHandler.java:1351)
    at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1217)
    at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:242)
    at ru.dark32.chat.CommandPreprocessListener.tabComplete(CommandPreprocessListener.java:32)
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    ...
    Думаю, что суть флуда понятна
    Что-либо проверить в таких условиях, увы, не вышло.
    Тестировалось на MCPC+ 1.6.2 last build
     
  18. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Так всётаки всё сломал. Завтре посмотрю где ошибка, но похоже связанна с перехватом команд. ПохОже не коро будут касто нЫе команды для каналов
    Может и перемудрил, но реализация уже есть и работает. Мало кто будет банить на 3 дня и 44 секунды, не спорю, но реализация готова и работает (код могу выложить, если нужно). Делал по примеру Орлиного Глаза (HawkEye), там откат был реализован подобно. Да и вроде в LB и BB подобно было сделано.

    Код:
    at ru.dark32.chat.CommandPreprocessListener.tabComplete(CommandPreprocessListener.java:32)
    Ааа... 32 вторая строка... число хорошее - строка плохая, как так?
    Пойду постигать дзен.

    Для особо зрительных - https://github.com/Dark32/RPchat2/issues?state=open - для ошибок. Нет больше тайны в исходниках, но они страшны.

    Вроде исправил, отключив функцию.
     
    Последнее редактирование: 13 мар 2014
  19. Meowt

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

    Баллы:
    123
    Да, теперь без ошибок, но все же жду команды для отправки и переключения каналов.
    Теперь по поводу тестов:
    Работает, только при указании "cooldown: 20" настройки для групп игнорятся. Лучше было бы если данная настройка отвечала за кулдаун по-умолчанию, либо вообще убрать, т.к. без надобности - внес в
    Код:
        groups:
            default:
                default: true
                cooldown: 20
    и всё.
    50 на 50%. Работает только сообщение входа (join) у групп, а выход (left) стандартный у всех как ни крути.
    Опять же 50 на 50%. Работает оповещение выдачи мута только для всех, сообщение о снятии мута не выводится как для всех, так и для того, кто был в муте.
    Не работает как ни старался.

    Ошибки:
    При вводе /sw - список каналов пуст, в связи с этим не стал тщательно тестировать всё, что связано с префиксами и сигнами.
    Если в настройках канала указать
    Код:
    needPerm: true
    то при попытке входа в него выводится сообщение "Канал не найден!" абсолютно у всех.

    Не проверено:
     
  20. Автор темы
    dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    • Перехват сообщений на вход/выход
    Подтверждаю, не понимаю почему не хочет работать. Буду копать
    • Опция в настройках для публичного оповещения о муте.
    Сообщение о снятие мута не выводилось никогда.
    • mcnw.<chat_inner_name>.color.<color tag> - право на использование цвета <color tag> в канале <chat_inner_name>
    Не проверял.
    Список каналов вводится в ручную в конфиге. Могу назад вернуть... опять...
    Эм... нужно проверить.

    Эх... надо тестить и тестить... в выходные займусь.
     

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