From 6fb3a9d1569fda35265ff023033c38f4b131abb9 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 13 Apr 2021 16:26:35 +0000 Subject: [PATCH] Login cleanup and organization. --- .../commons/crypt/BlowfishEngine.java | 1303 ----------------- .../org/l2jmobius/commons/crypt/NewCrypt.java | 214 --- .../commons/crypt/ScrambledKeyPair.java | 73 - .../commons/network/BaseRecievePacket.java | 69 +- .../commons/network/BaseSendablePacket.java | 129 +- .../gameserver/LoginServerThread.java | 194 ++- .../loginserverpackets/game/AuthRequest.java | 4 +- .../loginserverpackets/game/BlowFishKey.java | 10 +- .../game/ChangeAccessLevel.java | 8 +- .../game/GameServerBasePacket.java | 119 -- .../game/PlayerAuthRequest.java | 7 +- .../loginserverpackets/game/PlayerInGame.java | 8 +- .../loginserverpackets/game/PlayerLogout.java | 8 +- .../loginserverpackets/game/ServerStatus.java | 14 +- .../login/AuthResponse.java | 4 +- .../loginserverpackets/login/InitLS.java | 4 +- .../loginserverpackets/login/KickPlayer.java | 4 +- .../login/LoginServerFail.java | 4 +- .../login/PlayerAuthResponse.java | 4 +- .../loginserver/GameServerThread.java | 6 +- .../l2jmobius/loginserver/LoginClient.java | 11 +- .../loginserver/LoginPacketHandler.java | 6 +- .../l2jmobius/loginserver/LoginServer.java | 4 +- .../network/AbstractClientPacket.java} | 27 +- .../network/AbstractGameServerPacket.java | 94 ++ ...ePacket.java => AbstractServerPacket.java} | 6 +- .../network/clientpackets/RequestAuthGG.java | 4 +- .../clientpackets/RequestAuthLogin.java | 4 +- .../clientpackets/RequestServerList.java | 4 +- .../clientpackets/RequestServerLogin.java | 4 +- .../gameserverpackets/BlowFishKey.java | 4 +- .../gameserverpackets/ChangeAccessLevel.java | 4 +- .../gameserverpackets/GameServerAuth.java | 4 +- .../gameserverpackets/PlayerAuthRequest.java | 4 +- .../gameserverpackets/PlayerInGame.java | 4 +- .../gameserverpackets/PlayerLogout.java | 4 +- .../gameserverpackets/ServerStatus.java | 4 +- .../loginserverpackets/AuthResponse.java | 4 +- .../network/loginserverpackets/InitLS.java | 4 +- .../loginserverpackets/KickPlayer.java | 4 +- .../loginserverpackets/LoginServerFail.java | 4 +- .../PlayerAuthResponse.java | 4 +- .../network/serverpackets/AccountKicked.java | 4 +- .../network/serverpackets/GGAuth.java | 4 +- .../network/serverpackets/Init.java | 3 +- .../network/serverpackets/LoginFail.java | 4 +- .../network/serverpackets/LoginOk.java | 3 +- .../network/serverpackets/PlayFail.java | 4 +- .../network/serverpackets/PlayOk.java | 3 +- .../network/serverpackets/ServerList.java | 3 +- 50 files changed, 463 insertions(+), 1963 deletions(-) delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/BlowfishEngine.java delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/NewCrypt.java delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/ScrambledKeyPair.java delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/GameServerBasePacket.java rename L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/{gameserver/network/loginserverpackets/login/LoginServerBasePacket.java => loginserver/network/AbstractClientPacket.java} (79%) create mode 100644 L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractGameServerPacket.java rename L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/{serverpackets/ServerBasePacket.java => AbstractServerPacket.java} (91%) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/BlowfishEngine.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/BlowfishEngine.java deleted file mode 100644 index 608c7fe5b9..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/BlowfishEngine.java +++ /dev/null @@ -1,1303 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * 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 . - */ -package org.l2jmobius.commons.crypt; - -import java.io.IOException; - -/** - * This file is based on the Blowfish Engine that is part of the BouncyCastle JCE Copyright (c) 2000 The Legion Of The Bouncy Castle (http://www.bouncycastle.org) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following - * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -public class BlowfishEngine -{ - private static final int[] KP = - { - 0x243F6A88, - 0x85A308D3, - 0x13198A2E, - 0x03707344, - 0xA4093822, - 0x299F31D0, - 0x082EFA98, - 0xEC4E6C89, - 0x452821E6, - 0x38D01377, - 0xBE5466CF, - 0x34E90C6C, - 0xC0AC29B7, - 0xC97C50DD, - 0x3F84D5B5, - 0xB5470917, - 0x9216D5D9, - 0x8979FB1B - }; - private static final int[] KS0 = - { - 0xD1310BA6, - 0x98DFB5AC, - 0x2FFD72DB, - 0xD01ADFB7, - 0xB8E1AFED, - 0x6A267E96, - 0xBA7C9045, - 0xF12C7F99, - 0x24A19947, - 0xB3916CF7, - 0x0801F2E2, - 0x858EFC16, - 0x636920D8, - 0x71574E69, - 0xA458FEA3, - 0xF4933D7E, - 0x0D95748F, - 0x728EB658, - 0x718BCD58, - 0x82154AEE, - 0x7B54A41D, - 0xC25A59B5, - 0x9C30D539, - 0x2AF26013, - 0xC5D1B023, - 0x286085F0, - 0xCA417918, - 0xB8DB38EF, - 0x8E79DCB0, - 0x603A180E, - 0x6C9E0E8B, - 0xB01E8A3E, - 0xD71577C1, - 0xBD314B27, - 0x78AF2FDA, - 0x55605C60, - 0xE65525F3, - 0xAA55AB94, - 0x57489862, - 0x63E81440, - 0x55CA396A, - 0x2AAB10B6, - 0xB4CC5C34, - 0x1141E8CE, - 0xA15486AF, - 0x7C72E993, - 0xB3EE1411, - 0x636FBC2A, - 0x2BA9C55D, - 0x741831F6, - 0xCE5C3E16, - 0x9B87931E, - 0xAFD6BA33, - 0x6C24CF5C, - 0x7A325381, - 0x28958677, - 0x3B8F4898, - 0x6B4BB9AF, - 0xC4BFE81B, - 0x66282193, - 0x61D809CC, - 0xFB21A991, - 0x487CAC60, - 0x5DEC8032, - 0xEF845D5D, - 0xE98575B1, - 0xDC262302, - 0xEB651B88, - 0x23893E81, - 0xD396ACC5, - 0x0F6D6FF3, - 0x83F44239, - 0x2E0B4482, - 0xA4842004, - 0x69C8F04A, - 0x9E1F9B5E, - 0x21C66842, - 0xF6E96C9A, - 0x670C9C61, - 0xABD388F0, - 0x6A51A0D2, - 0xD8542F68, - 0x960FA728, - 0xAB5133A3, - 0x6EEF0B6C, - 0x137A3BE4, - 0xBA3BF050, - 0x7EFB2A98, - 0xA1F1651D, - 0x39AF0176, - 0x66CA593E, - 0x82430E88, - 0x8CEE8619, - 0x456F9FB4, - 0x7D84A5C3, - 0x3B8B5EBE, - 0xE06F75D8, - 0x85C12073, - 0x401A449F, - 0x56C16AA6, - 0x4ED3AA62, - 0x363F7706, - 0x1BFEDF72, - 0x429B023D, - 0x37D0D724, - 0xD00A1248, - 0xDB0FEAD3, - 0x49F1C09B, - 0x075372C9, - 0x80991B7B, - 0x25D479D8, - 0xF6E8DEF7, - 0xE3FE501A, - 0xB6794C3B, - 0x976CE0BD, - 0x04C006BA, - 0xC1A94FB6, - 0x409F60C4, - 0x5E5C9EC2, - 0x196A2463, - 0x68FB6FAF, - 0x3E6C53B5, - 0x1339B2EB, - 0x3B52EC6F, - 0x6DFC511F, - 0x9B30952C, - 0xCC814544, - 0xAF5EBD09, - 0xBEE3D004, - 0xDE334AFD, - 0x660F2807, - 0x192E4BB3, - 0xC0CBA857, - 0x45C8740F, - 0xD20B5F39, - 0xB9D3FBDB, - 0x5579C0BD, - 0x1A60320A, - 0xD6A100C6, - 0x402C7279, - 0x679F25FE, - 0xFB1FA3CC, - 0x8EA5E9F8, - 0xDB3222F8, - 0x3C7516DF, - 0xFD616B15, - 0x2F501EC8, - 0xAD0552AB, - 0x323DB5FA, - 0xFD238760, - 0x53317B48, - 0x3E00DF82, - 0x9E5C57BB, - 0xCA6F8CA0, - 0x1A87562E, - 0xDF1769DB, - 0xD542A8F6, - 0x287EFFC3, - 0xAC6732C6, - 0x8C4F5573, - 0x695B27B0, - 0xBBCA58C8, - 0xE1FFA35D, - 0xB8F011A0, - 0x10FA3D98, - 0xFD2183B8, - 0x4AFCB56C, - 0x2DD1D35B, - 0x9A53E479, - 0xB6F84565, - 0xD28E49BC, - 0x4BFB9790, - 0xE1DDF2DA, - 0xA4CB7E33, - 0x62FB1341, - 0xCEE4C6E8, - 0xEF20CADA, - 0x36774C01, - 0xD07E9EFE, - 0x2BF11FB4, - 0x95DBDA4D, - 0xAE909198, - 0xEAAD8E71, - 0x6B93D5A0, - 0xD08ED1D0, - 0xAFC725E0, - 0x8E3C5B2F, - 0x8E7594B7, - 0x8FF6E2FB, - 0xF2122B64, - 0x8888B812, - 0x900DF01C, - 0x4FAD5EA0, - 0x688FC31C, - 0xD1CFF191, - 0xB3A8C1AD, - 0x2F2F2218, - 0xBE0E1777, - 0xEA752DFE, - 0x8B021FA1, - 0xE5A0CC0F, - 0xB56F74E8, - 0x18ACF3D6, - 0xCE89E299, - 0xB4A84FE0, - 0xFD13E0B7, - 0x7CC43B81, - 0xD2ADA8D9, - 0x165FA266, - 0x80957705, - 0x93CC7314, - 0x211A1477, - 0xE6AD2065, - 0x77B5FA86, - 0xC75442F5, - 0xFB9D35CF, - 0xEBCDAF0C, - 0x7B3E89A0, - 0xD6411BD3, - 0xAE1E7E49, - 0x00250E2D, - 0x2071B35E, - 0x226800BB, - 0x57B8E0AF, - 0x2464369B, - 0xF009B91E, - 0x5563911D, - 0x59DFA6AA, - 0x78C14389, - 0xD95A537F, - 0x207D5BA2, - 0x02E5B9C5, - 0x83260376, - 0x6295CFA9, - 0x11C81968, - 0x4E734A41, - 0xB3472DCA, - 0x7B14A94A, - 0x1B510052, - 0x9A532915, - 0xD60F573F, - 0xBC9BC6E4, - 0x2B60A476, - 0x81E67400, - 0x08BA6FB5, - 0x571BE91F, - 0xF296EC6B, - 0x2A0DD915, - 0xB6636521, - 0xE7B9F9B6, - 0xFF34052E, - 0xC5855664, - 0x53B02D5D, - 0xA99F8FA1, - 0x08BA4799, - 0x6E85076A - }; - private static final int[] KS1 = - { - 0x4B7A70E9, - 0xB5B32944, - 0xDB75092E, - 0xC4192623, - 0xAD6EA6B0, - 0x49A7DF7D, - 0x9CEE60B8, - 0x8FEDB266, - 0xECAA8C71, - 0x699A17FF, - 0x5664526C, - 0xC2B19EE1, - 0x193602A5, - 0x75094C29, - 0xA0591340, - 0xE4183A3E, - 0x3F54989A, - 0x5B429D65, - 0x6B8FE4D6, - 0x99F73FD6, - 0xA1D29C07, - 0xEFE830F5, - 0x4D2D38E6, - 0xF0255DC1, - 0x4CDD2086, - 0x8470EB26, - 0x6382E9C6, - 0x021ECC5E, - 0x09686B3F, - 0x3EBAEFC9, - 0x3C971814, - 0x6B6A70A1, - 0x687F3584, - 0x52A0E286, - 0xB79C5305, - 0xAA500737, - 0x3E07841C, - 0x7FDEAE5C, - 0x8E7D44EC, - 0x5716F2B8, - 0xB03ADA37, - 0xF0500C0D, - 0xF01C1F04, - 0x0200B3FF, - 0xAE0CF51A, - 0x3CB574B2, - 0x25837A58, - 0xDC0921BD, - 0xD19113F9, - 0x7CA92FF6, - 0x94324773, - 0x22F54701, - 0x3AE5E581, - 0x37C2DADC, - 0xC8B57634, - 0x9AF3DDA7, - 0xA9446146, - 0x0FD0030E, - 0xECC8C73E, - 0xA4751E41, - 0xE238CD99, - 0x3BEA0E2F, - 0x3280BBA1, - 0x183EB331, - 0x4E548B38, - 0x4F6DB908, - 0x6F420D03, - 0xF60A04BF, - 0x2CB81290, - 0x24977C79, - 0x5679B072, - 0xBCAF89AF, - 0xDE9A771F, - 0xD9930810, - 0xB38BAE12, - 0xDCCF3F2E, - 0x5512721F, - 0x2E6B7124, - 0x501ADDE6, - 0x9F84CD87, - 0x7A584718, - 0x7408DA17, - 0xBC9F9ABC, - 0xE94B7D8C, - 0xEC7AEC3A, - 0xDB851DFA, - 0x63094366, - 0xC464C3D2, - 0xEF1C1847, - 0x3215D908, - 0xDD433B37, - 0x24C2BA16, - 0x12A14D43, - 0x2A65C451, - 0x50940002, - 0x133AE4DD, - 0x71DFF89E, - 0x10314E55, - 0x81AC77D6, - 0x5F11199B, - 0x043556F1, - 0xD7A3C76B, - 0x3C11183B, - 0x5924A509, - 0xF28FE6ED, - 0x97F1FBFA, - 0x9EBABF2C, - 0x1E153C6E, - 0x86E34570, - 0xEAE96FB1, - 0x860E5E0A, - 0x5A3E2AB3, - 0x771FE71C, - 0x4E3D06FA, - 0x2965DCB9, - 0x99E71D0F, - 0x803E89D6, - 0x5266C825, - 0x2E4CC978, - 0x9C10B36A, - 0xC6150EBA, - 0x94E2EA78, - 0xA5FC3C53, - 0x1E0A2DF4, - 0xF2F74EA7, - 0x361D2B3D, - 0x1939260F, - 0x19C27960, - 0x5223A708, - 0xF71312B6, - 0xEBADFE6E, - 0xEAC31F66, - 0xE3BC4595, - 0xA67BC883, - 0xB17F37D1, - 0x018CFF28, - 0xC332DDEF, - 0xBE6C5AA5, - 0x65582185, - 0x68AB9802, - 0xEECEA50F, - 0xDB2F953B, - 0x2AEF7DAD, - 0x5B6E2F84, - 0x1521B628, - 0x29076170, - 0xECDD4775, - 0x619F1510, - 0x13CCA830, - 0xEB61BD96, - 0x0334FE1E, - 0xAA0363CF, - 0xB5735C90, - 0x4C70A239, - 0xD59E9E0B, - 0xCBAADE14, - 0xEECC86BC, - 0x60622CA7, - 0x9CAB5CAB, - 0xB2F3846E, - 0x648B1EAF, - 0x19BDF0CA, - 0xA02369B9, - 0x655ABB50, - 0x40685A32, - 0x3C2AB4B3, - 0x319EE9D5, - 0xC021B8F7, - 0x9B540B19, - 0x875FA099, - 0x95F7997E, - 0x623D7DA8, - 0xF837889A, - 0x97E32D77, - 0x11ED935F, - 0x16681281, - 0x0E358829, - 0xC7E61FD6, - 0x96DEDFA1, - 0x7858BA99, - 0x57F584A5, - 0x1B227263, - 0x9B83C3FF, - 0x1AC24696, - 0xCDB30AEB, - 0x532E3054, - 0x8FD948E4, - 0x6DBC3128, - 0x58EBF2EF, - 0x34C6FFEA, - 0xFE28ED61, - 0xEE7C3C73, - 0x5D4A14D9, - 0xE864B7E3, - 0x42105D14, - 0x203E13E0, - 0x45EEE2B6, - 0xA3AAABEA, - 0xDB6C4F15, - 0xFACB4FD0, - 0xC742F442, - 0xEF6ABBB5, - 0x654F3B1D, - 0x41CD2105, - 0xD81E799E, - 0x86854DC7, - 0xE44B476A, - 0x3D816250, - 0xCF62A1F2, - 0x5B8D2646, - 0xFC8883A0, - 0xC1C7B6A3, - 0x7F1524C3, - 0x69CB7492, - 0x47848A0B, - 0x5692B285, - 0x095BBF00, - 0xAD19489D, - 0x1462B174, - 0x23820E00, - 0x58428D2A, - 0x0C55F5EA, - 0x1DADF43E, - 0x233F7061, - 0x3372F092, - 0x8D937E41, - 0xD65FECF1, - 0x6C223BDB, - 0x7CDE3759, - 0xCBEE7460, - 0x4085F2A7, - 0xCE77326E, - 0xA6078084, - 0x19F8509E, - 0xE8EFD855, - 0x61D99735, - 0xA969A7AA, - 0xC50C06C2, - 0x5A04ABFC, - 0x800BCADC, - 0x9E447A2E, - 0xC3453484, - 0xFDD56705, - 0x0E1E9EC9, - 0xDB73DBD3, - 0x105588CD, - 0x675FDA79, - 0xE3674340, - 0xC5C43465, - 0x713E38D8, - 0x3D28F89E, - 0xF16DFF20, - 0x153E21E7, - 0x8FB03D4A, - 0xE6E39F2B, - 0xDB83ADF7 - }; - private static final int[] KS2 = - { - 0xE93D5A68, - 0x948140F7, - 0xF64C261C, - 0x94692934, - 0x411520F7, - 0x7602D4F7, - 0xBCF46B2E, - 0xD4A20068, - 0xD4082471, - 0x3320F46A, - 0x43B7D4B7, - 0x500061AF, - 0x1E39F62E, - 0x97244546, - 0x14214F74, - 0xBF8B8840, - 0x4D95FC1D, - 0x96B591AF, - 0x70F4DDD3, - 0x66A02F45, - 0xBFBC09EC, - 0x03BD9785, - 0x7FAC6DD0, - 0x31CB8504, - 0x96EB27B3, - 0x55FD3941, - 0xDA2547E6, - 0xABCA0A9A, - 0x28507825, - 0x530429F4, - 0x0A2C86DA, - 0xE9B66DFB, - 0x68DC1462, - 0xD7486900, - 0x680EC0A4, - 0x27A18DEE, - 0x4F3FFEA2, - 0xE887AD8C, - 0xB58CE006, - 0x7AF4D6B6, - 0xAACE1E7C, - 0xD3375FEC, - 0xCE78A399, - 0x406B2A42, - 0x20FE9E35, - 0xD9F385B9, - 0xEE39D7AB, - 0x3B124E8B, - 0x1DC9FAF7, - 0x4B6D1856, - 0x26A36631, - 0xEAE397B2, - 0x3A6EFA74, - 0xDD5B4332, - 0x6841E7F7, - 0xCA7820FB, - 0xFB0AF54E, - 0xD8FEB397, - 0x454056AC, - 0xBA489527, - 0x55533A3A, - 0x20838D87, - 0xFE6BA9B7, - 0xD096954B, - 0x55A867BC, - 0xA1159A58, - 0xCCA92963, - 0x99E1DB33, - 0xA62A4A56, - 0x3F3125F9, - 0x5EF47E1C, - 0x9029317C, - 0xFDF8E802, - 0x04272F70, - 0x80BB155C, - 0x05282CE3, - 0x95C11548, - 0xE4C66D22, - 0x48C1133F, - 0xC70F86DC, - 0x07F9C9EE, - 0x41041F0F, - 0x404779A4, - 0x5D886E17, - 0x325F51EB, - 0xD59BC0D1, - 0xF2BCC18F, - 0x41113564, - 0x257B7834, - 0x602A9C60, - 0xDFF8E8A3, - 0x1F636C1B, - 0x0E12B4C2, - 0x02E1329E, - 0xAF664FD1, - 0xCAD18115, - 0x6B2395E0, - 0x333E92E1, - 0x3B240B62, - 0xEEBEB922, - 0x85B2A20E, - 0xE6BA0D99, - 0xDE720C8C, - 0x2DA2F728, - 0xD0127845, - 0x95B794FD, - 0x647D0862, - 0xE7CCF5F0, - 0x5449A36F, - 0x877D48FA, - 0xC39DFD27, - 0xF33E8D1E, - 0x0A476341, - 0x992EFF74, - 0x3A6F6EAB, - 0xF4F8FD37, - 0xA812DC60, - 0xA1EBDDF8, - 0x991BE14C, - 0xDB6E6B0D, - 0xC67B5510, - 0x6D672C37, - 0x2765D43B, - 0xDCD0E804, - 0xF1290DC7, - 0xCC00FFA3, - 0xB5390F92, - 0x690FED0B, - 0x667B9FFB, - 0xCEDB7D9C, - 0xA091CF0B, - 0xD9155EA3, - 0xBB132F88, - 0x515BAD24, - 0x7B9479BF, - 0x763BD6EB, - 0x37392EB3, - 0xCC115979, - 0x8026E297, - 0xF42E312D, - 0x6842ADA7, - 0xC66A2B3B, - 0x12754CCC, - 0x782EF11C, - 0x6A124237, - 0xB79251E7, - 0x06A1BBE6, - 0x4BFB6350, - 0x1A6B1018, - 0x11CAEDFA, - 0x3D25BDD8, - 0xE2E1C3C9, - 0x44421659, - 0x0A121386, - 0xD90CEC6E, - 0xD5ABEA2A, - 0x64AF674E, - 0xDA86A85F, - 0xBEBFE988, - 0x64E4C3FE, - 0x9DBC8057, - 0xF0F7C086, - 0x60787BF8, - 0x6003604D, - 0xD1FD8346, - 0xF6381FB0, - 0x7745AE04, - 0xD736FCCC, - 0x83426B33, - 0xF01EAB71, - 0xB0804187, - 0x3C005E5F, - 0x77A057BE, - 0xBDE8AE24, - 0x55464299, - 0xBF582E61, - 0x4E58F48F, - 0xF2DDFDA2, - 0xF474EF38, - 0x8789BDC2, - 0x5366F9C3, - 0xC8B38E74, - 0xB475F255, - 0x46FCD9B9, - 0x7AEB2661, - 0x8B1DDF84, - 0x846A0E79, - 0x915F95E2, - 0x466E598E, - 0x20B45770, - 0x8CD55591, - 0xC902DE4C, - 0xB90BACE1, - 0xBB8205D0, - 0x11A86248, - 0x7574A99E, - 0xB77F19B6, - 0xE0A9DC09, - 0x662D09A1, - 0xC4324633, - 0xE85A1F02, - 0x09F0BE8C, - 0x4A99A025, - 0x1D6EFE10, - 0x1AB93D1D, - 0x0BA5A4DF, - 0xA186F20F, - 0x2868F169, - 0xDCB7DA83, - 0x573906FE, - 0xA1E2CE9B, - 0x4FCD7F52, - 0x50115E01, - 0xA70683FA, - 0xA002B5C4, - 0x0DE6D027, - 0x9AF88C27, - 0x773F8641, - 0xC3604C06, - 0x61A806B5, - 0xF0177A28, - 0xC0F586E0, - 0x006058AA, - 0x30DC7D62, - 0x11E69ED7, - 0x2338EA63, - 0x53C2DD94, - 0xC2C21634, - 0xBBCBEE56, - 0x90BCB6DE, - 0xEBFC7DA1, - 0xCE591D76, - 0x6F05E409, - 0x4B7C0188, - 0x39720A3D, - 0x7C927C24, - 0x86E3725F, - 0x724D9DB9, - 0x1AC15BB4, - 0xD39EB8FC, - 0xED545578, - 0x08FCA5B5, - 0xD83D7CD3, - 0x4DAD0FC4, - 0x1E50EF5E, - 0xB161E6F8, - 0xA28514D9, - 0x6C51133C, - 0x6FD5C7E7, - 0x56E14EC4, - 0x362ABFCE, - 0xDDC6C837, - 0xD79A3234, - 0x92638212, - 0x670EFA8E, - 0x406000E0 - }; - private static final int[] KS3 = - { - 0x3A39CE37, - 0xD3FAF5CF, - 0xABC27737, - 0x5AC52D1B, - 0x5CB0679E, - 0x4FA33742, - 0xD3822740, - 0x99BC9BBE, - 0xD5118E9D, - 0xBF0F7315, - 0xD62D1C7E, - 0xC700C47B, - 0xB78C1B6B, - 0x21A19045, - 0xB26EB1BE, - 0x6A366EB4, - 0x5748AB2F, - 0xBC946E79, - 0xC6A376D2, - 0x6549C2C8, - 0x530FF8EE, - 0x468DDE7D, - 0xD5730A1D, - 0x4CD04DC6, - 0x2939BBDB, - 0xA9BA4650, - 0xAC9526E8, - 0xBE5EE304, - 0xA1FAD5F0, - 0x6A2D519A, - 0x63EF8CE2, - 0x9A86EE22, - 0xC089C2B8, - 0x43242EF6, - 0xA51E03AA, - 0x9CF2D0A4, - 0x83C061BA, - 0x9BE96A4D, - 0x8FE51550, - 0xBA645BD6, - 0x2826A2F9, - 0xA73A3AE1, - 0x4BA99586, - 0xEF5562E9, - 0xC72FEFD3, - 0xF752F7DA, - 0x3F046F69, - 0x77FA0A59, - 0x80E4A915, - 0x87B08601, - 0x9B09E6AD, - 0x3B3EE593, - 0xE990FD5A, - 0x9E34D797, - 0x2CF0B7D9, - 0x022B8B51, - 0x96D5AC3A, - 0x017DA67D, - 0xD1CF3ED6, - 0x7C7D2D28, - 0x1F9F25CF, - 0xADF2B89B, - 0x5AD6B472, - 0x5A88F54C, - 0xE029AC71, - 0xE019A5E6, - 0x47B0ACFD, - 0xED93FA9B, - 0xE8D3C48D, - 0x283B57CC, - 0xF8D56629, - 0x79132E28, - 0x785F0191, - 0xED756055, - 0xF7960E44, - 0xE3D35E8C, - 0x15056DD4, - 0x88F46DBA, - 0x03A16125, - 0x0564F0BD, - 0xC3EB9E15, - 0x3C9057A2, - 0x97271AEC, - 0xA93A072A, - 0x1B3F6D9B, - 0x1E6321F5, - 0xF59C66FB, - 0x26DCF319, - 0x7533D928, - 0xB155FDF5, - 0x03563482, - 0x8ABA3CBB, - 0x28517711, - 0xC20AD9F8, - 0xABCC5167, - 0xCCAD925F, - 0x4DE81751, - 0x3830DC8E, - 0x379D5862, - 0x9320F991, - 0xEA7A90C2, - 0xFB3E7BCE, - 0x5121CE64, - 0x774FBE32, - 0xA8B6E37E, - 0xC3293D46, - 0x48DE5369, - 0x6413E680, - 0xA2AE0810, - 0xDD6DB224, - 0x69852DFD, - 0x09072166, - 0xB39A460A, - 0x6445C0DD, - 0x586CDECF, - 0x1C20C8AE, - 0x5BBEF7DD, - 0x1B588D40, - 0xCCD2017F, - 0x6BB4E3BB, - 0xDDA26A7E, - 0x3A59FF45, - 0x3E350A44, - 0xBCB4CDD5, - 0x72EACEA8, - 0xFA6484BB, - 0x8D6612AE, - 0xBF3C6F47, - 0xD29BE463, - 0x542F5D9E, - 0xAEC2771B, - 0xF64E6370, - 0x740E0D8D, - 0xE75B1357, - 0xF8721671, - 0xAF537D5D, - 0x4040CB08, - 0x4EB4E2CC, - 0x34D2466A, - 0x0115AF84, - 0xE1B00428, - 0x95983A1D, - 0x06B89FB4, - 0xCE6EA048, - 0x6F3F3B82, - 0x3520AB82, - 0x011A1D4B, - 0x277227F8, - 0x611560B1, - 0xE7933FDC, - 0xBB3A792B, - 0x344525BD, - 0xA08839E1, - 0x51CE794B, - 0x2F32C9B7, - 0xA01FBAC9, - 0xE01CC87E, - 0xBCC7D1F6, - 0xCF0111C3, - 0xA1E8AAC7, - 0x1A908749, - 0xD44FBD9A, - 0xD0DADECB, - 0xD50ADA38, - 0x0339C32A, - 0xC6913667, - 0x8DF9317C, - 0xE0B12B4F, - 0xF79E59B7, - 0x43F5BB3A, - 0xF2D519FF, - 0x27D9459C, - 0xBF97222C, - 0x15E6FC2A, - 0x0F91FC71, - 0x9B941525, - 0xFAE59361, - 0xCEB69CEB, - 0xC2A86459, - 0x12BAA8D1, - 0xB6C1075E, - 0xE3056A0C, - 0x10D25065, - 0xCB03A442, - 0xE0EC6E0E, - 0x1698DB3B, - 0x4C98A0BE, - 0x3278E964, - 0x9F1F9532, - 0xE0D392DF, - 0xD3A0342B, - 0x8971F21E, - 0x1B0A7441, - 0x4BA3348C, - 0xC5BE7120, - 0xC37632D8, - 0xDF359F8D, - 0x9B992F2E, - 0xE60B6F47, - 0x0FE3F11D, - 0xE54CDA54, - 0x1EDAD891, - 0xCE6279CF, - 0xCD3E7E6F, - 0x1618B166, - 0xFD2C1D05, - 0x848FD2C5, - 0xF6FB2299, - 0xF523F357, - 0xA6327623, - 0x93A83531, - 0x56CCCD02, - 0xACF08162, - 0x5A75EBB5, - 0x6E163697, - 0x88D273CC, - 0xDE966292, - 0x81B949D0, - 0x4C50901B, - 0x71C65614, - 0xE6C6C7BD, - 0x327A140A, - 0x45E1D006, - 0xC3F27B9A, - 0xC9AA53FD, - 0x62A80F00, - 0xBB25BFE2, - 0x35BDD2F6, - 0x71126905, - 0xB2040222, - 0xB6CBCF7C, - 0xCD769C2B, - 0x53113EC0, - 0x1640E3D3, - 0x38ABBD60, - 0x2547ADF0, - 0xBA38209C, - 0xF746CE76, - 0x77AFA1C5, - 0x20756060, - 0x85CBFE4E, - 0x8AE88DD8, - 0x7AAAF9B0, - 0x4CF9AA7E, - 0x1948C25C, - 0x02FB8A8C, - 0x01C36AE4, - 0xD6EBE1F9, - 0x90D4F869, - 0xA65CDEA0, - 0x3F09252D, - 0xC208E69F, - 0xB74E6132, - 0xCE77E25B, - 0x578FDFE3, - 0x3AC372E6 - }; - // ==================================== - // Useful constants - // ==================================== - private static final int ROUNDS = 16; - private static final int BLOCK_SIZE = 8; // bytes = 64 bits - private static final int SBOX_SK = 256; - private static final int P_SZ = ROUNDS + 2; - private final int[] S0; // the s-boxes - private final int[] S1; - private final int[] S2; - private final int[] S3; - private final int[] P; // the p-array - private boolean encrypting = false; - private byte[] workingKey = null; - - public BlowfishEngine() - { - S0 = new int[SBOX_SK]; - S1 = new int[SBOX_SK]; - S2 = new int[SBOX_SK]; - S3 = new int[SBOX_SK]; - P = new int[P_SZ]; - } - - /** - * Initialize a Blowfish cipher. - * @param pEncrypting whether or not we are for encryption. - * @param key the key used to set up the cipher. - * @exception IllegalArgumentException if the params argument is inappropriate. - */ - public void init(boolean pEncrypting, byte[] key) - { - encrypting = pEncrypting; - workingKey = key; - setKey(workingKey); - } - - public String getAlgorithmName() - { - return "Blowfish"; - } - - public int processBlock(byte[] in, int inOff, byte[] out, int outOff) throws IOException - { - if (workingKey == null) - { - throw new IllegalStateException("Blowfish not initialised"); - } - - if ((inOff + BLOCK_SIZE) > in.length) - { - throw new IOException("input buffer too short"); - } - - if ((outOff + BLOCK_SIZE) > out.length) - { - throw new IOException("output buffer too short"); - } - - if (encrypting) - { - encryptBlock(in, inOff, out, outOff); - } - else - { - decryptBlock(in, inOff, out, outOff); - } - - return BLOCK_SIZE; - } - - public void reset() - { - } - - public int getBlockSize() - { - return BLOCK_SIZE; - } - - // ================================== - // Private Implementation - // ================================== - private int func(int x) - { - return ((S0[(x >>> 24)] + S1[(x >>> 16) & 0xff]) ^ S2[(x >>> 8) & 0xff]) + S3[x & 0xff]; - } - - /** - * apply the encryption cycle to each value pair in the table. - * @param xl - * @param xr - * @param table - */ - @SuppressWarnings("all") - private void processTable(int xl, int xr, int[] table) - { - final int size = table.length; - for (int s = 0; s < size; s += 2) - { - xl ^= P[0]; - for (int i = 1; i < ROUNDS; i += 2) - { - xr ^= func(xl) ^ P[i]; - xl ^= func(xr) ^ P[i + 1]; - } - - xr ^= P[ROUNDS + 1]; - table[s] = xr; - table[s + 1] = xl; - xr = xl; // end of cycle swap - xl = table[s]; - } - } - - private void setKey(byte[] key) - { - /* - * - comments are from _Applied Crypto_, Schneier, p338 please be careful comparing the two, AC numbers the arrays from 1, the enclosed code from 0. (1) Initialise the S-boxes and the P-array, with a fixed string This string contains the hexadecimal digits of pi (3.141...) - */ - System.arraycopy(KS0, 0, S0, 0, SBOX_SK); - System.arraycopy(KS1, 0, S1, 0, SBOX_SK); - System.arraycopy(KS2, 0, S2, 0, SBOX_SK); - System.arraycopy(KS3, 0, S3, 0, SBOX_SK); - System.arraycopy(KP, 0, P, 0, P_SZ); - /* - * (2) Now, XOR P[0] with the first 32 bits of the key, XOR P[1] with the second 32-bits of the key, and so on for all bits of the key (up to P[17]). Repeatedly cycle through the key bits until the entire P-array has been XOR-ed with the key bits - */ - final int keyLength = key.length; - int keyIndex = 0; - for (int i = 0; i < P_SZ; i++) - { - // get the 32 bits of the key, in 4 * 8 bit chunks - int data = 0x0000000; - for (int j = 0; j < 4; j++) - { - // create a 32 bit block - data = (data << 8) | (key[keyIndex++] & 0xff); - // wrap when we get to the end of the key - if (keyIndex >= keyLength) - { - keyIndex = 0; - } - } - // XOR the newly created 32 bit chunk onto the P-array - P[i] ^= data; - } - /* - * (3) Encrypt the all-zero string with the Blowfish algorithm, using the subkeys described in (1) and (2) (4) Replace P1 and P2 with the output of step (3) (5) Encrypt the output of step(3) using the Blowfish algorithm, with the modified subkeys. (6) Replace P3 and P4 with the output of - * step (5) (7) Continue the process, replacing all elements of the P-array and then all four S-boxes in order, with the output of the continuously changing Blowfish algorithm - */ - processTable(0, 0, P); - processTable(P[P_SZ - 2], P[P_SZ - 1], S0); - processTable(S0[SBOX_SK - 2], S0[SBOX_SK - 1], S1); - processTable(S1[SBOX_SK - 2], S1[SBOX_SK - 1], S2); - processTable(S2[SBOX_SK - 2], S2[SBOX_SK - 1], S3); - } - - /** - * Encrypt the given input starting at the given offset and place the result in the provided buffer starting at the given offset. The input will be an exact multiple of our blocksize. - * @param src - * @param srcIndex - * @param dst - * @param dstIndex - */ - private void encryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex) - { - int xl = bytesTo32bits(src, srcIndex); - int xr = bytesTo32bits(src, srcIndex + 4); - xl ^= P[0]; - for (int i = 1; i < ROUNDS; i += 2) - { - xr ^= func(xl) ^ P[i]; - xl ^= func(xr) ^ P[i + 1]; - } - - xr ^= P[ROUNDS + 1]; - bits32ToBytes(xr, dst, dstIndex); - bits32ToBytes(xl, dst, dstIndex + 4); - } - - /** - * Decrypt the given input starting at the given offset and place the result in the provided buffer starting at the given offset. The input will be an exact multiple of our blocksize. - * @param src - * @param srcIndex - * @param dst - * @param dstIndex - */ - private void decryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex) - { - int xl = bytesTo32bits(src, srcIndex); - int xr = bytesTo32bits(src, srcIndex + 4); - xl ^= P[ROUNDS + 1]; - for (int i = ROUNDS; i > 0; i -= 2) - { - xr ^= func(xl) ^ P[i]; - xl ^= func(xr) ^ P[i - 1]; - } - - xr ^= P[0]; - bits32ToBytes(xr, dst, dstIndex); - bits32ToBytes(xl, dst, dstIndex + 4); - } - - private int bytesTo32bits(byte[] b, int i) - { - return ((b[i + 3] & 0xff) << 24) | ((b[i + 2] & 0xff) << 16) | ((b[i + 1] & 0xff) << 8) | (b[i] & 0xff); - } - - private void bits32ToBytes(int in, byte[] b, int offset) - { - b[offset] = (byte) in; - b[offset + 1] = (byte) (in >> 8); - b[offset + 2] = (byte) (in >> 16); - b[offset + 3] = (byte) (in >> 24); - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/NewCrypt.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/NewCrypt.java deleted file mode 100644 index 1ed3a77e11..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/NewCrypt.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * 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 . - */ -package org.l2jmobius.commons.crypt; - -import java.io.IOException; -import java.util.logging.Logger; - -/** - * @version $Revision: 1.3.4.1 $ $Date: 2005/03/27 15:30:09 $ - */ -public class NewCrypt -{ - protected static final Logger LOGGER = Logger.getLogger(NewCrypt.class.getName()); - BlowfishEngine _crypt; - BlowfishEngine _decrypt; - - /** - * @param blowfishKey - */ - public NewCrypt(byte[] blowfishKey) - { - _crypt = new BlowfishEngine(); - _crypt.init(true, blowfishKey); - _decrypt = new BlowfishEngine(); - _decrypt.init(false, blowfishKey); - } - - public NewCrypt(String key) - { - this(key.getBytes()); - } - - public static boolean verifyChecksum(byte[] raw) - { - return verifyChecksum(raw, 0, raw.length); - } - - public static boolean verifyChecksum(byte[] raw, int offset, int size) - { - // check if size is multiple of 4 and if there is more then only the checksum - if (((size & 3) != 0) || (size <= 4)) - { - return false; - } - - long chksum = 0; - final int count = size - 4; - long check = -1; - int i; - - for (i = offset; i < count; i += 4) - { - check = raw[i] & 0xff; - check |= (raw[i + 1] << 8) & 0xff00; - check |= (raw[i + 2] << 0x10) & 0xff0000; - check |= (raw[i + 3] << 0x18) & 0xff000000; - - chksum ^= check; - } - - check = raw[i] & 0xff; - check |= (raw[i + 1] << 8) & 0xff00; - check |= (raw[i + 2] << 0x10) & 0xff0000; - check |= (raw[i + 3] << 0x18) & 0xff000000; - - return check == chksum; - } - - public static void appendChecksum(byte[] raw) - { - appendChecksum(raw, 0, raw.length); - } - - public static void appendChecksum(byte[] raw, int offset, int size) - { - long chksum = 0; - final int count = size - 4; - long ecx; - int i; - - for (i = offset; i < count; i += 4) - { - ecx = raw[i] & 0xff; - ecx |= (raw[i + 1] << 8) & 0xff00; - ecx |= (raw[i + 2] << 0x10) & 0xff0000; - ecx |= (raw[i + 3] << 0x18) & 0xff000000; - - chksum ^= ecx; - } - - ecx = raw[i] & 0xff; - ecx |= (raw[i + 1] << 8) & 0xff00; - ecx |= (raw[i + 2] << 0x10) & 0xff0000; - ecx |= (raw[i + 3] << 0x18) & 0xff000000; - - raw[i] = (byte) (chksum & 0xff); - raw[i + 1] = (byte) ((chksum >> 0x08) & 0xff); - raw[i + 2] = (byte) ((chksum >> 0x10) & 0xff); - raw[i + 3] = (byte) ((chksum >> 0x18) & 0xff); - } - - /** - * Packet is first XOR encoded with key Then, the last 4 bytes are overwritten with the the XOR "key". Thus this assume that there is enough room for the key to fit without overwriting data. - * @param raw The raw bytes to be encrypted - * @param key The 4 bytes (int) XOR key - */ - public static void encXORPass(byte[] raw, int key) - { - encXORPass(raw, 0, raw.length, key); - } - - /** - * Packet is first XOR encoded with key Then, the last 4 bytes are overwritten with the the XOR "key". Thus this assume that there is enough room for the key to fit without overwriting data. - * @param raw The raw bytes to be encrypted - * @param offset The begining of the data to be encrypted - * @param size Length of the data to be encrypted - * @param key The 4 bytes (int) XOR key - */ - public static void encXORPass(byte[] raw, int offset, int size, int key) - { - final int stop = size - 8; - int pos = 4 + offset; - int edx; - int ecx = key; // Initial xor key - - while (pos < stop) - { - edx = raw[pos] & 0xFF; - edx |= (raw[pos + 1] & 0xFF) << 8; - edx |= (raw[pos + 2] & 0xFF) << 16; - edx |= (raw[pos + 3] & 0xFF) << 24; - - ecx += edx; - - edx ^= ecx; - - raw[pos++] = (byte) (edx & 0xFF); - raw[pos++] = (byte) ((edx >> 8) & 0xFF); - raw[pos++] = (byte) ((edx >> 16) & 0xFF); - raw[pos++] = (byte) ((edx >> 24) & 0xFF); - } - - raw[pos++] = (byte) (ecx & 0xFF); - raw[pos++] = (byte) ((ecx >> 8) & 0xFF); - raw[pos++] = (byte) ((ecx >> 16) & 0xFF); - raw[pos++] = (byte) ((ecx >> 24) & 0xFF); - } - - public byte[] decrypt(byte[] raw) throws IOException - { - final byte[] result = new byte[raw.length]; - final int count = raw.length / 8; - - for (int i = 0; i < count; i++) - { - _decrypt.processBlock(raw, i * 8, result, i * 8); - } - - return result; - } - - public void decrypt(byte[] raw, int offset, int size) throws IOException - { - final byte[] result = new byte[size]; - final int count = size / 8; - - for (int i = 0; i < count; i++) - { - _decrypt.processBlock(raw, offset + (i * 8), result, i * 8); - } - // TODO can the crypt and decrypt go direct to the array - System.arraycopy(result, 0, raw, offset, size); - } - - public byte[] crypt(byte[] raw) throws IOException - { - final int count = raw.length / 8; - final byte[] result = new byte[raw.length]; - - for (int i = 0; i < count; i++) - { - _crypt.processBlock(raw, i * 8, result, i * 8); - } - - return result; - } - - public void crypt(byte[] raw, int offset, int size) throws IOException - { - final int count = size / 8; - final byte[] result = new byte[size]; - - for (int i = 0; i < count; i++) - { - _crypt.processBlock(raw, offset + (i * 8), result, i * 8); - } - // TODO can the crypt and decrypt go direct to the array - System.arraycopy(result, 0, raw, offset, size); - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/ScrambledKeyPair.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/ScrambledKeyPair.java deleted file mode 100644 index 1c91d7bd04..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/crypt/ScrambledKeyPair.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * 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 . - */ -package org.l2jmobius.commons.crypt; - -import java.math.BigInteger; -import java.security.KeyPair; -import java.security.interfaces.RSAPublicKey; - -public class ScrambledKeyPair -{ - public KeyPair _pair; - public byte[] _scrambledModulus; - - public ScrambledKeyPair(KeyPair pPair) - { - _pair = pPair; - _scrambledModulus = scrambleModulus(((RSAPublicKey) _pair.getPublic()).getModulus()); - } - - private byte[] scrambleModulus(BigInteger modulus) - { - byte[] scrambledMod = modulus.toByteArray(); - - if ((scrambledMod.length == 0x81) && (scrambledMod[0] == 0x00)) - { - final byte[] temp = new byte[0x80]; - System.arraycopy(scrambledMod, 1, temp, 0, 0x80); - scrambledMod = temp; - } - - // step 1 : 0x4d-0x50 <-> 0x00-0x04 - for (int i = 0; i < 4; i++) - { - final byte temp = scrambledMod[0x00 + i]; - scrambledMod[0x00 + i] = scrambledMod[0x4d + i]; - scrambledMod[0x4d + i] = temp; - } - - // step 2 : xor first 0x40 bytes with last 0x40 bytes - for (int i = 0; i < 0x40; i++) - { - scrambledMod[i] = (byte) (scrambledMod[i] ^ scrambledMod[0x40 + i]); - } - - // step 3 : xor bytes 0x0d-0x10 with bytes 0x34-0x38 - for (int i = 0; i < 4; i++) - { - scrambledMod[0x0d + i] = (byte) (scrambledMod[0x0d + i] ^ scrambledMod[0x34 + i]); - } - - // step 4 : xor last 0x40 bytes with first 0x40 bytes - for (int i = 0; i < 0x40; i++) - { - scrambledMod[0x40 + i] = (byte) (scrambledMod[0x40 + i] ^ scrambledMod[i]); - } - - return scrambledMod; - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseRecievePacket.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseRecievePacket.java index 322bb06bda..c682cb741d 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseRecievePacket.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseRecievePacket.java @@ -16,35 +16,23 @@ */ package org.l2jmobius.commons.network; -import org.l2jmobius.loginserver.LoginClient; +import java.nio.charset.StandardCharsets; +import java.util.logging.Logger; /** * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:12 $ */ -public abstract class BaseRecievePacket implements Runnable +public abstract class BaseRecievePacket { - private final LoginClient _client; + private static final Logger LOGGER = Logger.getLogger(BaseRecievePacket.class.getName()); + private final byte[] _decrypt; private int _off; - public BaseRecievePacket(byte[] decrypt, LoginClient client) + public BaseRecievePacket(byte[] decrypt) { _decrypt = decrypt; _off = 1; // skip packet type id - _client = client; - } - - @Override - public abstract void run(); - - public LoginClient getClient() - { - return _client; - } - - public byte[] getByteBuffer() - { - return _decrypt; } public int readD() @@ -58,27 +46,24 @@ public abstract class BaseRecievePacket implements Runnable public int readC() { - final int result = _decrypt[_off++] & 0xff; - return result; + return _decrypt[_off++] & 0xff; } public int readH() { - int result = _decrypt[_off++] & 0xff; - result |= (_decrypt[_off++] << 8) & 0xff00; - return result; + return (_decrypt[_off++] & 0xff) | ((_decrypt[_off++] << 8) & 0xff00); } public double readF() { long result = _decrypt[_off++] & 0xff; - result |= (_decrypt[_off++] << 8) & 0xff00; - result |= (_decrypt[_off++] << 0x10) & 0xff0000; - result |= (_decrypt[_off++] << 0x18) & 0xff000000; - result |= (_decrypt[_off++] << 0x20) & 0xff00000000L; - result |= (_decrypt[_off++] << 0x28) & 0xff0000000000L; - result |= (_decrypt[_off++] << 0x30) & 0xff000000000000L; - result |= (_decrypt[_off++] << 0x38) & 0xff00000000000000L; + result |= (_decrypt[_off++] & 0xffL) << 8L; + result |= (_decrypt[_off++] & 0xffL) << 16L; + result |= (_decrypt[_off++] & 0xffL) << 24L; + result |= (_decrypt[_off++] & 0xffL) << 32L; + result |= (_decrypt[_off++] & 0xffL) << 40L; + result |= (_decrypt[_off++] & 0xffL) << 48L; + result |= (_decrypt[_off++] & 0xffL) << 56L; return Double.longBitsToDouble(result); } @@ -87,13 +72,13 @@ public abstract class BaseRecievePacket implements Runnable String result = null; try { - result = new String(_decrypt, _off, _decrypt.length - _off, "UTF-16LE"); + result = new String(_decrypt, _off, _decrypt.length - _off, StandardCharsets.UTF_16LE); result = result.substring(0, result.indexOf(0x00)); _off += (result.length() * 2) + 2; } catch (Exception e) { - e.printStackTrace(); + LOGGER.warning(getClass().getSimpleName() + ": " + e.getMessage()); } return result; } @@ -101,11 +86,21 @@ public abstract class BaseRecievePacket implements Runnable public byte[] readB(int length) { final byte[] result = new byte[length]; - for (int i = 0; i < length; i++) - { - result[i] = _decrypt[_off + i]; - } + System.arraycopy(_decrypt, _off, result, 0, length); _off += length; return result; } -} \ No newline at end of file + + public long readQ() + { + long result = _decrypt[_off++] & 0xff; + result |= (_decrypt[_off++] & 0xffL) << 8L; + result |= (_decrypt[_off++] & 0xffL) << 16L; + result |= (_decrypt[_off++] & 0xffL) << 24L; + result |= (_decrypt[_off++] & 0xffL) << 32L; + result |= (_decrypt[_off++] & 0xffL) << 40L; + result |= (_decrypt[_off++] & 0xffL) << 48L; + result |= (_decrypt[_off++] & 0xffL) << 56L; + return result; + } +} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseSendablePacket.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseSendablePacket.java index 601ab98bb5..a9d918de4c 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseSendablePacket.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/commons/network/BaseSendablePacket.java @@ -16,79 +16,122 @@ */ package org.l2jmobius.commons.network; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.logging.Logger; + /** - * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:12 $ + * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:11 $ */ public abstract class BaseSendablePacket { - private final byte[] _decrypt; - private int _off; + private static final Logger LOGGER = Logger.getLogger(BaseSendablePacket.class.getName()); - public BaseSendablePacket(byte[] decrypt) + private final ByteArrayOutputStream _bao; + + protected BaseSendablePacket() { - _decrypt = decrypt; - _off = 1; // skip packet type id + _bao = new ByteArrayOutputStream(); } - public int readD() + protected void writeD(int value) { - int result = _decrypt[_off++] & 0xff; - result |= (_decrypt[_off++] << 8) & 0xff00; - result |= (_decrypt[_off++] << 0x10) & 0xff0000; - result |= (_decrypt[_off++] << 0x18) & 0xff000000; - return result; + _bao.write(value & 0xff); + _bao.write((value >> 8) & 0xff); + _bao.write((value >> 16) & 0xff); + _bao.write((value >> 24) & 0xff); } - public int readC() + protected void writeH(int value) { - final int result = _decrypt[_off++] & 0xff; - return result; + _bao.write(value & 0xff); + _bao.write((value >> 8) & 0xff); } - public int readH() + protected void writeC(int value) { - int result = _decrypt[_off++] & 0xff; - result |= (_decrypt[_off++] << 8) & 0xff00; - return result; + _bao.write(value & 0xff); } - public double readF() + protected void writeF(double org) { - long result = _decrypt[_off++] & 0xff; - result |= (_decrypt[_off++] << 8) & 0xff00; - result |= (_decrypt[_off++] << 0x10) & 0xff0000; - result |= (_decrypt[_off++] << 0x18) & 0xff000000; - result |= (_decrypt[_off++] << 0x20) & 0xff00000000l; - result |= (_decrypt[_off++] << 0x28) & 0xff0000000000l; - result |= (_decrypt[_off++] << 0x30) & 0xff000000000000l; - result |= (_decrypt[_off++] << 0x38) & 0xff00000000000000l; - return Double.longBitsToDouble(result); + final long value = Double.doubleToRawLongBits(org); + _bao.write((int) (value & 0xff)); + _bao.write((int) ((value >> 8) & 0xff)); + _bao.write((int) ((value >> 16) & 0xff)); + _bao.write((int) ((value >> 24) & 0xff)); + _bao.write((int) ((value >> 32) & 0xff)); + _bao.write((int) ((value >> 40) & 0xff)); + _bao.write((int) ((value >> 48) & 0xff)); + _bao.write((int) ((value >> 56) & 0xff)); } - public String readS() + protected void writeS(String text) { - String result = null; try { - result = new String(_decrypt, _off, _decrypt.length - _off, "UTF-16LE"); - result = result.substring(0, result.indexOf(0x00)); - _off += (result.length() * 2) + 2; + if (text != null) + { + _bao.write(text.getBytes(StandardCharsets.UTF_16LE)); + } } catch (Exception e) { - e.printStackTrace(); + LOGGER.warning(getClass().getSimpleName() + ": " + e.getMessage()); } - return result; + + _bao.write(0); + _bao.write(0); } - public final byte[] readB(int length) + protected void writeB(byte[] array) { - final byte[] result = new byte[length]; - for (int i = 0; i < length; i++) + try { - result[i] = _decrypt[_off + i]; + _bao.write(array); + } + catch (IOException e) + { + LOGGER.warning(getClass().getSimpleName() + ": " + e.getMessage()); } - _off += length; - return result; } -} \ No newline at end of file + + protected void writeQ(long value) + { + _bao.write((int) (value & 0xff)); + _bao.write((int) ((value >> 8) & 0xff)); + _bao.write((int) ((value >> 16) & 0xff)); + _bao.write((int) ((value >> 24) & 0xff)); + _bao.write((int) ((value >> 32) & 0xff)); + _bao.write((int) ((value >> 40) & 0xff)); + _bao.write((int) ((value >> 48) & 0xff)); + _bao.write((int) ((value >> 56) & 0xff)); + } + + public int getLength() + { + return _bao.size() + 2; + } + + public byte[] getBytes() + { + // if (this instanceof Init) + // writeD(0x00); // reserve for XOR initial key + + writeD(0x00); // reserve for checksum + + final int padding = _bao.size() % 8; + if (padding != 0) + { + for (int i = padding; i < 8; i++) + { + writeC(0x00); + } + } + + return _bao.toByteArray(); + } + + public abstract byte[] getContent() throws IOException; +} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/LoginServerThread.java index 478b919b3a..7549f20556 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -22,6 +22,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.math.BigInteger; import java.net.Socket; +import java.net.SocketException; import java.net.UnknownHostException; import java.security.GeneralSecurityException; import java.security.KeyFactory; @@ -31,13 +32,15 @@ import java.security.spec.RSAPublicKeySpec; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.logging.Level; import java.util.logging.Logger; import org.l2jmobius.Config; -import org.l2jmobius.commons.crypt.NewCrypt; +import org.l2jmobius.commons.network.BaseSendablePacket; import org.l2jmobius.commons.util.Rnd; +import org.l2jmobius.commons.util.crypt.NewCrypt; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.ConnectionState; @@ -45,7 +48,6 @@ import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.loginserverpackets.game.AuthRequest; import org.l2jmobius.gameserver.network.loginserverpackets.game.BlowFishKey; import org.l2jmobius.gameserver.network.loginserverpackets.game.ChangeAccessLevel; -import org.l2jmobius.gameserver.network.loginserverpackets.game.GameServerBasePacket; import org.l2jmobius.gameserver.network.loginserverpackets.game.PlayerAuthRequest; import org.l2jmobius.gameserver.network.loginserverpackets.game.PlayerInGame; import org.l2jmobius.gameserver.network.loginserverpackets.game.PlayerLogout; @@ -63,8 +65,6 @@ public class LoginServerThread extends Thread protected static final Logger LOGGER = Logger.getLogger(LoginServerThread.class.getName()); /** The LoginServerThread singleton */ - private static LoginServerThread _instance; - private static final int REVISION = 0x0102; private final String _hostname; private final int _port; @@ -76,18 +76,17 @@ public class LoginServerThread extends Thread * The BlowFish engine used to encrypt packets
* It is first initialized with a unified key:
* "_;v.]05-31!|+-%xT!^[$\00"
- *
* and then after handshake, with a new key sent by
- * loginserver during the handshake. + * login server during the handshake. This new key is stored
+ * in blowfishKey */ private NewCrypt _blowfish; private byte[] _hexID; private final boolean _acceptAlternate; - private final int _requestID; - private int _serverID; + private int _requestID; private final boolean _reserveHost; private int _maxPlayer; - private final List _waitingClients = new CopyOnWriteArrayList<>(); + private final Set _waitingClients = ConcurrentHashMap.newKeySet(); private final Map _accountsInGameServer = new ConcurrentHashMap<>(); private int _status; private String _serverName; @@ -103,25 +102,20 @@ public class LoginServerThread extends Thread _hexID = Config.HEX_ID; if (_hexID == null) { + _requestID = Config.REQUEST_ID; _hexID = generateHex(16); } + else + { + _requestID = Config.SERVER_ID; + } _acceptAlternate = Config.ACCEPT_ALTERNATE_ID; - _requestID = Config.REQUEST_ID; _reserveHost = Config.RESERVE_HOST_ON_LOGIN; _gameExternalHost = Config.EXTERNAL_HOSTNAME; _gameInternalHost = Config.INTERNAL_HOSTNAME; _maxPlayer = Config.MAXIMUM_ONLINE_USERS; } - public static LoginServerThread getInstance() - { - if (_instance == null) - { - _instance = new LoginServerThread(); - } - return _instance; - } - @Override public void run() { @@ -134,56 +128,48 @@ public class LoginServerThread extends Thread try { // Connection - LOGGER.info("Connecting to login on " + _hostname + ":" + _port); + LOGGER.info(getClass().getSimpleName() + ": Connecting to login on " + _hostname + ":" + _port); _loginSocket = new Socket(_hostname, _port); final InputStream in = _loginSocket.getInputStream(); _out = new BufferedOutputStream(_loginSocket.getOutputStream()); // init Blowfish final byte[] blowfishKey = generateHex(40); - // Protect the new blowfish key what cannot begin with zero - if (blowfishKey[0] == 0) - { - blowfishKey[0] = (byte) Rnd.get(32, 64); - } _blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00"); while (!isInterrupted()) { lengthLo = in.read(); lengthHi = in.read(); length = (lengthHi * 256) + lengthLo; - if (lengthHi < 0) { - LOGGER.finer("LoginServerThread: Login terminated the connection."); + LOGGER.finer(getClass().getSimpleName() + ": Login terminated the connection."); break; } final byte[] incoming = new byte[length - 2]; - int receivedBytes = 0; int newBytes = 0; int left = length - 2; while ((newBytes != -1) && (receivedBytes < (length - 2))) { newBytes = in.read(incoming, receivedBytes, left); - receivedBytes = receivedBytes + newBytes; + receivedBytes += newBytes; left -= newBytes; } if (receivedBytes != (length - 2)) { - LOGGER.warning("Incomplete Packet is sent to the server, closing connection.(LS)"); + LOGGER.warning(getClass().getSimpleName() + ": Incomplete Packet is sent to the server, closing connection.(LS)"); break; } // decrypt if we have a key _blowfish.decrypt(incoming, 0, incoming.length); checksumOk = NewCrypt.verifyChecksum(incoming); - if (!checksumOk) { - LOGGER.warning("Incorrect packet checksum, ignoring packet (LS)"); + LOGGER.warning(getClass().getSimpleName() + ": Incorrect packet checksum, ignoring packet (LS)"); break; } @@ -203,35 +189,37 @@ public class LoginServerThread extends Thread try { - publicKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new RSAPublicKeySpec(new BigInteger(init.getRSAKey()), RSAKeyGenParameterSpec.F4)); + final KeyFactory kfac = KeyFactory.getInstance("RSA"); + final BigInteger modulus = new BigInteger(init.getRSAKey()); + final RSAPublicKeySpec kspec1 = new RSAPublicKeySpec(modulus, RSAKeyGenParameterSpec.F4); + publicKey = (RSAPublicKey) kfac.generatePublic(kspec1); } catch (GeneralSecurityException e) { - LOGGER.warning("Trouble while init the public key send by login"); + LOGGER.warning(getClass().getSimpleName() + ": Trouble while init the public key send by login"); break; } // send the blowfish key through the rsa encryption sendPacket(new BlowFishKey(blowfishKey, publicKey)); // now, only accept packet with the new encryption _blowfish = new NewCrypt(blowfishKey); - final AuthRequest ar = new AuthRequest(_requestID, _acceptAlternate, _hexID, _gameExternalHost, _gameInternalHost, _gamePort, _reserveHost, _maxPlayer); - sendPacket(ar); + sendPacket(new AuthRequest(_requestID, _acceptAlternate, _hexID, _gameExternalHost, _gameInternalHost, _gamePort, _reserveHost, _maxPlayer)); break; } case 0x01: { final LoginServerFail lsf = new LoginServerFail(incoming); - LOGGER.info("Damn! Registration Failed: " + lsf.getReasonString()); + LOGGER.info(getClass().getSimpleName() + ": Damn! Registration Failed: " + lsf.getReasonString()); // login will close the connection here break; } case 0x02: { final AuthResponse aresp = new AuthResponse(incoming); - _serverID = aresp.getServerId(); + final int serverID = aresp.getServerId(); _serverName = aresp.getServerName(); - Config.saveHexid(_serverID, hexToString(_hexID)); - LOGGER.info("Registered on login as Server " + _serverID + " : " + _serverName); + Config.saveHexid(serverID, hexToString(_hexID)); + LOGGER.info(getClass().getSimpleName() + ": Registered on login as Server " + serverID + ": " + _serverName); final ServerStatus st = new ServerStatus(); if (Config.SERVER_LIST_BRACKET) { @@ -283,11 +271,14 @@ public class LoginServerThread extends Thread final PlayerAuthResponse par = new PlayerAuthResponse(incoming); final String account = par.getAccount(); WaitingClient wcToRemove = null; - for (WaitingClient wc : _waitingClients) + synchronized (_waitingClients) { - if (wc.account.equals(account)) + for (WaitingClient wc : _waitingClients) { - wcToRemove = wc; + if (wc.account.equals(account)) + { + wcToRemove = wc; + } } } if (wcToRemove != null) @@ -304,7 +295,7 @@ public class LoginServerThread extends Thread } else { - LOGGER.warning("Session key is not correct. Closing connection for account " + wcToRemove.account + "."); + LOGGER.warning(getClass().getSimpleName() + ": Session key is not correct. Closing connection for account " + wcToRemove.account); wcToRemove.gameClient.sendPacket(new AuthLoginFail(AuthLoginFail.SYSTEM_ERROR_LOGIN_LATER)); wcToRemove.gameClient.close(new AuthLoginFail(AuthLoginFail.SYSTEM_ERROR_LOGIN_LATER)); _accountsInGameServer.remove(wcToRemove.account); @@ -324,22 +315,29 @@ public class LoginServerThread extends Thread } catch (UnknownHostException e) { - LOGGER.info("Disconnected from Login, Trying to reconnect:"); - LOGGER.info(e.toString()); + LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": ", e); + } + catch (SocketException e) + { + LOGGER.warning(getClass().getSimpleName() + ": LoginServer not avaible, trying to reconnect..."); } catch (IOException e) { - LOGGER.info("Disconnected from Login, Trying to reconnect:"); - LOGGER.info(e.toString()); + LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Disconnected from Login, Trying to reconnect: ", e); } finally { try { _loginSocket.close(); + if (isInterrupted()) + { + return; + } } catch (Exception e) { + // Ignore. } } @@ -347,17 +345,26 @@ public class LoginServerThread extends Thread { Thread.sleep(5000); // 5 seconds tempo. } - catch (InterruptedException e) + catch (Exception e) { - return; + // Ignore. } } } + /** + * Adds the waiting client and send request. + * @param acc the account + * @param client the game client + * @param key the session key + */ public void addWaitingClientAndSendRequest(String acc, GameClient client, SessionKey key) { final WaitingClient wc = new WaitingClient(acc, client, key); - _waitingClients.add(wc); + synchronized (_waitingClients) + { + _waitingClients.add(wc); + } final PlayerAuthRequest par = new PlayerAuthRequest(acc, key); try { @@ -365,26 +372,37 @@ public class LoginServerThread extends Thread } catch (IOException e) { - LOGGER.warning("Error while sending player auth request."); + LOGGER.warning(getClass().getSimpleName() + ": Error while sending player auth request"); } } + /** + * Removes the waiting client. + * @param client the client + */ public void removeWaitingClient(GameClient client) { WaitingClient toRemove = null; - for (WaitingClient c : _waitingClients) + synchronized (_waitingClients) { - if (c.gameClient == client) + for (WaitingClient c : _waitingClients) { - toRemove = c; + if (c.gameClient == client) + { + toRemove = c; + } + } + if (toRemove != null) + { + _waitingClients.remove(toRemove); } - } - if (toRemove != null) - { - _waitingClients.remove(toRemove); } } + /** + * Send logout for the given account. + * @param account the account + */ public void sendLogout(String account) { if (account == null) @@ -398,7 +416,7 @@ public class LoginServerThread extends Thread } catch (IOException e) { - LOGGER.warning("Error while sending logout packet to login."); + LOGGER.warning(getClass().getSimpleName() + ": Error while sending logout packet to login"); } finally { @@ -452,20 +470,40 @@ public class LoginServerThread extends Thread } } + /** + * Method to generate a random sequence of bytes returned as byte array + * @param size number of random bytes to generate + * @return byte array with sequence of random bytes + */ public static byte[] generateHex(int size) { final byte[] array = new byte[size]; Rnd.nextBytes(array); + + // Don't allow 0s inside the array! + for (int i = 0; i < array.length; i++) + { + while (array[i] == 0) + { + array[i] = (byte) Rnd.get(Byte.MAX_VALUE); + } + } return array; } /** - * @param sl - * @throws IOException + * Send packet. + * @param sl the sendable packet + * @throws IOException Signals that an I/O exception has occurred. */ - private void sendPacket(GameServerBasePacket sl) throws IOException + private void sendPacket(BaseSendablePacket sl) throws IOException { - byte[] data = sl.getContent(); + if (_blowfish == null) + { + return; + } + + final byte[] data = sl.getContent(); NewCrypt.appendChecksum(data); _blowfish.crypt(data, 0, data.length); @@ -513,6 +551,7 @@ public class LoginServerThread extends Thread } catch (IOException e) { + // Ignore. } } @@ -607,13 +646,6 @@ public class LoginServerThread extends Thread public int loginOkID1; public int loginOkID2; - /** - * Instantiates a new session key. - * @param loginOK1 the login o k1 - * @param loginOK2 the login o k2 - * @param playOK1 the play o k1 - * @param playOK2 the play o k2 - */ public SessionKey(int loginOK1, int loginOK2, int playOK1, int playOK2) { playOkID1 = playOK1; @@ -629,7 +661,7 @@ public class LoginServerThread extends Thread } } - private static class WaitingClient + private class WaitingClient { public String account; public GameClient gameClient; @@ -648,4 +680,18 @@ public class LoginServerThread extends Thread session = key; } } -} \ No newline at end of file + + /** + * Gets the single instance of LoginServerThread. + * @return single instance of LoginServerThread + */ + public static LoginServerThread getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final LoginServerThread INSTANCE = new LoginServerThread(); + } +} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/AuthRequest.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/AuthRequest.java index 79f17f26ee..c4f768bb77 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/AuthRequest.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/AuthRequest.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.game; -public class AuthRequest extends GameServerBasePacket +import org.l2jmobius.commons.network.BaseSendablePacket; + +public class AuthRequest extends BaseSendablePacket { /** * Format: cccSddb c desired ID c accept alternative ID c reserve Host s ExternalHostName s InetranlHostName d max players d hexid size b hexid diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/BlowFishKey.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/BlowFishKey.java index 0f2562b219..f90adbc231 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/BlowFishKey.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/BlowFishKey.java @@ -16,16 +16,18 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.game; -import java.security.GeneralSecurityException; import java.security.interfaces.RSAPublicKey; +import java.util.logging.Level; import java.util.logging.Logger; import javax.crypto.Cipher; +import org.l2jmobius.commons.network.BaseSendablePacket; + /** * @author -Wooden- */ -public class BlowFishKey extends GameServerBasePacket +public class BlowFishKey extends BaseSendablePacket { private static final Logger LOGGER = Logger.getLogger(BlowFishKey.class.getName()); @@ -44,9 +46,9 @@ public class BlowFishKey extends GameServerBasePacket writeD(encrypted.length); writeB(encrypted); } - catch (GeneralSecurityException e) + catch (Exception e) { - LOGGER.warning("Error While encrypting blowfish key for transmision (Crypt error) " + e); + LOGGER.log(Level.SEVERE, "Error While encrypting blowfish key for transmision (Crypt error): " + e.getMessage(), e); } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ChangeAccessLevel.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ChangeAccessLevel.java index 3643417d19..628addc719 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ChangeAccessLevel.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ChangeAccessLevel.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.game; +import org.l2jmobius.commons.network.BaseSendablePacket; + /** * @author -Wooden- */ -public class ChangeAccessLevel extends GameServerBasePacket +public class ChangeAccessLevel extends BaseSendablePacket { public ChangeAccessLevel(String player, int access) { @@ -28,10 +30,6 @@ public class ChangeAccessLevel extends GameServerBasePacket writeS(player); } - /* - * (non-Javadoc) - * @see org.l2jmobius.gameserver.gameserverpackets.GameServerBasePacket#getContent() - */ @Override public byte[] getContent() { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/GameServerBasePacket.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/GameServerBasePacket.java deleted file mode 100644 index 507c45113c..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/GameServerBasePacket.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * 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 . - */ -package org.l2jmobius.gameserver.network.loginserverpackets.game; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -/** - * @author -Wooden- - */ -public abstract class GameServerBasePacket -{ - private final ByteArrayOutputStream _bao; - - protected GameServerBasePacket() - { - _bao = new ByteArrayOutputStream(); - } - - protected void writeD(int value) - { - _bao.write(value & 0xff); - _bao.write((value >> 8) & 0xff); - _bao.write((value >> 16) & 0xff); - _bao.write((value >> 24) & 0xff); - } - - protected void writeH(int value) - { - _bao.write(value & 0xff); - _bao.write((value >> 8) & 0xff); - } - - protected void writeC(int value) - { - _bao.write(value & 0xff); - } - - protected void writeF(double org) - { - final long value = Double.doubleToRawLongBits(org); - _bao.write((int) (value & 0xff)); - _bao.write((int) ((value >> 8) & 0xff)); - _bao.write((int) ((value >> 16) & 0xff)); - _bao.write((int) ((value >> 24) & 0xff)); - _bao.write((int) ((value >> 32) & 0xff)); - _bao.write((int) ((value >> 40) & 0xff)); - _bao.write((int) ((value >> 48) & 0xff)); - _bao.write((int) ((value >> 56) & 0xff)); - } - - protected void writeS(String text) - { - try - { - if (text != null) - { - _bao.write(text.getBytes(StandardCharsets.UTF_16LE)); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - - _bao.write(0); - _bao.write(0); - } - - protected void writeB(byte[] array) - { - try - { - _bao.write(array); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - public int getLength() - { - return _bao.size() + 2; - } - - public byte[] getBytes() - { - writeD(0x00); // reserve for checksum - - final int padding = _bao.size() % 8; - if (padding != 0) - { - for (int i = padding; i < 8; i++) - { - writeC(0x00); - } - } - - return _bao.toByteArray(); - } - - public abstract byte[] getContent() throws IOException; -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerAuthRequest.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerAuthRequest.java index 9b920fb91f..d9e6d9983c 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerAuthRequest.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerAuthRequest.java @@ -16,12 +16,13 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.game; +import org.l2jmobius.commons.network.BaseSendablePacket; import org.l2jmobius.gameserver.LoginServerThread.SessionKey; /** * @author -Wooden- */ -public class PlayerAuthRequest extends GameServerBasePacket +public class PlayerAuthRequest extends BaseSendablePacket { public PlayerAuthRequest(String account, SessionKey key) { @@ -33,10 +34,6 @@ public class PlayerAuthRequest extends GameServerBasePacket writeD(key.loginOkID2); } - /* - * (non-Javadoc) - * @see org.l2jmobius.gameserver.gameserverpackets.GameServerBasePacket#getContent() - */ @Override public byte[] getContent() { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerInGame.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerInGame.java index d292e0210c..06194d332a 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerInGame.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerInGame.java @@ -18,10 +18,12 @@ package org.l2jmobius.gameserver.network.loginserverpackets.game; import java.util.List; +import org.l2jmobius.commons.network.BaseSendablePacket; + /** * @author -Wooden- */ -public class PlayerInGame extends GameServerBasePacket +public class PlayerInGame extends BaseSendablePacket { public PlayerInGame(String player) { @@ -40,10 +42,6 @@ public class PlayerInGame extends GameServerBasePacket } } - /* - * (non-Javadoc) - * @see org.l2jmobius.gameserver.gameserverpackets.GameServerBasePacket#getContent() - */ @Override public byte[] getContent() { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerLogout.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerLogout.java index 8f67ee2516..a4480b1fbd 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerLogout.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/PlayerLogout.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.game; +import org.l2jmobius.commons.network.BaseSendablePacket; + /** * @author -Wooden- */ -public class PlayerLogout extends GameServerBasePacket +public class PlayerLogout extends BaseSendablePacket { public PlayerLogout(String player) { @@ -27,10 +29,6 @@ public class PlayerLogout extends GameServerBasePacket writeS(player); } - /* - * (non-Javadoc) - * @see org.l2jmobius.gameserver.gameserverpackets.GameServerBasePacket#getContent() - */ @Override public byte[] getContent() { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ServerStatus.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ServerStatus.java index a435291897..cba473aefe 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ServerStatus.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/game/ServerStatus.java @@ -19,10 +19,12 @@ package org.l2jmobius.gameserver.network.loginserverpackets.game; import java.util.ArrayList; import java.util.List; +import org.l2jmobius.commons.network.BaseSendablePacket; + /** * @author -Wooden- */ -public class ServerStatus extends GameServerBasePacket +public class ServerStatus extends BaseSendablePacket { private final List _attributes; @@ -42,6 +44,7 @@ public class ServerStatus extends GameServerBasePacket public static final int MAX_PLAYERS = 0x04; public static final int TEST_SERVER = 0x05; + // Server Status public static final int STATUS_AUTO = 0x00; public static final int STATUS_GOOD = 0x01; public static final int STATUS_NORMAL = 0x02; @@ -52,7 +55,7 @@ public class ServerStatus extends GameServerBasePacket public static final int ON = 0x01; public static final int OFF = 0x00; - class Attribute + static class Attribute { public int id; public int value; @@ -74,18 +77,13 @@ public class ServerStatus extends GameServerBasePacket _attributes.add(new Attribute(id, value)); } - /* - * (non-Javadoc) - * @see org.l2jmobius.gameserver.gameserverpackets.GameServerBasePacket#getContent() - */ @Override public byte[] getContent() { writeC(0x06); writeD(_attributes.size()); - for (int i = 0; i < _attributes.size(); i++) + for (Attribute temp : _attributes) { - final Attribute temp = _attributes.get(i); writeD(temp.id); writeD(temp.value); } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/AuthResponse.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/AuthResponse.java index 8dadd9adb2..63ff77197d 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/AuthResponse.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/AuthResponse.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.login; +import org.l2jmobius.commons.network.BaseRecievePacket; + /** * @author -Wooden- */ -public class AuthResponse extends LoginServerBasePacket +public class AuthResponse extends BaseRecievePacket { private final int _serverId; private final String _serverName; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/InitLS.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/InitLS.java index 36b48e75eb..c36057db81 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/InitLS.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/InitLS.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.login; -public class InitLS extends LoginServerBasePacket +import org.l2jmobius.commons.network.BaseRecievePacket; + +public class InitLS extends BaseRecievePacket { private final int _rev; private final byte[] _key; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/KickPlayer.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/KickPlayer.java index f751849361..ff47ec28cc 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/KickPlayer.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/KickPlayer.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.login; -public class KickPlayer extends LoginServerBasePacket +import org.l2jmobius.commons.network.BaseRecievePacket; + +public class KickPlayer extends BaseRecievePacket { private final String _account; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerFail.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerFail.java index c7a6ed21ff..50c6298b75 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerFail.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerFail.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.login; -public class LoginServerFail extends LoginServerBasePacket +import org.l2jmobius.commons.network.BaseRecievePacket; + +public class LoginServerFail extends BaseRecievePacket { private static final String[] REASONS = { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/PlayerAuthResponse.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/PlayerAuthResponse.java index 02b46339ba..2454bf8cc6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/PlayerAuthResponse.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/PlayerAuthResponse.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.gameserver.network.loginserverpackets.login; +import org.l2jmobius.commons.network.BaseRecievePacket; + /** * @author -Wooden- */ -public class PlayerAuthResponse extends LoginServerBasePacket +public class PlayerAuthResponse extends BaseRecievePacket { private final String _account; private final boolean _authed; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/GameServerThread.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/GameServerThread.java index 00c0ff8d0d..f0873eef5b 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/GameServerThread.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/GameServerThread.java @@ -31,7 +31,8 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.logging.Logger; import org.l2jmobius.Config; -import org.l2jmobius.commons.crypt.NewCrypt; +import org.l2jmobius.commons.util.crypt.NewCrypt; +import org.l2jmobius.loginserver.network.AbstractServerPacket; import org.l2jmobius.loginserver.network.gameserverpackets.BlowFishKey; import org.l2jmobius.loginserver.network.gameserverpackets.ChangeAccessLevel; import org.l2jmobius.loginserver.network.gameserverpackets.GameServerAuth; @@ -44,7 +45,6 @@ import org.l2jmobius.loginserver.network.loginserverpackets.InitLS; import org.l2jmobius.loginserver.network.loginserverpackets.KickPlayer; import org.l2jmobius.loginserver.network.loginserverpackets.LoginServerFail; import org.l2jmobius.loginserver.network.loginserverpackets.PlayerAuthResponse; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; /** * @author -Wooden- @@ -400,7 +400,7 @@ public class GameServerThread extends Thread * @param sl * @throws IOException */ - private void sendPacket(ServerBasePacket sl) throws IOException + private void sendPacket(AbstractServerPacket sl) throws IOException { byte[] data = sl.getContent(); NewCrypt.appendChecksum(data); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginClient.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginClient.java index afecd1d249..19b2dca8bc 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginClient.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginClient.java @@ -27,15 +27,14 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.l2jmobius.Config; -import org.l2jmobius.commons.crypt.NewCrypt; -import org.l2jmobius.commons.network.BaseRecievePacket; import org.l2jmobius.commons.util.Rnd; +import org.l2jmobius.commons.util.crypt.NewCrypt; import org.l2jmobius.loginserver.LoginController.ScrambledKeyPair; import org.l2jmobius.loginserver.network.serverpackets.Init; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; +import org.l2jmobius.loginserver.network.AbstractClientPacket; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** - * This class ... * @version $Revision: 1.15.2.5.2.5 $ $Date: 2005/04/06 16:13:46 $ */ public class LoginClient extends Thread @@ -157,7 +156,7 @@ public class LoginClient extends Thread } // Execute client packet. - final BaseRecievePacket packet = LoginPacketHandler.handlePacket(decrypt, this); + final AbstractClientPacket packet = LoginPacketHandler.handlePacket(decrypt, this); if (packet != null) { LoginServer.getInstance().execute(packet); @@ -196,7 +195,7 @@ public class LoginClient extends Thread /** * @param sl */ - public void sendPacket(ServerBasePacket sl) + public void sendPacket(AbstractServerPacket sl) { try { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginPacketHandler.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginPacketHandler.java index e97c8fea57..403ccca7c4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginPacketHandler.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginPacketHandler.java @@ -18,8 +18,8 @@ package org.l2jmobius.loginserver; import java.util.logging.Logger; -import org.l2jmobius.commons.network.BaseRecievePacket; import org.l2jmobius.loginserver.LoginClient.LoginClientState; +import org.l2jmobius.loginserver.network.AbstractClientPacket; import org.l2jmobius.loginserver.network.clientpackets.RequestAuthGG; import org.l2jmobius.loginserver.network.clientpackets.RequestAuthLogin; import org.l2jmobius.loginserver.network.clientpackets.RequestServerList; @@ -33,10 +33,10 @@ public class LoginPacketHandler { private static final Logger LOGGER = Logger.getLogger(LoginPacketHandler.class.getName()); - public static BaseRecievePacket handlePacket(byte[] data, LoginClient client) + public static AbstractClientPacket handlePacket(byte[] data, LoginClient client) { final int opcode = data[0] & 0xFF; - BaseRecievePacket packet = null; + AbstractClientPacket packet = null; final LoginClientState state = client.getClientState(); switch (state) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginServer.java index ae666329ee..9734999db2 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/LoginServer.java @@ -38,7 +38,7 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseBackup; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.enums.ServerMode; -import org.l2jmobius.commons.network.BaseRecievePacket; +import org.l2jmobius.loginserver.network.AbstractClientPacket; import org.l2jmobius.loginserver.ui.Gui; import org.l2jmobius.telnet.TelnetStatusThread; @@ -282,7 +282,7 @@ public class LoginServer extends FloodProtectedListener public long lastConnection; } - public void execute(BaseRecievePacket packet) + public void execute(AbstractClientPacket packet) { try { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerBasePacket.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractClientPacket.java similarity index 79% rename from L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerBasePacket.java rename to L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractClientPacket.java index 5ab36e2ed2..daf290f7f1 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/loginserverpackets/login/LoginServerBasePacket.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractClientPacket.java @@ -14,20 +14,37 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.l2jmobius.gameserver.network.loginserverpackets.login; +package org.l2jmobius.loginserver.network; + +import org.l2jmobius.loginserver.LoginClient; /** - * @author -Wooden- + * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:12 $ */ -public abstract class LoginServerBasePacket +public abstract class AbstractClientPacket implements Runnable { + private final LoginClient _client; private final byte[] _decrypt; private int _off; - public LoginServerBasePacket(byte[] decrypt) + public AbstractClientPacket(byte[] decrypt, LoginClient client) { _decrypt = decrypt; _off = 1; // skip packet type id + _client = client; + } + + @Override + public abstract void run(); + + public LoginClient getClient() + { + return _client; + } + + public byte[] getByteBuffer() + { + return _decrypt; } public int readD() @@ -91,4 +108,4 @@ public abstract class LoginServerBasePacket _off += length; return result; } -} +} \ No newline at end of file diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractGameServerPacket.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractGameServerPacket.java new file mode 100644 index 0000000000..50130e211d --- /dev/null +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractGameServerPacket.java @@ -0,0 +1,94 @@ +/* + * This file is part of the L2J Mobius project. + * + * 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 . + */ +package org.l2jmobius.loginserver.network; + +/** + * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:12 $ + */ +public abstract class AbstractGameServerPacket +{ + private final byte[] _decrypt; + private int _off; + + public AbstractGameServerPacket(byte[] decrypt) + { + _decrypt = decrypt; + _off = 1; // skip packet type id + } + + public int readD() + { + int result = _decrypt[_off++] & 0xff; + result |= (_decrypt[_off++] << 8) & 0xff00; + result |= (_decrypt[_off++] << 0x10) & 0xff0000; + result |= (_decrypt[_off++] << 0x18) & 0xff000000; + return result; + } + + public int readC() + { + final int result = _decrypt[_off++] & 0xff; + return result; + } + + public int readH() + { + int result = _decrypt[_off++] & 0xff; + result |= (_decrypt[_off++] << 8) & 0xff00; + return result; + } + + public double readF() + { + long result = _decrypt[_off++] & 0xff; + result |= (_decrypt[_off++] << 8) & 0xff00; + result |= (_decrypt[_off++] << 0x10) & 0xff0000; + result |= (_decrypt[_off++] << 0x18) & 0xff000000; + result |= (_decrypt[_off++] << 0x20) & 0xff00000000l; + result |= (_decrypt[_off++] << 0x28) & 0xff0000000000l; + result |= (_decrypt[_off++] << 0x30) & 0xff000000000000l; + result |= (_decrypt[_off++] << 0x38) & 0xff00000000000000l; + return Double.longBitsToDouble(result); + } + + public String readS() + { + String result = null; + try + { + result = new String(_decrypt, _off, _decrypt.length - _off, "UTF-16LE"); + result = result.substring(0, result.indexOf(0x00)); + _off += (result.length() * 2) + 2; + } + catch (Exception e) + { + e.printStackTrace(); + } + return result; + } + + public final byte[] readB(int length) + { + final byte[] result = new byte[length]; + for (int i = 0; i < length; i++) + { + result[i] = _decrypt[_off + i]; + } + _off += length; + return result; + } +} \ No newline at end of file diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerBasePacket.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractServerPacket.java similarity index 91% rename from L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerBasePacket.java rename to L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractServerPacket.java index 82a0eed30f..76e21802be 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerBasePacket.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/AbstractServerPacket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.l2jmobius.loginserver.network.serverpackets; +package org.l2jmobius.loginserver.network; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -24,11 +24,11 @@ import java.nio.charset.StandardCharsets; * This class ... * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:11 $ */ -public abstract class ServerBasePacket +public abstract class AbstractServerPacket { ByteArrayOutputStream _bao; - protected ServerBasePacket() + protected AbstractServerPacket() { _bao = new ByteArrayOutputStream(); } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthGG.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthGG.java index 564869e020..01ec25c755 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthGG.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthGG.java @@ -16,13 +16,13 @@ */ package org.l2jmobius.loginserver.network.clientpackets; -import org.l2jmobius.commons.network.BaseRecievePacket; import org.l2jmobius.loginserver.LoginClient; import org.l2jmobius.loginserver.LoginClient.LoginClientState; +import org.l2jmobius.loginserver.network.AbstractClientPacket; import org.l2jmobius.loginserver.network.serverpackets.GGAuth; import org.l2jmobius.loginserver.network.serverpackets.LoginFail; -public class RequestAuthGG extends BaseRecievePacket +public class RequestAuthGG extends AbstractClientPacket { private int _sessionId = 0; private final int _data1; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthLogin.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthLogin.java index 0dc127268b..65de785fe7 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthLogin.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestAuthLogin.java @@ -23,13 +23,13 @@ import java.util.logging.Logger; import javax.crypto.Cipher; import org.l2jmobius.Config; -import org.l2jmobius.commons.network.BaseRecievePacket; import org.l2jmobius.loginserver.GameServerTable; import org.l2jmobius.loginserver.GameServerThread; import org.l2jmobius.loginserver.LoginClient; import org.l2jmobius.loginserver.LoginClient.LoginClientState; import org.l2jmobius.loginserver.LoginController; import org.l2jmobius.loginserver.LoginServer; +import org.l2jmobius.loginserver.network.AbstractClientPacket; import org.l2jmobius.loginserver.network.serverpackets.AccountKicked; import org.l2jmobius.loginserver.network.serverpackets.LoginFail; import org.l2jmobius.loginserver.network.serverpackets.LoginOk; @@ -37,7 +37,7 @@ import org.l2jmobius.loginserver.network.serverpackets.LoginOk; /** * Format: x 0 (a leading null) x: the rsa encrypted block with the login an password */ -public class RequestAuthLogin extends BaseRecievePacket +public class RequestAuthLogin extends AbstractClientPacket { private final static Logger LOGGER = Logger.getLogger(RequestAuthLogin.class.getName()); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerList.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerList.java index bf72c462dd..bc5077ab22 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerList.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerList.java @@ -16,15 +16,15 @@ */ package org.l2jmobius.loginserver.network.clientpackets; -import org.l2jmobius.commons.network.BaseRecievePacket; import org.l2jmobius.loginserver.GameServerTable; import org.l2jmobius.loginserver.LoginClient; +import org.l2jmobius.loginserver.network.AbstractClientPacket; import org.l2jmobius.loginserver.network.serverpackets.LoginFail; /** * Format: ddc d: fist part of session id d: second part of session id c: ? (session ID is sent in LoginOk packet and fixed to 0x55555555 0x44444444) */ -public class RequestServerList extends BaseRecievePacket +public class RequestServerList extends AbstractClientPacket { private final int _key1; private final int _key2; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 279866fb39..67ae57ea71 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -19,10 +19,10 @@ package org.l2jmobius.loginserver.network.clientpackets; import java.util.logging.Logger; import org.l2jmobius.Config; -import org.l2jmobius.commons.network.BaseRecievePacket; import org.l2jmobius.loginserver.GameServerTable; import org.l2jmobius.loginserver.LoginClient; import org.l2jmobius.loginserver.LoginController; +import org.l2jmobius.loginserver.network.AbstractClientPacket; import org.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import org.l2jmobius.loginserver.network.serverpackets.LoginFail; import org.l2jmobius.loginserver.network.serverpackets.PlayFail; @@ -31,7 +31,7 @@ import org.l2jmobius.loginserver.network.serverpackets.PlayOk; /** * Fromat is ddc d: first part of session id d: second part of session id c: server ID (session ID is sent in LoginOk packet and fixed to 0x55555555 0x44444444) */ -public class RequestServerLogin extends BaseRecievePacket +public class RequestServerLogin extends AbstractClientPacket { private final static Logger LOGGER = Logger.getLogger(RequestServerLogin.class.getName()); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/BlowFishKey.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/BlowFishKey.java index ce8c5130df..f7394814ea 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/BlowFishKey.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/BlowFishKey.java @@ -22,12 +22,12 @@ import java.util.logging.Logger; import javax.crypto.Cipher; -import org.l2jmobius.commons.network.BaseSendablePacket; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * @author -Wooden- */ -public class BlowFishKey extends BaseSendablePacket +public class BlowFishKey extends AbstractGameServerPacket { byte[] _key; protected static final Logger LOGGER = Logger.getLogger(BlowFishKey.class.getName()); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ChangeAccessLevel.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ChangeAccessLevel.java index 3829720b42..8058b29540 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ChangeAccessLevel.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ChangeAccessLevel.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.loginserver.network.gameserverpackets; -import org.l2jmobius.commons.network.BaseSendablePacket; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * @author -Wooden- */ -public class ChangeAccessLevel extends BaseSendablePacket +public class ChangeAccessLevel extends AbstractGameServerPacket { private final int _level; private final String _account; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/GameServerAuth.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/GameServerAuth.java index 25266d412f..4a8be6d8d1 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/GameServerAuth.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/GameServerAuth.java @@ -18,13 +18,13 @@ package org.l2jmobius.loginserver.network.gameserverpackets; import java.util.logging.Logger; -import org.l2jmobius.commons.network.BaseSendablePacket; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * Format: cccddb c desired ID c accept alternative ID c reserve Host s ExternalHostName s InetranlHostName d max players d hexid size b hexid * @author -Wooden- */ -public class GameServerAuth extends BaseSendablePacket +public class GameServerAuth extends AbstractGameServerPacket { protected static final Logger LOGGER = Logger.getLogger(GameServerAuth.class.getName()); private final byte[] _hexId; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerAuthRequest.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerAuthRequest.java index a1abe5ec36..5d689816b2 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerAuthRequest.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerAuthRequest.java @@ -16,13 +16,13 @@ */ package org.l2jmobius.loginserver.network.gameserverpackets; -import org.l2jmobius.commons.network.BaseSendablePacket; import org.l2jmobius.loginserver.SessionKey; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * @author -Wooden- */ -public class PlayerAuthRequest extends BaseSendablePacket +public class PlayerAuthRequest extends AbstractGameServerPacket { private final String _account; private final SessionKey _sessionKey; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerInGame.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerInGame.java index a2106371fd..2b37fc0d41 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerInGame.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerInGame.java @@ -19,12 +19,12 @@ package org.l2jmobius.loginserver.network.gameserverpackets; import java.util.ArrayList; import java.util.List; -import org.l2jmobius.commons.network.BaseSendablePacket; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * @author -Wooden- */ -public class PlayerInGame extends BaseSendablePacket +public class PlayerInGame extends AbstractGameServerPacket { private final List _accounts; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerLogout.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerLogout.java index f6e1d5600b..4d3c999d45 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerLogout.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/PlayerLogout.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.loginserver.network.gameserverpackets; -import org.l2jmobius.commons.network.BaseSendablePacket; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * @author -Wooden- */ -public class PlayerLogout extends BaseSendablePacket +public class PlayerLogout extends AbstractGameServerPacket { private final String _account; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ServerStatus.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ServerStatus.java index af1cbbdce1..8c3faed6c1 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ServerStatus.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/gameserverpackets/ServerStatus.java @@ -18,13 +18,13 @@ package org.l2jmobius.loginserver.network.gameserverpackets; import java.util.logging.Logger; -import org.l2jmobius.commons.network.BaseSendablePacket; import org.l2jmobius.loginserver.GameServerTable; +import org.l2jmobius.loginserver.network.AbstractGameServerPacket; /** * @author -Wooden- */ -public class ServerStatus extends BaseSendablePacket +public class ServerStatus extends AbstractGameServerPacket { protected static final Logger LOGGER = Logger.getLogger(ServerStatus.class.getName()); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/AuthResponse.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/AuthResponse.java index 41cb18a4ae..0d04b0afa5 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/AuthResponse.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/AuthResponse.java @@ -17,12 +17,12 @@ package org.l2jmobius.loginserver.network.loginserverpackets; import org.l2jmobius.loginserver.GameServerTable; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * @author -Wooden- */ -public class AuthResponse extends ServerBasePacket +public class AuthResponse extends AbstractServerPacket { /** * @param serverId diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/InitLS.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/InitLS.java index e0c4e9f5ea..2b297ea243 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/InitLS.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/InitLS.java @@ -17,12 +17,12 @@ package org.l2jmobius.loginserver.network.loginserverpackets; import org.l2jmobius.loginserver.LoginServer; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * @author -Wooden- */ -public class InitLS extends ServerBasePacket +public class InitLS extends AbstractServerPacket { // ID 0x00 // format diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/KickPlayer.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/KickPlayer.java index a209056994..4e292917c1 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/KickPlayer.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/KickPlayer.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.loginserver.network.loginserverpackets; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * @author -Wooden- */ -public class KickPlayer extends ServerBasePacket +public class KickPlayer extends AbstractServerPacket { public KickPlayer(String account) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/LoginServerFail.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/LoginServerFail.java index 320a1d7fea..52f3b1b64e 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/LoginServerFail.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/LoginServerFail.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.loginserver.network.loginserverpackets; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * @author -Wooden- */ -public class LoginServerFail extends ServerBasePacket +public class LoginServerFail extends AbstractServerPacket { public static final int REASON_IP_BANNED = 1; public static final int REASON_IP_RESERVED = 2; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/PlayerAuthResponse.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/PlayerAuthResponse.java index ae0be911e9..fcaa06de86 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/PlayerAuthResponse.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/loginserverpackets/PlayerAuthResponse.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.loginserver.network.loginserverpackets; -import org.l2jmobius.loginserver.network.serverpackets.ServerBasePacket; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * @author -Wooden- */ -public class PlayerAuthResponse extends ServerBasePacket +public class PlayerAuthResponse extends AbstractServerPacket { public PlayerAuthResponse(String account, boolean response) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/AccountKicked.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/AccountKicked.java index 834f9834c8..10ac075cef 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/AccountKicked.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/AccountKicked.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.loginserver.network.serverpackets; -public class AccountKicked extends ServerBasePacket +import org.l2jmobius.loginserver.network.AbstractServerPacket; + +public class AccountKicked extends AbstractServerPacket { public static int REASON_ILLEGAL_USE = 0x01; public static int REASON_GENERAL_VIOLATION = 0x08; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/GGAuth.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/GGAuth.java index 36a7142e38..274b988fa6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/GGAuth.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/GGAuth.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.loginserver.network.serverpackets; +import org.l2jmobius.loginserver.network.AbstractServerPacket; + /** * Fromat: d d: response */ -public class GGAuth extends ServerBasePacket +public class GGAuth extends AbstractServerPacket { public static final int SKIP_GG_AUTH_REQUEST = 0x0b; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/Init.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/Init.java index 8b57f858fe..2ab2eddc35 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/Init.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/Init.java @@ -17,11 +17,12 @@ package org.l2jmobius.loginserver.network.serverpackets; import org.l2jmobius.loginserver.LoginClient; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * Format: dd b dddd s d: session id d: protocol revision b: 0x90 bytes : 0x80 bytes for the scrambled RSA public key 0x10 bytes at 0x00 d: unknow d: unknow d: unknow d: unknow s: blowfish key */ -public final class Init extends ServerBasePacket +public final class Init extends AbstractServerPacket { public Init(LoginClient client) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginFail.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginFail.java index 879fb431d3..66c8cd2c5a 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginFail.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginFail.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.loginserver.network.serverpackets; +import org.l2jmobius.loginserver.network.AbstractServerPacket; + /** * Fromat: d d: the failure reason */ -public class LoginFail extends ServerBasePacket +public class LoginFail extends AbstractServerPacket { public static int REASON_SYSTEM_ERROR = 0x01; public static int REASON_PASS_WRONG = 0x02; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginOk.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginOk.java index 8c234c338e..a47e100667 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginOk.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/LoginOk.java @@ -17,11 +17,12 @@ package org.l2jmobius.loginserver.network.serverpackets; import org.l2jmobius.loginserver.SessionKey; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** * Format: dddddddd f: the session key d: ? d: ? d: ? d: ? d: ? d: ? */ -public class LoginOk extends ServerBasePacket +public class LoginOk extends AbstractServerPacket { public LoginOk(SessionKey sessionKey) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayFail.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayFail.java index 66815316d2..f94395affe 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayFail.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayFail.java @@ -16,10 +16,12 @@ */ package org.l2jmobius.loginserver.network.serverpackets; +import org.l2jmobius.loginserver.network.AbstractServerPacket; + /** * @version $Revision: 1.2.4.1 $ $Date: 2005/03/27 15:30:11 $ */ -public class PlayFail extends ServerBasePacket +public class PlayFail extends AbstractServerPacket { public static int REASON_TOO_MANY_PLAYERS = 0x0f; // too many players on server public static int REASON_SYSTEM_ERROR = 0x01; // system error diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayOk.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayOk.java index fbff285084..346d2080e2 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayOk.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/PlayOk.java @@ -17,6 +17,7 @@ package org.l2jmobius.loginserver.network.serverpackets; import org.l2jmobius.loginserver.SessionKey; +import org.l2jmobius.loginserver.network.AbstractServerPacket; /** *

@@ -29,7 +30,7 @@ import org.l2jmobius.loginserver.SessionKey; * *

*/ -public class PlayOk extends ServerBasePacket +public class PlayOk extends AbstractServerPacket { public PlayOk(SessionKey sessionKey) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerList.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerList.java index bf934bf598..ce68407a28 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerList.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/loginserver/network/serverpackets/ServerList.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; import org.l2jmobius.loginserver.GameServerTable.GameServer; +import org.l2jmobius.loginserver.network.AbstractServerPacket; import org.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; /** @@ -29,7 +30,7 @@ import org.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; * server is down d: 2nd bit: clock 3rd bit: wont dsiplay server name 4th bit: test server (used by client?) c: 0 if you dont want to display brackets in front of sever name ] Server will be considered as Good when the number of online players is less than half the maximum. as Normal between half * and 4/5 and Full when there's more than 4/5 of the maximum number of players */ -public class ServerList extends ServerBasePacket +public class ServerList extends AbstractServerPacket { private final List _servers;