Подправить код плагина на уровни NetworkLevels
Здравствуйте! Столкнулся с проблемой того, что плагин на уровни отключается от БД MySQK через 8 часов неактивности и не переключается самостоятельно (как например LuckPerms), а выдает ошибку. Начинает вновь работать только после рестарта...
ядро 1.12.2
Java 17
https://disk.yandex.ru/d/VG2zykkxH6W4Kg
ядро 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
Скомпилировал на Java 17.
Английский перевод
Русский перевод
-
Кирилл20 апреля 2026 - 08:55
Спасибо за Ваш труд! По функционалу плагина вроде все в норме, единственное если после начисления опыта сразу проверить статистику, то добавленный опыт сбрасывается. Главный баг нужно проверить временем
UPD: Сегодня в 13:43
Здравствуйте! К сожалению, баг остался и плагин не переподключается к MySQL
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
