public void Disconnect() { this.SendPending(); this.TerminateSocket(); this.Expired = true; this.stack.Disponse(); if (this.LoggedIn) { this.LoggedIn = false; ServerEvents.OnPart(this); UserPool.BroadcastToVroom(this.Vroom, AresTcpPackets.Part(this)); } }
private static void Login(UserObject userobj, AresTCPPacketReader packet, uint time) { userobj.PopulateCredentials(packet); if (!ServerEvents.OnJoinCheck(userobj)) { userobj.Expired = true; userobj.LoggedIn = userobj.Ghost; } if (!userobj.Ghost) { UserPool.BroadcastToVroom(userobj.Vroom, AresTcpPackets.Join(userobj)); } userobj.LoggedIn = true; userobj.SendPacket(AresTcpPackets.LoginAck(userobj)); userobj.SendPacket(AresTcpPackets.MyFeatures(userobj)); userobj.SendPacket(AresTcpPackets.TopicFirst()); UserPool.SendUserList(userobj); userobj.SendPacket(AresTcpPackets.OpChange(userobj)); userobj.SendPacket(Avatars.Server(userobj)); ServerEvents.OnJoin(userobj); }