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

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

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

?

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

  1. Да

    73,9%
  2. Нет

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

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

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

    5,5%
  1. Pilso

    Pilso Новичок

    Баллы:
    18
    dark32, да собственно твой плагин по описанию показался мне более приемлемым, но вот с конфликтами нужно что то решить, если есеншел-чат потереть надеюсь получится настроить.

    Зашел на хостинг, далее консоль и ребут. Я предполагал если удалить эти строки, они просто восстановятся по дефолту.
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    1. Конфиги сложные, не спорю, слишком перегруженные.
    Говори, что нужно настроить, какие каналы, постараюсь настроить.
    2. Не восстановит, как то руки не доходят это сделать.
     
  4. Meowt

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

    Баллы:
    123
    Было бы неплохо ввести отключение ненужных функций в конфиг. Например, отключение /mute, /deaf и, соответственно, storage.yml, куда записываются все игроки и их "настройки молчанки".
    А также пригодилось бы отключение "listenerMessage", т.е. чтобы показывалось только "noListenerMessage" когда никто не слышит.[DOUBLEPOST=1388857449,1388844826][/DOUBLEPOST]Не работает /mute, т.е. тот, кто в муте, может писать сообщения и его слышат все.
     
    Последнее редактирование: 4 янв 2014
  5. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    1. Подумаю как проще, в плане настройки, реализовать

    2. Оу... ок... проерю.
     
  6. Meowt

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

    Баллы:
    123
    Понял в чём причина, реагирует на регистр. Если игрок Player и написать "/mute player a 60 Тест", то ничего не будет, если же "/mute Player a 60 Тест", то всё отлично.
     
  7. VaNnOrus

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

    Баллы:
    123
    @dark32 , исправьте, пожалуйста, регистрозависимость.

    Еще хорошо бы сделать указание времени в формате минут, часов, дней, кроме секунд, чтобы не писать для мута на сутки 86400 секунд.

    Добавить поддержку кулдауна в каналах. Например, чтоб кричать можно было раз в минуту, скажем. Есть отличный готовый класс кулдауна - EasyCooldown. Настройки кулдауна, естественно, вынести в конфигурацию канала и возможность вообще кулдаун для данного канала выключить, чтоб не ставить 0 и не создавать лишнюю хешмапу.
    Совсем уж чудо будет, если добавить отдельно настройки кулдауна для групп. Например, чтоб кулдаун ставился меньше для группы випов, а если не указан кулдаун для данной группы пользователя, то ставился бы дефолтный для канала.

    Добавить "правильные окончания" для всего, что может их использовать. Например "Вы не можете писать еще 21 секунду", а не "секунд". Есть функция для php:
    PHP:
    /*
    *  Возвращает корректное окончание слов
    */
    function getCorrectEnding($num$one="Секунда"$some="Секунды"$many="Секунд"$hide_num=0){
        
    $val $num 100;
     
    if (
    $val 10 && $val 20$str $many;
    else {
        
    $val $num 10;
        if (
    $val == 1$str $one;
        elseif (
    $val && $val 5$str $some;
        else 
    $str $many;
    }

        if(
    $hide_num == 1){
            return 
    $str;
        }else{
            return 
    $num .' '$str;
        }
    }
    Думаю переписать ее под java не проблема. Все используемые окончания не плохо было бы в локализацию вывести.

    Если возможно добавить поддержку "автозаполнения и листания" ников по табу в командах типа mute.
     
  8. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    1. Посмотрю что можно сделать
    2. Уже думал. Кину в список планов
    3. Уже думал. Кину в список планов
    4. думаю как проще реализовать настройку.

    Сколько планов теперь... но сперва релиз того, что уже сделано (тиги кланов вроде), потом буду колдунсвовать.
     
  9. VaNnOrus

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

    Баллы:
    123
    Совсем забыл, еще исправьте, пожалуйста, учет "слушателей" для "шпионов". В смысле, чтоб игрок с правом mcnw.spy не учитывался как тот, кто услышал игрока, если он не попадает в радиус, на котором действует канал.

    К слову, я мог бы помочь написать некоторые вещи.
     
  10. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Отдельные вещи... есть ода вещь, которую можно написать - очередной парсер строк.
    Есть строка следующего вида: "Некоторый текст $some_variable ещё текст, очередной текст, проверка оконча$(ние|ния|ний|$variable) ещё текст"
    Необходимо выделить "$(ний|ния|ний|$variable)", распарсить на 4 значения (ние,ния,ний,$variable), заменить строковое значение $variable на число (если оно число, иначе заменить на константу), передать в метод все 4 значения и результатом метода заменить выделенную строку. Метод можно сделать пустышкой, важен парсер.

    Сам то напишу, но будет куча регулярок... а это медленно...
     
  11. VaNnOrus

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

    Баллы:
    123
    Показали бы парсер который есть сейчас. Вообще я имел в виду, что могу помочь кулдаун прикрутить, функцию проверки окончания переписать на java, и что-то в этом роде :) Парсер сложновато мне будет написать, никогда не писал ничего подобного :)
     
  12. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Тогда может JS и JQuery будет проще? Есть одна идейка с конфинами, но с моими знаниями JS, JQuery это займёт в 3-4 раза больше номинального времени.

    Сейчас парсера нет, есть только регулярка, что-то вроде этого \$\((.+?)\|(.+?)\|(.+?)\|([\d\w+?])\) хотя не назову ни одного окончания состоящего не только из букв
    Кулдаун это не слишком сложно, по сути же это автомут и не более. Делаем штамп времени от последнего сообщения, записываем в хеш, а после, при отправке следующего сообщения - сверяем время со штампом.
    Окончания... вот для них то парсер и нужен. Первая часть - хранения информации.
    По мне, так парсер - это просто, особенно с регулярками (если это не HTML).

    Я не люблю пускать людей в свой код, мне за него всегда стыдно, особенно за грамматику и комменты... Ноиз постоянно из-за этого ворчит. По такому поводу лучше овить меня в Скайпе, в ВК или ещё где.

    Завтре будет предрелизный прогон и, скорее всего, новая версия. Будут игнор и префиксы, плюс пара мелких фиксов. Окончания и более крупне введения будут позже.
     
  13. Orbis

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

    Баллы:
    153
    Неплохо бы было обозначать канал цветом не только текста, но и двоеточия после ника. + дополнительные права на писание определенным цветом в любом канале. Красный пригодился бы модераторам для привлечения внимания игроков, а право писать золотым (оранжевым) можно было бы выдавать випам.

    Кстати, возможность писать в чат за определенную вещь - практически панацея от флуда.
     
  14. VaNnOrus

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

    Баллы:
    123
    Я ж давал ссылку на готовый класс, он вообще шикарен, по-моему :) Ну и главный плюс - не надо изобретать ничего, просто 5 строчек и кулдаун работает. Универсальная вещь, я вообще во всех плагинах своих буду использовать. Правда совсем мой у меня только 1 плагин :D[DOUBLEPOST=1388959639,1388959435][/DOUBLEPOST]
    Кстати, да. Насчет цветов мы тоже подумали уже, было бы не плохо с проверкой прав парсить сообщение, если есть право писать цветом в принципе и писать конкретно этим цветом - вставлять цвета.

    Цвет двоеточия итак можно сменить, вроде.

    Ах да, еще по-моему лучше не окончания заменять, а вставлять целые слова, как в функции, которую я показывал. А слова брать из конфига конкретного сообщения.
    Например, пишется вот мут снимется через сколько-то секунд - из настроек кроме самого текста сообщения брать 3 слова: секунда, секунды, секунд. Ну, вроде, понятна мысль :)[DOUBLEPOST=1388996143][/DOUBLEPOST]@dark32 , нашли баг, видимо, в функции форматирования сообщения - почти всегда символ "*" вырезается из сообщения.
     
    Последнее редактирование: 6 янв 2014
  15. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Это не СиплКлан, это какое-то издевательство...
    API нашёл, настроил как в инструкции и... бац тебе - не работает, устарело морально на 2-3 версии, нет вообще никакого API для него походу...
    Не будет префиксов в текущем релизе - они не дают никакого приемлемого API для того чтобы получить эти самые префиксы. Буду копать без API, но это на долго[DOUBLEPOST=1389000702,1388999304][/DOUBLEPOST]
    1. ну да... когда моя реализация предполагает порядка 5-20 строк на всё, а тут целых два класса на это... но это уже технические детали, которые разрешатся в ходе реализации.
      Думаю над второй частью - разные кулдауны разным группам
    2. цвета в сообщение сейчас поддерживаются только в BROADCAST канале. Думаю сделаю поддержку по пермам и в других каналах.
    3. Есть такая вещь как суффикс... полезная вещь, если в настройках не стоит установка цвета канала и стоит выводить суффикс, то цвет будет зависть от суффикса.
    4. вставлять окончания или слова - это уже детали конфигурации, проблема всё же в хранение. Не создавать же для каждого слова по функции, там же не только в секундах могут вариации быть. И даже хранение каждого варианта слова - опять не вариант, слишком много неопределённости.
      Мой вариант хранения в конструкциях типа $(one|two|five|$variable) мне кажется более логичным, хотя это может быть не так.
    5. Должна была быть фича с рандомроллом, но фича не доделана, уберу на время.

      Прогон базовово функционала прошёл. Сейчас буду оформлять
    [DOUBLEPOST=1389001776][/DOUBLEPOST]Обновление:
    • Добавлена команда /ignore. Теперь вы можете игнорировать неугодных вам игроков (шпионы не игнорируют)
      Код:
      #    mcnw.ignore.help                                - право на справку по игнору
      #    mcnw.ignore.see                                  - право на просмотр игноров
      #    mcnw.ignore.all                                  - право на просмотр всех игногров
      #    mcnw.ignore.see.self                          - право на просмотр своих игноров (не имеет смысла при наличии "mcnw.ignore.see")
      #    mcnw.ignore.ignore                            - право на игнор
      #    mcnw.ignore.unignore                        - право на снятие игнора
      #    mcnw.ignore.non                                - право на не игнорируемость
    • /mute , /deaf, /ignore теперь не регистрозависимы по нику
    • Шпионы не учитываются в слушателях, если они не должны слышать это сообщение
    • Если сообщение "listenerMessage" или"noListenerMessage" не введено, оно не будет выводится
    • Мелкие фиксы
    Скачать

    Планы:
    • Автозаплнение по табу для команд
    • Вариация окончаний в зависимости он числа
    • Поддержка цвета в сообщениях, при наличие прав на это
    • Охлаждение, кулдаун сообщений
    • Формат времени для мута вида: 1d1h1m1s
    • Снова попытаюсь прикрутить клантеги
    • /kiss
     
    Последнее редактирование: 6 янв 2014
    Meowt, VaNnOrus и Orbis нравится это.
  16. VaNnOrus

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

    Баллы:
    123
    Там ведь один класс, к тому же отлично работает с возможностью создания независимых кулдаунов простым изменением названия кулдауна :)

    Я ж про хранение и писал. В файле локали писать кроме текста сообщения 3 варианта для окончаний. "$(one|two|five|$variable)" one, two и five откуда-то ж должны браться)
     
  17. Orbis

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

    Баллы:
    153
    Хм, а почему у глухоты в отличие от молчанки нет параметра "<time>"?
     
  18. Meowt

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

    Баллы:
    123
    В обновлении при написании в чат со знаком "!" используя в настройках канала "prefix: "!"" ошибка, чего не было до обновления:
    Could not pass event AsyncPlayerChatEvent to RPChat v1.0.5
    org.bukkit.event.EventException

    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:437)

    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)

    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)

    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)

    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:461)

    at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1266)

    at net.minecraft.network.NetServerHandler.func_72481_a(NetServerHandler.java:1194)

    at net.minecraft.network.packet.Packet3Chat.func_73279_a(Packet3Chat.java:68)

    at net.minecraft.network.TcpConnection.func_74447_i(TcpConnection.java:350)

    at net.minecraft.network.TcpConnection.func_74450_c(TcpConnection.java:556)

    at net.minecraft.network.TcpReaderThread.run(TcpReaderThread.java:23)

    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer cannot be cast to java.lang.Comparable

    at java.util.TreeMap.compare(Unknown Source)

    at java.util.TreeMap.put(Unknown Source)

    at java.util.TreeSet.add(Unknown Source)

    at ru.dark32.chat.chanels.BaseChanel.getRecipients(BaseChanel.java:230)

    at ru.dark32.chat.ChatListener.onPlayerChat(ChatListener.java:72)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.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:435)

    ... 10 more
    Ах да, в консоли после каждого сообщения пишет:
    2014-01-06 19:44:49 [INFO] Meowt isInChanel true isn'tSelf false isHear true hasDeaf true hasn'tIgnore true all false
    2014-01-06 19:44:49 [INFO] false
     
  19. Автор темы
    dark32

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

    Баллы:
    123
    Имя в Minecraft:
    dark32
    О боже... я собрал билд с отладочными сообщениями...
    А вот ТрееСет я же менял... сейчас пере соберу.
    Пересобрал, перезалил. Нужно быть повнимательней, чёрт побери, нельзя такое повторять, зарелизить отладочную сборку...

    Meowt isInChanel true isn'tSelf false isHear true hasDeaf true hasn'tIgnore true all false
    В канале, сам, слышит, слушает, не игнорирует, в целом - нет
     
    Meowt нравится это.
  20. Orbis

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

    Баллы:
    153
    Все-таки очень понравился ваш плагин, я хотел бы материально поддержать разработку, как я могу это сделать?

    P.S. Извините, что в теме, просто переписка и стена у вас закрыта.
     
  21. Meowt

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

    Баллы:
    123
    Неправильная работа listenerMessage и noLlistenerMessage.
    Если вписать в конфиг
    listenerMessage: ""
    noListenerMessage: "&7Вас не услышали"​
    То ни то, ни другое сообщение не будет выводится.
    Если же написать
    listenerMessage: "Ня"
    noListenerMessage: "&7Вас не услышали"​
    То будет выводится только noListenerMessage, т.е. как должно быть при пустом сообщении в listenerMessage. Исправьте. И будет удобнее вывести в конфиг включение/выключение listenerMessage и noListenerMessage.
     

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