public static void SendUserList(UserObject userobj) { userobj.SendPacket(AresTcpPackets.UserListBotItem()); Users.ForEach(x => { if (x.LoggedIn && x.Vroom == userobj.Vroom) { userobj.SendPacket(AresTcpPackets.UserListItem(x)); } }); userobj.SendPacket(AresTcpPackets.UserListEnd()); Users.ForEach(x => { if (x.LoggedIn && x.Vroom == userobj.Vroom) { if (x.Avatar.Length > 0) { userobj.SendPacket(AresTcpPackets.Avatar(x)); } if (!String.IsNullOrEmpty(x.PersonalMessage)) { userobj.SendPacket(AresTcpPackets.PersonalMessage(x)); } } }); }
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); }