Мо3олЬ 68 Опубликовано 17 июня, 2012 Всем привет) Сделал на сервере привязку по ip-адресу голосовой командой, проблем не было, но после как запустил сервер, сделал привязку через команду .ipblock, проходит мин 2-3 появляется ошибка вот скрин: Скрытый текст Сборка L2jserver (эпилог последняя рева). Буду благодарен за вашу помощь!!) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 17 июня, 2012 в IpBlock.java 29 строчка В ней ищи ошибку =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Мо3олЬ 68 Опубликовано 17 июня, 2012 Вот код, красным выделена 29 строчка! Скрытый текст package handlers.voicedcommandhandlers; import java.sql.Connection; import java.sql.SQLException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.logging.Logger; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.handler.IVoicedCommandHandler; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; public class IpBlock implements IVoicedCommandHandler { public IpBlock() { } public boolean useVoicedCommand(String s, L2PcInstance l2pcinstance, String s1) { if(s.startsWith("ipblock")) { try { Connection connection = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement preparedstatement = connection.prepareStatement("SELECT * FROM accounts WHERE login=?"); preparedstatement.setString(1, l2pcinstance.getAccountName()); ResultSet resultset = preparedstatement.executeQuery(); resultset.next(); if(resultset.getBoolean("IPBlock")) { PreparedStatement preparedstatement1 = connection.prepareStatement("UPDATE accounts SET ipblock = 0 WHERE login=?"); preparedstatement1.setString(1, l2pcinstance.getAccountName()); preparedstatement1.execute(); l2pcinstance.sendMessage("Ваш аккаунт больше не привязан по IP-адресу"); _log.info((new StringBuilder()).append("changing ip block mode for account ").append(l2pcinstance.getAccountName()).append(": Blocking off").toString()); } else { PreparedStatement preparedstatement2 = connection.prepareStatement("UPDATE accounts SET ipblock = 1 WHERE login=?"); preparedstatement2.setString(1, l2pcinstance.getAccountName()); preparedstatement2.execute(); l2pcinstance.sendMessage((new StringBuilder()).append("Ваш аккаут был привязан к IP-адресу").append(resultset.getString("lastIP")).toString()); _log.info((new StringBuilder()).append("changing ip block mode for account ").append(l2pcinstance.getAccountName()).append(": Blocking on").toString()); } } catch(SQLException sqlexception) { _log.warning((new StringBuilder()).append("Could not store IPBlock mode: ").append(sqlexception).toString()); } } return true; } public String[] getVoicedCommandList() { return VOICED_COMMANDS; } private static Logger _log = Logger.getLogger(handlers.voicedcommandhandlers.IpBlock.class.getName()); private static final String VOICED_COMMANDS[] = { "ipblock" }; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
☼◄umen►☼ 14 Опубликовано 17 июня, 2012 (изменено) Вот код, красным выделена 29 строчка! Скрытый текст package handlers.voicedcommandhandlers; import java.sql.Connection; import java.sql.SQLException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.logging.Logger; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.handler.IVoicedCommandHandler; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; public class IpBlock implements IVoicedCommandHandler { public IpBlock() { } public boolean useVoicedCommand(String s, L2PcInstance l2pcinstance, String s1) { if(s.startsWith("ipblock")) { try { Connection connection = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement preparedstatement = connection.prepareStatement("SELECT * FROM accounts WHERE login=?"); preparedstatement.setString(1, l2pcinstance.getAccountName()); ResultSet resultset = preparedstatement.executeQuery(); resultset.next(); if(resultset.getBoolean("IPBlock")) { PreparedStatement preparedstatement1 = connection.prepareStatement("UPDATE accounts SET ipblock = 0 WHERE login=?"); preparedstatement1.setString(1, l2pcinstance.getAccountName()); preparedstatement1.execute(); l2pcinstance.sendMessage("Ваш аккаунт больше не привязан по IP-адресу"); _log.info((new StringBuilder()).append("changing ip block mode for account ").append(l2pcinstance.getAccountName()).append(": Blocking off").toString()); } else { PreparedStatement preparedstatement2 = connection.prepareStatement("UPDATE accounts SET ipblock = 1 WHERE login=?"); preparedstatement2.setString(1, l2pcinstance.getAccountName()); preparedstatement2.execute(); l2pcinstance.sendMessage((new StringBuilder()).append("Ваш аккаут был привязан к IP-адресу").append(resultset.getString("lastIP")).toString()); _log.info((new StringBuilder()).append("changing ip block mode for account ").append(l2pcinstance.getAccountName()).append(": Blocking on").toString()); } } catch(SQLException sqlexception) { _log.warning((new StringBuilder()).append("Could not store IPBlock mode: ").append(sqlexception).toString()); } } return true; } public String[] getVoicedCommandList() { return VOICED_COMMANDS; } private static Logger _log = Logger.getLogger(handlers.voicedcommandhandlers.IpBlock.class.getName()); private static final String VOICED_COMMANDS[] = { "ipblock" }; } Соединение закрывайте в конце метода. Что за свинство... connection.close(); P.S. посмотрел код, отрывать руки надо за такой... Изменено 17 июня, 2012 пользователем ☼◄umen►☼ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Мо3олЬ 68 Опубликовано 25 июня, 2012 Вот Мануал все так сделал) поможет кто?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 25 июня, 2012 Соединение закрывайте в конце метода. Что за свинство...connection.close(); P.S. посмотрел код, отрывать руки надо за такой... Свинство не закрывать его не в методе а в блоке finally!) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Мо3олЬ 68 Опубликовано 27 июня, 2012 Все можно закрывать)) Решил проблему) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты