/* * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If * not, see <http://www.gnu.org/licenses/>. */ package silentium.gameserver.network.clientpackets; import silentium.gameserver.configs.MainConfig; import silentium.gameserver.network.serverpackets.KeyPacket; import silentium.gameserver.network.serverpackets.L2GameServerPacket; public final class ProtocolVersion extends L2GameClientPacket { private int _version; @Override protected void readImpl() { _version = readD(); } @Override protected void runImpl() { if (_version == -2) getClient().close((L2GameServerPacket) null); else if (_version < MainConfig.MIN_PROTOCOL_REVISION || _version > MainConfig.MAX_PROTOCOL_REVISION) { log.warn("Client: " + getClient().toString() + " -> Protocol Revision: " + _version + " is invalid. Minimum and maximum allowed are: " + MainConfig.MIN_PROTOCOL_REVISION + " and " + MainConfig.MAX_PROTOCOL_REVISION + ". Closing connection."); getClient().close((L2GameServerPacket) null); } else getClient().sendPacket(new KeyPacket(getClient().enableCrypt())); } }