EnterWorld exploit fix.

Author: Tryskell
Source: https://acis.i-live.eu/index.php?topic=10070
This commit is contained in:
MobiusDev 2019-02-25 17:36:19 +00:00
parent aacfb7b6e9
commit b4d261eb20
48 changed files with 88 additions and 29 deletions

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -57,6 +57,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -143,6 +144,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -148,6 +149,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -148,6 +149,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -148,6 +149,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -146,6 +147,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -146,6 +147,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -75,6 +75,7 @@ public final class L2GameClient extends MMOClient<MMOConnection<L2GameClient>> i
{
CONNECTED,
AUTHED,
ENTERING,
IN_GAME
}

View File

@ -138,6 +138,23 @@ public final class L2GamePacketHandler implements IPacketHandler<L2GameClient>,
}
break;
}
case ENTERING:
{
switch (opcode)
{
case 0x03:
{
msg = new EnterWorld();
break;
}
default:
{
printDebug(opcode, buf, state, client);
break;
}
}
break;
}
case IN_GAME:
{
switch (opcode)
@ -150,11 +167,6 @@ public final class L2GamePacketHandler implements IPacketHandler<L2GameClient>,
// case 0x02:
// Say ... not used any more ??
// break;
case 0x03:
{
msg = new EnterWorld();
break;
}
case 0x04:
{
msg = new Action();

View File

@ -84,7 +84,7 @@ public class CharacterSelected extends L2GameClientPacket
cha.setClient(getClient());
getClient().setActiveChar(cha);
nProtect.getInstance().sendRequest(getClient());
getClient().setState(GameClientState.IN_GAME);
getClient().setState(GameClientState.ENTERING);
sendPacket(new CharSelected(cha, getClient().getSessionId().playOkID1));
}
}

View File

@ -71,6 +71,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient.GameClientState;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.ClientSetTime;
import com.l2jmobius.gameserver.network.serverpackets.CreatureSay;
@ -125,7 +126,6 @@ public class EnterWorld extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
LOGGER.warning("EnterWorld failed! activeChar is null...");
@ -133,6 +133,8 @@ public class EnterWorld extends L2GameClientPacket
return;
}
getClient().setState(GameClientState.IN_GAME);
// Set lock at login
activeChar.setLocked(true);

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -45,7 +45,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -169,7 +169,7 @@ public class CharacterSelect implements IClientIncomingPacket
client.sendPacket(new SSQInfo());
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -60,6 +60,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.skills.CommonSkill;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -135,6 +136,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -147,6 +148,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -147,6 +148,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -147,6 +148,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{

View File

@ -27,5 +27,6 @@ public enum ConnectionState implements IConnectionState
DISCONNECTED,
CLOSING,
AUTHENTICATED,
ENTERING,
IN_GAME
}

View File

@ -50,7 +50,7 @@ public enum IncomingPackets implements IIncomingPackets<L2GameClient>
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),

View File

@ -166,7 +166,7 @@ public class CharacterSelect implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
client.setConnectionState(ConnectionState.ENTERING);
client.sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
}

View File

@ -58,6 +58,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.ConnectionState;
import com.l2jmobius.gameserver.network.Disconnection;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -147,6 +148,8 @@ public class EnterWorld implements IClientIncomingPacket
return;
}
client.setConnectionState(ConnectionState.IN_GAME);
final String[] adress = new String[5];
for (int i = 0; i < 5; i++)
{