mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-16 01:01:30 +00:00
Change drop client code to not be two step process
This commit is contained in:
parent
3f2f7b3929
commit
b754ddbc67
@ -1118,6 +1118,7 @@ bool Client::Process() {
|
||||
Log(Logs::General, Logs::World_Server, "Zone bootup timer expired, bootup failed or too slow.");
|
||||
TellClientZoneUnavailable();
|
||||
}
|
||||
|
||||
if(connect.Check()){
|
||||
SendGuildList();// Send OPCode: OP_GuildsList
|
||||
SendApproveWorld();
|
||||
@ -1189,9 +1190,6 @@ void Client::EnterWorld(bool TryBootup) {
|
||||
else
|
||||
zone_server = zoneserver_list.FindByZoneID(zone_id);
|
||||
|
||||
//Tell all the zones to drop any client with this lsid because we're coming back in.
|
||||
zoneserver_list.DropClient(GetLSID());
|
||||
|
||||
const char *zone_name = database.GetZoneName(zone_id, true);
|
||||
if (zone_server) {
|
||||
// warn the world we're comming, so it knows not to shutdown
|
||||
|
||||
@ -536,6 +536,13 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
SetZoneData(zone->GetZoneID(), zone->GetInstanceID());
|
||||
|
||||
if (szic->zoneid == zone->GetZoneID()) {
|
||||
auto client = entity_list.GetClientByLSID(szic->lsid);
|
||||
if (client) {
|
||||
client->Kick("Dropped by world CLE subsystem");
|
||||
client->Save();
|
||||
}
|
||||
|
||||
zone->RemoveAuth(szic->lsid);
|
||||
zone->AddAuth(szic);
|
||||
// This packet also doubles as "incoming client" notification, lets not shut down before they get here
|
||||
zone->StartShutdownTimer(AUTHENTICATION_TIMEOUT * 1000);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user