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

В новой версии 0.5.0b в таблице messages появилась новая колонка lifetime, позволяющая устанавливать срок действия для сообщений — правда устанавливать/изменять её из плагина нельзя, только со стороны. Делалось по заявке для ЛК, чтобы продавать ограниченную временем рекламу 🙂
Прошу дать плашку Девелопер.
 
Последнее редактирование:
Замена AM?Красава 😁
 
Не могу понять такую штуку: когда добавляю сообщение из-под клиента, русские буквы преобразуются в вопросительные знаки. Проверил -- база данных, как и все остальные на этом сервере, UTF-8.
Настроек, где прописывается кодировка сообщений, я не нашел.
Наверное, можно присвоить базе данных кодировку win-1251. Но будет ли это правильным решением? Все остальное на UTF-8.
В ... /rscMessages/config.yml дописал:
hostname: localhost:3306/messages?useUnicode=true&characterEncoding=UTF8
Перезагрузил серв.
Не помогло :-(

В БД отображаются все те же вопросики...
 
YAML:
#Проверка кода ямл
yamltest:
  helloworld:
  - 'hello'
  - 'world'

А какого фига кода ямл нету в списке кодов?
 
Как оказалось, присвоение БД кодировки win-1251 -- не лучшая идея. 👎

Как же, все-таки, решить эту проблему?
Попробовал в параметрах запуска клиента указать -Dfile.encoding=UTF-8, но безрезультатно.

Может, есть у кого какие идеи?
Хм... Когда в БД используется UTF-8, создание строки из консоли сервера тоже портит кодировку, что странно, поскольку сеанс консоли работает как раз в UTF-8 -- только что убедился.
 
Последнее редактирование:
Попробуй выставить utf8 на сервере как кодировку для подключений по умолчанию в my.cfg на сервере.
 
Попробуй выставить utf8 на сервере как кодировку для подключений по умолчанию в my.cfg на сервере.
У меня нет такого файла. Но я запускаю сервер с ключом -Dfile.encoding=UTF-8.
Подозреваю, что win-1251 каким-то образом передается плагину самим клиентом.
А, дошло! Ты, наверное, имел в виду /etc/mysql/my.cnf
Щас посмотрю...
Спасибо, все заработало! 👍
 
Если кому-то будет польза от этого, и у него есть время для проверки, то прошу потестировать
  • rscMessages v0.6.0b: Добавлена поддержка PlaceholderAPI, если он у Вас установлен, то можно использовать его заменители в префиксах/текстах сообщений.
    Скачать: https://ci.methuselah.ru/job/rscMessages/51/

  • Версия v0.6.2b поддерживает сообщения в формате Json. Ещё не тестировал! В БД появилась новая колонка json (да/нет), новая опция в конфиге "плюсовать ли префикс json-сообщениям" (да/нет). Требует ProtocolLib (я собирал под версию 3.6.4 со spigotmc.org), если его нет, сломаться вроде не должно.
    Скачать: https://ci.methuselah.ru/job/rscMessages/52/

P.S. Потестировал и отладил, шапка темы обновлена. Можно пользоваться.
Актуальная рабочая версия это #53, но лучше брать просто последнюю успешную сборку.
 
Последнее редактирование:
У меня почему-то не работает. Судя по ошибке, не может получить доступ к полям в базе данных.
Код:
[17:35:39] [Server thread/ERROR]: Could not load 'plugins/rscMessages_v0.6.2b.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: com/comphenix/protocol/reflect/FieldAccessException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:149) ~[JavaPluginLoader.class:1.7.10-1492.150]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:334) ~[SimplePluginManager.class:1.7.10-1492.150]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:256) [SimplePluginManager.class:1.7.10-1492.150]
    at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugins(CraftServer.java:320) [CraftServer.class:1.7.10-1492.150]
    at net.minecraft.world.storage.SaveHandler.initBukkitData(SaveHandler.java:461) [ayq.class:?]
    at net.minecraft.world.storage.SaveHandler.func_75757_d(SaveHandler.java:137) [ayq.class:?]
    at net.minecraft.world.World.<init>(World.java:360) [ahb.class:?]
    at net.minecraft.world.WorldServer.<init>(WorldServer.java:158) [mt.class:?]
    at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:367) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:336) [lt.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:631) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]
Caused by: java.lang.NoClassDefFoundError: com/comphenix/protocol/reflect/FieldAccessException
    at ru.simsonic.rscMessages.BukkitPluginMain.<init>(BukkitPluginMain.java:30) ~[?:?]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_79]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[?:1.7.0_79]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.7.0_79]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[?:1.7.0_79]
    at java.lang.Class.newInstance(Class.java:379) ~[?:1.7.0_79]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:201) ~[PluginClassLoader.class:1.7.10-1492.150]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[JavaPluginLoader.class:1.7.10-1492.150]
    ... 11 more
Все конфиги остались с рабочей 0.5.0.
P.S. Пока откатываюсь, но готов пробовать еще.
 
Последнее редактирование:
Добрый день, у меня вот такой вопрос, будете ли вы продолжать работу над плагином rscBans ?
 
@Reality_SC
Не понимаю, в чем проблема. Плагин подключился к бд и создал свои таблицы. Когда я перезагружает его, он просит меня, чтобы я поставил ProtocolLib, чтобы он мог читать json файлы.
Почему он не читает текст из базы данных?

Java:
[00:04:52] [Server thread/INFO]: [rscMessages] Disabling rscMessages v0.6.3b
[00:04:52] [Server thread/INFO]: [rscm] rscMessages has been disabled.
[00:04:52] [Server thread/INFO]: [rscMessages] Enabling rscMessages v0.6.3b
[00:04:52] [Server thread/INFO]: [rscAPI][SQL] Connecting to "rscMessages"...
[00:04:53] [Server thread/INFO]: [rscm] ProtocolLib wasn't found. You cannot use json messages now.
[00:04:53] [Server thread/INFO]: [rscm] rscMessages has been successfully enabled.
[00:04:53] [Server thread/INFO]: [rscm] rscMessages has been reloaded.
[00:04:53] [Thread-28/WARN]: Exception in fetch(2): {0}
java.sql.SQLException: Column 'json' not found.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) ~[SQLError.class:?]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) ~[SQLError.class:?]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) ~[SQLError.class:?]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) ~[SQLError.class:?]
    at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1144) ~[ResultSetImpl.class:?]
    at com.mysql.jdbc.ResultSetImpl.getBoolean(ResultSetImpl.java:1761) ~[ResultSetImpl.class:?]
    at ru.simsonic.rscMessages.Database.fetch(Database.java:71) [rscMessages_v0.6.3b.jar:?]
    at ru.simsonic.rscMessages.Fetcher.run(Fetcher.java:22) [rscMessages_v0.6.3b.jar:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66]
[00:04:53] [Server thread/INFO]: [rscm] Message lists have been fetched from database.
 
ProtocolLib, чтобы он мог читать json файлы.
Почему он не читает текст из базы данных?
Тут другой смысл, есть сообщения просто текстовые, и есть сообщения в формате json — для них и нужен ProtocolLib. Тексты он и читает из БД.
Решение, предложенное GoodCoder-ом, самое правильное. Воспользуйся им. Вообще я хз, плагин должен сам создавать эту колонку. Увы, открыть IDE раньше, чем до февраля не могу, личные причины.
 
@chief колонка в таблице отсутствует. Создай её выполнив запрос:
SQL:
ALTER TABLE `messages` ADD COLUMN `json` BIT(1) NOT NULL DEFAULT b'0' AFTER `text`
Название таблицы "messages" в запросе не забудь на своё поменять.
Большое вам спасибо. Это помогло.
Тут другой смысл, есть сообщения просто текстовые, и есть сообщения в формате json — для них и нужен ProtocolLib. Тексты он и читает из БД.
Решение, предложенное GoodCoder-ом, самое правильное. Воспользуйся им. Вообще я хз, плагин должен сам создавать эту колонку. Увы, открыть IDE раньше, чем до февраля не могу, личные причины.
Возможно, дело в том, что в коде присутствует большая буква?
Я пытаюсь понять Java, но я окончательно остановился на php...
Java:
msg.[B]isJson[/B] = rsMessages.getBoolean("json");

isJson
 
Нет.
Java — регистро-зависимый язык, что означает, что i и I являются разными именами. То же самое относится к isjson, IsJson, isJson, ISJSON — всё это разные названия.
Но, есть общие соглашения между разработчиками (это справедливо для разных языков), когда они придерживаются единого набора правил оформления кода, в том числе и как называть переменные.

Короче, я так назвал это поле в моём классе, поэтому я к нему так и обращаюсь, ничто другое от этого не зависит и ничто другое на выбор такого названия не влияет.

P.S. Учите и PHP, и Java, и столько всего остального, сколько сможете. Это очень будет нужно в наступающем будущем.
 
Нет.
Java — регистро-зависимый язык, что означает, что i и I являются разными именами. То же самое относится к isjson, IsJson, isJson, ISJSON — всё это разные названия.
Но, есть общие соглашения между разработчиками (это справедливо для разных языков), когда они придерживаются единого набора правил оформления кода, в том числе и как называть переменные.

Короче, я так назвал это поле в моём классе, поэтому я к нему так и обращаюсь, ничто другое от этого не зависит и ничто другое на выбор такого названия не влияет.

P.S. Учите и PHP, и Java, и столько всего остального, сколько сможете. Это очень будет нужно в наступающем будущем.
Заработало только через знак §
yXqCSgh.jpg
 
Последнее редактирование:
Назад
Верх Низ