- Баллы
- 68
Добрый день! Начал кодить на Java лишь недавно, так что извините если это сильно нубский вопрос.
Имею следующий код:
Функция updateAll вызывается раз в десять секунд при условии что в состоянии серверов произошли изменения (Игрок вошёл/вышел/перешёл на другой сервер) и updateAllWorkerFinished==true.
Но данный код порождает пока не понятное для меня предупреждение:
Как я понял, при написании плагинов под Bungee нужно использовать какой то другой метод для создания потоков, либо отказаться от них вообще.
Буду благодарен, если вы подскажете что я делаю не так)
Имею следующий код:
Код:
private class updateAllWorker implements Runnable {
public void run() {
for (ServerInfo info : ProxyServer.getInstance().getServers().values()) {
executeQuery(String.format("INSERT INTO servers (name, curplayers) VALUES('%1$s', '%2$d') ON DUPLICATE KEY UPDATE name='%1$s', curplayers='%2$d'",info.getName(),info.getPlayers().size()));
}
}
updateAllWorkerFinished=true;
}
private void updateAll(){
updateAllWorker updateAllRunnable = new updateAllWorker();
Thread updateAllThread = new Thread(updateAllRunnable);
updateAllThread.start();
}
Но данный код порождает пока не понятное для меня предупреждение:
Код:
15:50:59 [WARNING] Plugin performed restricted action, please inform them to use proper API methods: Illegal thread group access
java.security.AccessControlException: Plugin violation: Illegal thread group access
at net.md_5.bungee.BungeeSecurityManager.checkRestricted(BungeeSecurityManager.java:39)
at net.md_5.bungee.BungeeSecurityManager.checkAccess(BungeeSecurityManager.java:62)
at java.lang.ThreadGroup.checkAccess(Unknown Source)
at java.lang.Thread.init(Unknown Source)
at java.lang.Thread.init(Unknown Source)
at java.lang.Thread.<init>(Unknown Source)
at main.updateAll(main.java:58)
at main.access$000(main.java:13)
at main$updateAllTimerTask.run(main.java:44)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Буду благодарен, если вы подскажете что я делаю не так)


