Подправить код плагина на уровни NetworkLevels
  • Кирилл
    18 апреля 2026 - 20:22
    Вы не авторизованы, войдите на сайт.
  • просмотров 36 | ответов 9
Здравствуйте! Столкнулся с проблемой того, что плагин на уровни отключается от БД MySQK через 8 часов неактивности и не переключается самостоятельно (как например LuckPerms), а выдает ошибку. Начинает вновь работать только после рестарта...
ядро 1.12.2
Java 17
https://disk.yandex.ru/d/VG2zykkxH6W4Kg
  • Алексей
    18 апреля 2026 - 20:48
Здравствуйте! Для какой версии сервера?
  • Кирилл
    18 апреля 2026 - 20:54
Но есть особенность в том, что java 17, но исходник работает (1.12.2 вроде на 8 джаве работает, но 17 нужна для некоторых других плагинов)
Вы реально сможете это поправить??
  • Алексей
    18 апреля 2026 - 22:41
В общем, вроде всё готово. Запустил у себя на сервере - вроде работает. Но я с этим плагином почти не знаком, так что гляньте, пожалуйста, все ли функции на месте и работают как надо. Мало ли, при декомпиляции что-то сломалось. Если нужны исходники, пишите, скину.
Скомпилировал на Java 17.

Английский перевод
https://disk.yandex.ru/d/VXoP5mJtxeyDtg
Русский перевод
https://disk.yandex.ru/d/vDYAfCCz7Gas4Q
  • Кирилл
    20 апреля 2026 - 08:55
Спасибо за Ваш труд! По функционалу плагина вроде все в норме, единственное если после начисления опыта сразу проверить статистику, то добавленный опыт сбрасывается. Главный баг нужно проверить временем

UPD: Сегодня в 13:43
Здравствуйте! К сожалению, баг остался и плагин не переподключается к MySQL
  • Алексей
    21 апреля 2026 - 13:47
А какую ошибку пишет в консоли, когда не может подключить? Можете скинуть кусок лога?
  • Кирилл
    21 апреля 2026 - 13:52
А какую ошибку пишет в консоли, когда не может подключить? Можете скинуть кусок лога?

Странно, но в консоли или в логах ошибки как раньше нет, просто плагин не подкл. к БД, но ошибку не выдает. На версии плагина которую я Вам скидывал ошибка была такой:

ЛОГИ
[09:14:06] [Server thread/WARN]: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 55,599,756 milliseconds ago. The last packet sent successfully to the server was 55,599,756 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
[09:14:06] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[09:14:06] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
[09:14:06] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[09:14:06] [Server thread/WARN]: at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
[09:14:06] [Server thread/WARN]: at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3746)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2509)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)
[09:14:06] [Server thread/WARN]: at me.joseph.levels.Main.isPlayerInDataBase(Main.java:244)
[09:14:06] [Server thread/WARN]: at me.joseph.levels.Main.loadPlayer(Main.java:263)
[09:14:06] [Server thread/WARN]: at me.joseph.levels.PlayerData.Update(PlayerData.java:293)
[09:14:06] [Server thread/WARN]: at me.joseph.levels.PlayerData.<init>(PlayerData.java:28)
[09:14:06] [Server thread/WARN]: at me.joseph.levels.Main.registerNewData(Main.java:1494)
[09:14:06] [Server thread/WARN]: at me.joseph.levels.Main$5.run(Main.java:1151)
[09:14:06] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:76)
[09:14:06] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:361)
[09:14:06] [Server thread/WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:739)
[09:14:06] [Server thread/WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406)
[09:14:06] [Server thread/WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
[09:14:06] [Server thread/WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
[09:14:06] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
[09:14:06] [Server thread/WARN]: Caused by: java.net.SocketException: Broken pipe
[09:14:06] [Server thread/WARN]: at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:425)
[09:14:06] [Server thread/WARN]: at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:445)
[09:14:06] [Server thread/WARN]: at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:831)
[09:14:06] [Server thread/WARN]: at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1035)
[09:14:06] [Server thread/WARN]: at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
[09:14:06] [Server thread/WARN]: at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
[09:14:06] [Server thread/WARN]: at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3728)
[09:14:06] [Server thread/WARN]: ... 18 more
[09:14:06] [Craft Scheduler Thread - 327/WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:408)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1184)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1179)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4071)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4040)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.Main$4.run(Main.java:302)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:76)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 55,599,756 milliseconds ago. The last packet sent successfully to the server was 55,599,756 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3746)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2509)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.Main.isPlayerInDataBase(Main.java:244)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.Main.loadPlayer(Main.java:263)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.PlayerData.Update(PlayerData.java:293)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.PlayerData.<init>(PlayerData.java:28)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.Main.registerNewData(Main.java:1494)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at me.joseph.levels.Main$5.run(Main.java:1151)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:76)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:361)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:739)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: ... 1 more
[09:14:06] [Craft Scheduler Thread - 327/WARN]: Caused by: java.net.SocketException: Broken pipe
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:425)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:445)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:831)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1035)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3728)
[09:14:06] [Craft Scheduler Thread - 327/WARN]: ... 18 more
  • Алексей
    21 апреля 2026 - 16:04
При установке плагина таблицы создаются автоматически или вы создавали их вручную?
  • Кирилл
    21 апреля 2026 - 18:14
При установке плагина таблицы создаются автоматически или вы создавали их вручную?

Сам плагин, но я увеличивал длину UUID или playeruuid до 40
  • Алексей
    21 апреля 2026 - 18:56
При установке плагина, плагин сам таблицы создаёт или вы вручную их создавали? Сам плагин, но я увеличивал длину UUID или playeruuid до 40

Длину я уже исправил.

Добавил в конфиг настройку:
MySQL:
enabled: false
host: localhost
port: '3306'
database: ''
username: ''
password: ''
reconnect-check-interval: 60 # Проверка каждые 60 секунд
reconnect-attempts: 10 # Максимум 10 попыток переподключения

Укажите время в секундах, через которое плагин будет проверять соединение, и количество попыток переподключения.

Скачать https://disk.yandex.ru/d/2-FB4nZihq-CIg