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

Плагин [INFO/ADMN/CHAT] rscMessages v0.7.5b — менеджер межсерверных объявлений [1.5.x-1.10.x]

Тема в разделе "Релизы плагинов", создана пользователем Reality_SC, 18 июн 2014.

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

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Плагин предназначен для управления именованными списками (lists) текстовых рассылок (сообщений (messages) в чат). Хранит списки и сообщения в MySQL. Простота настройки и интеграции с чем-либо, удобные и интуитивные команды. Поддерживает json-сообщения (сервера 1.7+) и плейсхолдеры (через PlaceholderAPI).

    Полностью заменяет собой плагин AutoMessage, который и натолкнул меня на разработку альтернативы.

    Основные функции:
    • Показ сообщений, поделённых тематически (на списки), игрокам на множестве серверов.
    • По каждому списку: отдельные права на получение сообщений (receive), редактирование текста сообщений (edit) и изменение параметров показа (setup).
    • Возможность указать отдельный список, сообщения из которого будут показываться игрокам, если они играют на сервере время, меньшее указанного (являются НовичкамиNewbies).
    Команды:
    • /rscm list [список] — перечислить доступные Вам списки или сообщения из указанного списка.
    • /rscm info <список> [#] — посмотреть свойства самого списка или отдельного сообщения.
    • /rscm broadcast <список> [#] — инициировать рассылку из указанного списка или конкретного сообщения.
    • /rscm add <список> <текст> — добавить новое сообщение в список.
    • /rscm edit <список> <#> <текст> — заменить текст определённого сообщения на новый.
    • /rscm remove <список> [#] — удалить отдельное сообщение или целый список.
    • /rscm set <список> [#] <свойство> [значение] — установить определённое свойство списку или сообщению.
    • /rscm help [1|2] — страницы помощи по доступным Вам командам.
    • /rscm reload — перечитать config.yml и перезапустить плагин.
    Подчёркнутые красные символы есть однобуквенные алиасы для соответствующих команд: l, i, b, a, e, r, s, h.

    Права:
    • rscm.receive.<список> — право для получения рассылки сообщений указанного списка.
    • rscm.receive.* — игрок с таким правом будет получать сообщения из всех списков.
    • rscm.edit.<список> — листинг/просмотр свойств/создание/редактирование/удаление/вкл./выкл. сообщений из указанного списка.
    • rscm.setup.<список> — создание/настройка параметров/удаление списка. Включает в себя соответствующее edit-право.
    • rscm.admin — доступ ко всем командам плагина, но не включает в себя rscm.receive.*.
    Свойства:
    • Списки имеют следующие свойства:
      • enable (вкл/выкл) — выключен (молчит) или включён (регулярно устраивает рассылки).
      • random (вкл/выкл) — рассылает сообщения по порядку или случайным образом.
      • delay_sec (сек) — период в секундах между ближайшими рассылками из этого списка.
      • prefix (текст) — константа, добавляющаяся перед каждым сообщением.
      • sound (текст) — константа, содержащая название звука, который будет проигран игроку при получении сообщения.
    • Сообщения имеют следующие свойства:
      • enable (вкл/выкл) — участвует ли сообщение в рассылке или нет (скрыто).
    В префиксах списков и текстах сообщений можно использовать мои специальные коды цветов и стилей (как в rscPermissions). Сообщения имеют сквозную нумерацию по всем спискам, начиная с 1.

    Настройка плагина:
    Файл config.yml создаётся автоматически при первом запуске и содержит минимум необходимых настроек:
    Код:
    settings:
      # Какой языковой файл использовать? Из коробки идут english и russian
      language: russian
      # Описание соединения с MySQL сервером
      connection:
        # Адрес сервера и название базы данных
        hostname: sql.example.com:3306/minecraft
        # Данные учётной записи на указанном СУБД
        username: minecraft-server
        password: qwertypassword
        # Префиксы, которые будут иметь таблицы lists и messages
        prefixes: rscm_
      # Как часто нужно обновлять данные из БД?
      fetch-interval-sec: 600
      # Дублировать проходящие по серверу рассылки в консоль?
      broadcast-to-console: false
      # Настройка сообщений, которые следует показывать Новичкам:
      for-newbies:
        # Название списка, содержащего сообщения. Новичкам не нужно иметь явно права, чтобы получать их.
        special-list-name: 'Newbies'
        # Интервал времени (сек) с момента первого захода, в течение которого игрок на сервере считается Новичком (604800 = 1 неделя)
        interval-sec: 604800
      # Добавлять префикс списка к сообщению в формате json?
      # (ожидается, что префикс + сообщение вместе дают корректную json-строку)
      add-prefix-to-json: false
      # Отправлять ли статистику использования?
      use-metrics: true
    internal:
      version: 7
    История изменений:
    • v0.7.5b — Операторы сервера больше не будут получать нежелательные сообщения.
    • v0.7.0b — Новичками теперь считаются не те, кто впервые зашёл на сервер, а кто впервые зашёл на него ранее, чем указанный интервал. за счёт этого плагин опять не использует Listener-ы. Изменения в парсере команд (теперь сложнее убить случайно список). Звуки, проигрываемые игрокам при получении сообщений (можно менять из игры), возможные значения тут.
    • v0.6.8b — интерпретация аргументов вида "#303" как нормальных чисел (т.е. как 303); добавлен инструмент для автоматического обновления (не тестировал); пробовал сделать проигрывание звуков при получении сообщений, но тоже пока не работает.
    • v0.6.4b — добавлена опция config.yml/settings.special-list-for-newbies.
    • v0.6.2b — добавлена поддержка полноценных json-сообщений (для серверов/клиентов, версии которых содержат эту функциональность, т.е. не менее 1.7). В таблицу messages добавлена колонка json, которая сообщает (если значение '1') плагину о наличии json-строки в колонке text. Добавлена опция config.yml/settings.add-prefix-to-json (по умолчанию false), которая разрешает конкатенацию префикса списка и json-строки (list.prefix + message.text должно давать корректную json-строку!). Для формирования корректных строк можно пользоваться сервисами наподобие этого.
      Данная функция требует установленного на сервере ProtocolLib версии не ниже 3.6.4.
    • v0.6.0b — добавлена поддержка плейсхолдеров с помощью плагина PlaceholderAPI. Список возможных заменителей можно найти здесь.
    • v0.5.1b — в таблицу messages добавлена колонка lifetime (типа TIMESTAMP), которая, если не NULL, определяет срок, после которого данное сообщение будет автоматически выключено (enabled установится в 0). Изменять значение из плагина нельзя, только устанавливать скриптами / SQL редакторами. Операторы сервера не получают сообщения из всех списков автоматически (теперь нужно явно указать право rscm.receive.* или конкретное с названием списка).
    • v0.4.4b — информация о сообщении включает сам текст сообщения; в консольном логе указывается, сколько игроков получили сообщения; обновление сообщений из базы происходит в параллельном потоке.
    • v0.4.3b — для получения списка онлайн игроков используется рефлексия, отсюда вернулась совместимость со старыми версиями сервером (1.5.x-1.6.x).
    • v0.4.2b — все текстовые строки вынесены в файлы перевода, сразу поставляются английский и русский; адекватнее реакции на команды; внутренние улучшения.
    • v0.3.7b — исправлены мелкие баги (eg., пустой список с random: true выбрасывал исключения), пересобрано под свежими зависимостями.
    • v0.3.5b — добавлена команда просмотра свойств списков/сообщений, другие исправления.
    • v0.3.2b — добавлена опция, позволяющая вкл/выкл показ сообщений в логе консоли.
    • v0.3.1b — исправлено неправильное выключение плагина (могло влиять на другие всё ещё работающие плагины).
    • v0.3.0b — первоначальная загрузка файла.
    Пример №1:
    Пример №2:
    Пример №3:
    rscm044b.png
     
    Последнее редактирование: 10 авг 2016
  2. MySt1k

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

    Баллы:
    173
    Много используется ивентов?
    Другими словами нагрузка меньше чем у AutoMessage?
     
  3. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ни одного эвента, только по одному запланированному на попозже BukkitTask-у на каждый список. Теоретически нагрузку могут создавать только регулярные перечитывания из БД, т.к. пока они в основном потоке, а практически я ещё не имею множества замеров.

    Собственно, почему я его накидал — у самого был AutoMessage, но я пытался помочь автору с какими-то кусками, сделать права на редактирование вроде бы по спискам отдельным, но возможно что-то сломал и он до сих пор сам не починил :D Короче там было запутано, а мне захотелось дополнительно списки засунуть в БД.
    Позавчера начал, сегодня залил на DBO :)
     
    Последнее редактирование: 1 июн 2015
  4. unlimited

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

    Баллы:
    123
    Имя в Minecraft:
    infinity
    Так это ты сломал мой AutoMessage!
     
  5. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Если ты — ELCHILEN0, то я :D Нет, так нет ;)
    Обновлено до v0.3.5b — добавлена команда /rscm info <list> [id].
    В предыдущем, пропущенном на РБ релизе, было исправлено неверное отображение выключенных сообщений.
    Обновлено до v0.3.7b — исправлен баг с исключением в консоли, обновлены зависимости.

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

    Файл прикреплён:
     

    Вложения:

    Последнее редактирование: 27 май 2015
  6. Linkinkov

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

    Баллы:
    173
    Skype:
    linkinkov1
    Имя в Minecraft:
    linkinkov
    Приветствую. Возможно ли добавить, чтобы он сам обновлял список из БД через определенное время, а не только через reload?

    Извиняюсь, он есть, не увидел :С
     
    Последнее редактирование: 5 дек 2014
  7. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Обновлён до версии v0.4.1b, появилась возможность локализации. Сразу поставляется с английским и русским языками. Чтобы поставить русский язык, в config.yml поменяйте значение переменной settings.language на russian.
    Все ссылки в верхнем посту актуальны.
    Прошу перенести в Релизы плагинов; буду не против плашки Девелопера.
    @Admin, больше по именам никого из управленцев не знаю, сорри.
    Обновлён до версии v0.4.2b, только исправления редких некритических исключительных ситуаций.
     
    Последнее редактирование модератором: 12 окт 2023
  8. Dan_Romanenkov

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

    Баллы:
    103
    Собственно. Не пойму одного. Решил проверить рассылку сообщений, получаю ошибку.
    upload_2015-3-18_12-23-18.png
     
  9. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Что в консоли? Сообщение #2 принадлежит списку tips?
    Покажи, если не трудно, реакцию на /rscm list и /rscm list tips.

    P.S. Вижу выше, хотя ты и отрезал это картинкой (зачем?), что написано "Такого списка не существует".
     
  10. Dan_Romanenkov

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

    Баллы:
    103
    @Reality_SC,нет, это от другого запроса. Вот список сообщений.
    Установил таймер на 900, т.е. 900 секунд, т.е. 15 минут, но сообщения не отправляются.
    [​IMG]
     
  11. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    @Dan_Romanenkov
    Это список tips?
    Что происходит в консоли, всё-таки?
    Игроки имеют право rscm.receive.tips? Ты, как админ, может прописать себе rscm.receive.* (оно не прописывается автоматически ОПам, чтобы не засорять).
     
  12. Dan_Romanenkov

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

    Баллы:
    103
    @Reality_SC , права есть не только на этот список.
    В консоли происходит такое:
    2015-03-18 15:48:35 [WARNING] [rscMessages] Task #19 for rscMessages v0.4.2b generated an exception
    java.lang.NoSuchMethodError: org.bukkit.Server.getOnlinePlayers()Ljava/util/Collection;
    at ru.simsonic.rscMessages.BukkitPluginMain.broadcastMessage(BukkitPluginMain.java:147)
    at ru.simsonic.rscMessages.BukkitPluginMain.broadcastList(BukkitPluginMain.java:141)
    at ru.simsonic.rscMessages.BukkitPluginMain$1.run(BukkitPluginMain.java:113)
    at org.bukkit.craftbukkit.v1_6_R3.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_6_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:822)
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:777)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:659)
    at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
     
  13. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Понятно, сервер слишком старый. Они поменяли прототип метода getOnlinePlayers() и теперь он не может его найти. Сейчас подумаю, как решить это, я же всё-таки заявлял поддержку множества версий...
     
    Последнее редактирование: 18 мар 2015
  14. Dan_Romanenkov

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

    Баллы:
    103
    Сервер на версии 1.6.4. Не такой уж и старый.
     
  15. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Тем не менее, в Bukkit API у метода getOnlinePlayers() тип возвращаемого значения сменили с Player[] на Collection<Player> уже после него...
     
  16. Dan_Romanenkov

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

    Баллы:
    103
    Т.е. плагин на моем сервере не поставить?
     
  17. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    В ближайшее время сделаю костыль. Не сегодня, но на этой неделе.
    Если есть возможность, сегодня могу только принять чей-нибудь Pull Request.
    Временно поправил шапку темы =\
     
  18. Dan_Romanenkov

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

    Баллы:
    103
    Я так понимаю, что ближайшее время еще не наступило?
     
  19. Автор темы
    Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    @Dan_Romanenkov, прошу прощения, я действительно забыл.

    Вчера залил новую сборку (0.4.3b), сегодня ещё одну (0.4.4b), попробуй, должны работать.
     
    Последнее редактирование: 31 мар 2015
  20. Dan_Romanenkov

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

    Баллы:
    103
    @Reality_SC, спасибо, опробую.
    Все замечательно. Все работает, большое спасибо.
     

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